我正在开发一个允许用户输入 youtube 视频、图像、推文等的应用程序。为此,我使用了 auto_html(https://github.com/dejan/auto_html)并且代码运行良好。我现在正在尝试实现 redcarpet markdown,但是每当我使用函数“markdown”(我自己定义的)时,auto_html 就会停止工作。
这是 redcarpet 的代码(在帮助文件中):
module ApplicationHelper
def markdown(text)
markdown = Redcarpet::Markdown.new(Redcarpet::Render::HTML, hard_wrap: true, autolink: true, quote: true, fenced_code_blocks: true, strikethrough: true)
return markdown.render(text).html_safe
end
end
这是 auto_html 的代码(在 Msg 模型中):
class Msg < ActiveRecord::Base
auto_html_for :content do
html_escape
image
twitter
vimeo
youtube(:width => 575, :height => 300, :autoplay => false)
soundcloud
link :target => "_blank", :rel => "nofollow"
simple_format
end
end
这是视图:
<p><%= markdown(msg.content_html) %></p>
其中 msg.content 是用户以文本形式输入的内容,msg.content_html 应用 auto_html 过滤器并将输入 URL 转换为其格式(图像、视频等)。我让 auto_html 和 markdown 分开工作。如果我将代码留在上面的视图中,我的 auto_html 加载正常,但 markdown 不起作用。如果我从 msg.content 中抑制“_html”,则降价有效。
任何想法如何解决这个问题?我错过了什么吗?