BlueCloth 与 Rails 3 兼容吗?我不能让它工作,也许有人使用它?
在需要“bluecloth”之后,视图中应该有一个名为“markdown”的助手,但这似乎不可用。
BlueCloth 与 Rails 3 兼容吗?我不能让它工作,也许有人使用它?
在需要“bluecloth”之后,视图中应该有一个名为“markdown”的助手,但这似乎不可用。
我现在正在将应用程序升级到 rails3,它对我来说效果很好。我在模板中使用了一个名为“format”的辅助函数,尽管下面的代码还提供了一个 markdown 函数(在 rails3 中,您必须将它与 raw() 一起使用)。这是我的 [项目]/app/helpers/application_helper.rb 的内容
module ApplicationHelper
# Format text for display.
def format(text)
sanitize(markdown(text))
end
# Process text with Markdown.
def markdown(text)
BlueCloth::new(text).to_html
end
end
就像之前的海报所说,你还需要
gem 'bluecloth'
在您的 [项目]/Gemfile 中。我的模板看起来像:
<p><%= format @post.body %></p>
使用降价功能,它将是:
<p><%= raw(markdown(@post.body)) %></p>
所以我使用格式功能。根据需要重命名函数。
我创建了一个全新的 Rails 3 应用程序,并在 Gemfile 中添加了:
gem 'bluecloth', '>= 2.0.0'
然后打开控制台:
ruby-1.8.7-p302 > BlueCloth.new('**hello**').to_html
=> "<p><strong>hello</strong></p>"
所以它似乎工作,至少对我来说。
您也可以尝试 Rdiscount,但我认为它基于相同的 C 库,或者至少具有类似的基准。
您应该更具体地说明它是如何不工作的:它会引发错误吗?它不会呈现html吗?ETC...
您可以做的,不是说它很漂亮,而是在您的 rails 项目中创建一个初始化程序并将以下内容放入其中:
require 'bluecloth'
class String
def markdown
BlueCloth.new(self).to_html
end
end
这应该在每个字符串对象上启用 markdown 方法。
我建议通过 BlueCloth 切换到 RDiscount。这是替代品的下降,并且在所有方面都更好。