可以在erb中嵌入markdown吗?

时间:2010-05-28 16:39:39

标签: ruby-on-rails markdown haml erb

如果您使用haml作为rails视图模板,则可以使用“:markdown”过滤器使用markdown编写页面的一部分。

使用erb可以做同样的事吗?

2 个答案:

答案 0 :(得分: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帮助器,可以很容易地在其他框架中实现(用您选择的Markdown处理器替换Maruku):

def markdown(text)
  Maruku.new(text).to_html
end

Rails 3删除了#markdown帮助程序,因此只需在适当的帮助程序中添加上述代码,替换您选择的Markdown处理程序。

答案 1 :(得分:1)

ERB没有像这样的内置过滤功能。你需要直接使用处理它的gem,比如RDiscount或古老的BlueCloth。