rails ビュー テンプレートとして haml を使用する場合、":markdown" フィルターを使用して、マークダウンを使用してページの一部を記述することができます。
erbを使用して同じことを行うことは可能ですか?
rails ビュー テンプレートとして haml を使用する場合、":markdown" フィルターを使用して、マークダウンを使用してページの一部を記述することができます。
erbを使用して同じことを行うことは可能ですか?
#capture
、#concat
、および#markdown
ヘルパーを持つ Rails のようなものを使用していると仮定すると、それを行うメソッドを作成するのは非常に簡単です。Maruku を使用した例を次に示します。
def markdown_filter(&block)
concat(markdown(capture(&block)))
end
次に、これを次のように使用できます。
<% markdown_filter do %>
# Title
This is a *paragraph*.
This is **another paragraph**.
<% end %>
ここで注意すべき点がいくつかあります。まず、ブロック内のすべてのテキストにインデントがないことが重要です。行の一般的なインデントを見つけて削除することでこれを回避できますが、上記の例のヘルパーではそうしませんでした。次に、Rails の#markdown
ヘルパーを使用します。これは、他のフレームワークにも簡単に実装できます (Maruku
選択した Markdown プロセッサに置き換えます)。
def markdown(text)
Maruku.new(text).to_html
end
Rails 3 では#markdown
ヘルパーが削除されているため、上記のコードを適切なヘルパーに追加し、選択した Markdown プロセッサに置き換えてください。
ERB には、このビルトインのようなフィルタリングはありません。RDiscount や由緒ある BlueCloth など、それを処理する gem を直接使用する必要があります。