1

我正在开发一个允许用户输入 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”,则降价有效。

任何想法如何解决这个问题?我错过了什么吗?

4

0 回答 0