如果您使用haml 作为rails 视图模板,您可以使用“:markdown”过滤器使用markdown 编写部分页面。
是否可以使用 erb 做同样的事情?
如果您使用haml 作为rails 视图模板,您可以使用“:markdown”过滤器使用markdown 编写部分页面。
是否可以使用 erb 做同样的事情?
假设您正在使用像 Rails 这样的具有 、 和 helpers 的方法,编写一个方法#capture
非常#concat
容易#markdown
。这是一个使用 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 没有内置的过滤功能。您需要直接使用处理它的 gem,例如 RDiscount 或古老的 BlueCloth。