在Rails 3中渲染Markdown文本

31
我想将Markdown转换为HTML。在我的视图中,我有markdown(some_text_variable),但出现错误undefined method markdown
我在environment.rb中添加了require 'BlueCoth'并安装了BlueCloth宝石。 有人可以帮帮我吗?
5个回答

49

在你的Gemfile文件中:

gem 'bluecloth'  

不要忘记运行

bundle install

如果您需要将 Markdown 转换为 HTML,只需使用以下代码:

markdown = BlueCloth.new(some_text_variable).to_html

你可以在视图中使用它:

<%= markdown.html_safe %>

5
谢谢您这样做!以下是为了帮助其他人节省时间的提示:这是宝石的最新版本:https://github.com/ged/bluecloth ,我必须在 .erb 模板中添加 .html_safe 在 .to_html 之后,才能正确渲染。 - BaronVonKaneHoffen
@BaronVonKaneHoffen bluecloth 真是太棒了!感谢您的出色工作! - VvDPzZ
1
我会在我的视图中添加一个 raw,以便获取已呈现的 HTML 而不是可见的 <p> 标签等。 - Tom Söderlund

3

2
#markdown助手在Rails 3中已被移除
您可以从提交中复制代码,或使用第三方Gem,例如formatize。您还需要在Gemfile中包含所需的BlueCloth/RedCloth/等Gem。

1
在我的Gemfile中没有显式包含BlueCloth的情况下,这对我起作用了。我在我的Gemfile中添加了formatize,运行了bundle install,重新启动了webrick,它就可以完美地工作了。 - nfm

2
我建议不要使用bluecloth,因为它似乎没有得到很好的维护。
截至目前(2013年夏季),我发现最好的选择是Redcarpet gem: https://github.com/vmg/redcarpet

不错的宝石!谢谢你的推荐。 - scarver2

0
尝试将以下内容添加到您的environment.rb中,而不是使用require:
config.gem 'BlueCloth', :lib => 'bluecloth'

在 Rails 3 中,这将会出现在 Gemfile 文件中:
gem 'bluecloth'

这个 gem 叫做 BlueCloth,但是被 require 的 .rb 文件都是小写的。

在添加 config.gem 行后,请确保重新启动 Rails。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接