3

rails ビュー テンプレートとして haml を使用する場合、":markdown" フィルターを使用して、マークダウンを使用してページの一部を記述することができます。

erbを使用して同じことを行うことは可能ですか?

4

2 に答える 2

9

#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 プロセッサに置き換えてください。

于 2010-05-28T19:12:09.633 に答える
1

ERB には、このビルトインのようなフィルタリングはありません。RDiscount や由緒ある BlueCloth など、それを処理する gem を直接使用する必要があります。

于 2010-05-28T16:49:31.280 に答える