【发布时间】:2011-02-25 05:26:55
【问题描述】:
如果您使用haml 作为rails 视图模板,您可以使用“:markdown”过滤器使用markdown 编写部分页面。
是否可以使用 erb 做同样的事情?
【问题讨论】:
标签: ruby-on-rails markdown haml erb
如果您使用haml 作为rails 视图模板,您可以使用“:markdown”过滤器使用markdown 编写部分页面。
是否可以使用 erb 做同样的事情?
【问题讨论】:
标签: ruby-on-rails markdown haml erb
假设您使用像 Rails 这样的具有 #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 帮助器,它可以很容易地在其他框架中实现(用您选择的 Markdown 处理器替换 Maruku):
def markdown(text)
Maruku.new(text).to_html
end
Rails 3 已删除 #markdown 帮助程序,因此只需在适当的帮助程序中添加上述代码,替换您选择的 Markdown 处理器。
【讨论】:
ERB 没有内置的过滤功能。您需要直接使用处理它的 gem,例如 RDiscount 或古老的 BlueCloth。
【讨论】: