可以在erb中嵌入markdown吗?

Gai*_*arx 3 markdown haml ruby-on-rails erb

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

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

Nat*_*aum 9

编写一个执行此操作的方法非常容易,假设您正在使用Rails之类的东西#capture,包括#concat,和#markdown帮助程序.这是一个使用Maruku的例子:

def markdown_filter(&block)
  concat(markdown(capture(&block)))
end
Run Code Online (Sandbox Code Playgroud)

然后您可以这样使用:

<% markdown_filter do %>
# Title

This is a *paragraph*.

This is **another paragraph**.
<% end %>
Run Code Online (Sandbox Code Playgroud)

这里有几点需要注意.首先,重要的是块中的所有文本都没有缩进; 你可以通过弄清楚行的常见缩进并删除它来解决这个问题,但我没有在上面的示例助手中做到这一点.其次,它使用Rails的#markdown帮助程序,可以很容易地在其他框架中实现(替换Maruku为您选择的Markdown处理器):

def markdown(text)
  Maruku.new(text).to_html
end
Run Code Online (Sandbox Code Playgroud)

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