3

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

是否可以使用 erb 做同样的事情?

4

2 回答 2

9

假设您正在使用像 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 处理器。

于 2010-05-28T19:12:09.633 回答
1

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

于 2010-05-28T16:49:31.280 回答