Il est assez facile d'écrire une méthode qui le fait, en supposant que vous utilisez quelque chose comme Rails qui a #capture
, #concat
, et #markdown
helpers. Voici un exemple, en utilisant Maruku:
def markdown_filter(&block)
concat(markdown(capture(&block)))
end
Ensuite, vous pouvez l'utiliser comme ceci:
<% markdown_filter do %>
# Title
This is a *paragraph*.
This is **another paragraph**.
<% end %>
Il y a quelques petites choses à noter ici. Tout d'abord, il est important que tout le texte du bloc n'ait pas d'indentation; vous pouvez contourner ce problème en trouvant l'indentation commune des lignes et en la supprimant, mais je ne l'ai pas fait dans l'exemple ci-dessus. En second lieu, il utilise aide Rails #markdown
, qui pourrait facilement être mis en œuvre dans d'autres cadres comme si (remplacement Maruku
avec votre processeur Markdown de choix):
def markdown(text)
Maruku.new(text).to_html
end
Rails 3 a supprimé l'aide #markdown
, donc il suffit d'ajouter ci-dessus code dans l'assistant approprié, en substituant le processeur Markdown de votre choix.
Pour être honnête, Haml ne possède pas non plus de support Markdown: il utilise toutes les gammes Markdown disponibles sur le système. Aussi, je recommanderais la bibliothèque pure-Ruby Maruku sur les RDiscount et BlueCloth basés sur C, à moins que la vitesse soit un problème sérieux (ce qui ne devrait pas être avec une bonne mise en cache). –