使用Markdown和Rails

at.*_*at. 7 markdown ruby-on-rails erb ruby-on-rails-3 ruby-on-rails-3.2

我希望用户在textarea中键入Markdown文本,当他们发布时,我会显示相应的html.我读过Rails曾经有一个markdown方法或类似的方法,你可以只调用ERB文件中的那个字段:

<%= markdown(@post.content) %>
Run Code Online (Sandbox Code Playgroud)

显然,Rails取消了这个功能.再次获得该功能的最佳方法是什么?这似乎解决了我的需要.

Jiř*_*šil 13

我会使用Redcarpet进行markdown-html转换.此外,我会将视图转换为其他对象.您可以使用callbacks(before_save)或使用Observers.

来自文档:

markdown = Redcarpet::Markdown.new(Redcarpet::Render::HTML,
    :autolink => true, :space_after_headers => true)

markdown.render("This is *bongos*, indeed.")
#=> "<p>This is <em>bongos</em>, indeed</p>"
Run Code Online (Sandbox Code Playgroud)

您可能希望将结果存储在另一列中,@post.content_parsed这样用户可以稍后对帖子进行编辑,这样您就不需要对每个请求进行转换.