2010-10-22 84 views
2

我试图在我的Rails 3博客应用程序中添加一些Markdown样式。这应该是简单的,但我不能得到它的工作。在Rails 3中使用kramdown 3

我有kramdown在我的Gemfile:

gem 'kramdown' 

我跑bundle install。我有一个应用助手叫kramdown

module ApplicationHelper 
    def kramdown(text) 
    require 'kramdown' 
    return Kramdown::Document.new(text).to_html 
    end 
end 

在我看来,剧本:

<%= kramdown(@post.body) %> 

我收到错误消息:

没有这样的文件加载 - kramdown

我在做什么错?

回答

9

我刚开始尝试使用Kramdown。

通过添加到gem文件,捆绑安装,然后在我的视图中放入以下内容,就可以实现它的工作。

<%= Kramdown::Document.new(@project.body).to_html %> 

估计你的问题是需要 'kramdown'线。使用Rails可能会在幕后添加。我怀疑kramdown文档比Rails更专注于Ruby。开发者服务器确实需要重新启动。

使用你的建议做一个帮手,以下适用于我。

应用助手:

def kramdown(text) 
    return Kramdown::Document.new(text).to_html 
end 

查看:

<%= kramdown @project.body %> 

我虽然没有遇到问题。当Rails使HTML安全时,所有kramdown的HTML代码都可见。为了解决这个问题,我添加了辅助功能的消毒功能:

def kramdown(text) 
    return sanitize Kramdown::Document.new(text).to_html 
end 
+0

我想我可能忘记重启dev服务器了。 – Andrew 2010-11-02 15:41:28

+2

然后你应该接受他的答案。 – DNJohnson 2012-08-12 07:14:42