Preserve Whitespace con Rails, DataMapper y Coderay (oh sí y Haml también)
-
26-10-2019 - |
Pregunta
Estoy tratando de mostrar la sintaxis resaltado en el código C en una aplicación Ruby. Coderay parecía la solución de facto ya que no estoy haciendo nada más especial con el estilo.
El siguiente código me da el código resaltado en un DIV, pero sin espacios en blanco líder. (El espacio en blanco está presente en el DB cuando se ve con la secuela Pro)
El código se guarda en una columna de texto regular:
class Project
include DataMapper::Resource
property :id, Serial
property :name, String, :required => true
property code, Text
end
Y la vista se representa en Haml a través de:
~ CodeRay.scan(@project.code, :c).div(:css => :class).html_safe
EDITAR
Ver solución a continuación, fue debido al CSS de reinicio de la repetición HTML5
Solución
Soy un Putz, todo el código de ejemplo es correcto, fue el CSS HTML5 Boilerplate que eliminó el espacio en blanco. Específicamente:
pre { padding: 15px; white-space: pre; white-space: pre-wrap; white-space: pre-line; word-wrap: break-word; }
Dejar caer el espacio blanco: pre-línea; lo arregla