如果您使用haml作为rails视图模板,则可以使用“:markdown”过滤器使用markdown编写页面的一部分。
使用erb可以做同样的事吗?
答案 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。