W filtrze Haml używasz interpolacji String w celu włączenia kodu Ruby do Twojego znacznika. Na przykład:
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"
Edycja: Moje poprzednie odpowiedź została mylące w odniesieniu do nowej linii w treści, z powodu mojej wadliwej testów. Jak pokazano powyżej, nowe wiersze w zawartej treści są obsługiwane bezpośrednio.
Jako taki szablon haml powinien po prostu wyglądać następująco:
- @articles.each do |article|
%article.post
%header=article.name
:textile
#{article.content}
%footer
pamiętać, że usunęliśmy Twojego %p
tag otaczającą znaczników, jak Textile wprowadza własne owijarki akapitów (nawet dla zawartości pojedynczej linii).
@wizztjh Moja odpowiedź była błędna; zobacz zaktualizowany przykład powyżej, pokazujący, że powinien "po prostu działać", jak chcesz. – Phrogz