All'interno di un filtro Haml si utilizza l'interpolazione String per includere il codice Ruby nel markup. Per esempio:
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"
Edit: La mia risposta precedente era fuorviante rispetto ai ritorni a capo nel contenuto, a causa della mia prova viziata. Come visto sopra, le nuove righe nel contenuto incluso vengono gestite direttamente.
Come tale, il modello Haml dovrebbe semplicemente simile a questa:
- @articles.each do |article|
%article.post
%header=article.name
:textile
#{article.content}
%footer
Si noti che ho rimosso il tuo %p
tag che circonda il vostro margine di profitto, in quanto introduce tessile propri comma wrapper (anche per i contenuti a riga singola).
@wizztjh La mia risposta era sbagliata; si prega di vedere l'esempio aggiornato sopra che mostra che dovrebbe "funzionare" a piacere. – Phrogz