2011-04-06 10 views

Respuesta

7

Dentro de un filtro Haml usted usa la interpolación de cadenas para incluir el código Ruby en su marcado. Por ejemplo:

require 'haml'        
@x = 42            
Haml::Engine.new("%p= @x").render(self)    #=> "<p>42</p>\n" 
Haml::Engine.new(":textile\n\t= @x").render(self) #=> "<p>= @x</p>\n" 
Haml::Engine.new(":textile\n\t\#{@x}").render(self) #=> "<p>42</p>\n" 

@content = "alpha\n\n#hi **mom**" 
Haml::Engine.new(":textile\n\t\#{@content}").render(self) 
#=> "<p>alpha</p>\n<p>#hi <b>mom</b></p>\n" 

Editar: Mi respuesta anterior era engañosa con respecto a los saltos de línea en el contenido, debido a mi prueba de fallas. Como se vio anteriormente, las nuevas líneas en el contenido incluido se manejan bien directamente.

Como tal, su plantilla Haml simplemente debe tener este aspecto:

- @articles.each do |article| 
    %article.post 
    %header=article.name 
    :textile 
     #{article.content} 
    %footer 

Tenga en cuenta que he quitado su %p etiqueta que rodea su margen de beneficio, como la materia textil presenta sus propios envoltorios de párrafo (incluso para el contenido de una sola línea)

+0

@wizztjh Mi respuesta fue incorrecta; Consulte el ejemplo actualizado anterior que muestra que debe 'simplemente funcionar' como lo desee. – Phrogz

1

Su sintaxis parece estar bien, si todo lo demás se está rendido adecuadamente tal vez es un tema joya. ¿Tienes instalado RedCloth?

Editar: Pensándolo bien, ¿qué hace la segunda línea? Puede ser la causa de su problema ya que no creo que% article.post sea la sintaxis correcta de HAML y el filtro textil está dentro de él

+0

He instalado redcloth, permítanme mostrar el error – wizztjh

+0

Creo que '% article.post' genera'

+0

Sí, lo noté, mi mal. – Quasar

Cuestiones relacionadas