在Rails中使用kramdown 3

And*_*rew 2 ruby ruby-on-rails-3

我正在尝试将一些Markdown样式添加到我的Rails 3博客应用程序中.这应该是简单的,但我不能让它工作.

我有kramdown我的Gemfile:

gem 'kramdown'
Run Code Online (Sandbox Code Playgroud)

我跑bundle install.我有一个名为的应用程序助手kramdown

module ApplicationHelper
  def kramdown(text)
    require 'kramdown'
    return Kramdown::Document.new(text).to_html
  end
end
Run Code Online (Sandbox Code Playgroud)

在我的视图脚本中:

<%= kramdown(@post.body) %>
Run Code Online (Sandbox Code Playgroud)

我收到错误消息:

没有这样的文件加载 - kramdown

我究竟做错了什么?

Ben*_*Ben 10

我刚刚开始尝试使用Kramdown.

只需添加到gem文件,bundle install,然后在我的视图中添加以下内容即可实现.

<%= Kramdown::Document.new(@project.body).to_html %>
Run Code Online (Sandbox Code Playgroud)

认为你的问题是需要'kramdown'线.使用Rails,这可能会在幕后添加.我怀疑kramdown文档更专注于Ruby而不是Rails.开发服务器确实需要重启.

使用你的帮助建议,以下适用于我.

申请助手:

def kramdown(text)
  return Kramdown::Document.new(text).to_html
end
Run Code Online (Sandbox Code Playgroud)

视图:

<%= kramdown @project.body %>
Run Code Online (Sandbox Code Playgroud)

我确实碰到了一个问题.所有kramdown的HTML代码都可见,因为Rails使HTML安全.为了解决这个问题,我在辅助函数中添加了sanitize:

def kramdown(text)
  return sanitize Kramdown::Document.new(text).to_html
end
Run Code Online (Sandbox Code Playgroud)