【问题标题】:Has anyone figured out how to embed video using the Redcarpet gem for Markdown in Rails 3.2?有没有人想出如何在 Rails 3.2 中使用 Redcarpet gem 为 Markdown 嵌入视频?
【发布时间】:2012-02-18 22:25:43
【问题描述】:

想知道是否有人对此有很好的解决方案。嵌入新旧版本的 YouTube 视频嵌入代码时,我的应用程序没有显示任何内容。我正在使用 GitHub 的 Markdown Gem Redcarpet,并且在他们的“问题”部分中似乎没有任何信息可以帮助解决这个问题。 Stack Overflow 上有一个similar question,但它处理的是不同的问题。

有没有人想出如何在 Rails 3.2 中使用 Redcarpet gem 为 Markdown 嵌入视频?

【问题讨论】:

    标签: ruby-on-rails ruby ruby-on-rails-3 markdown redcarpet


    【解决方案1】:

    确保在渲染器中禁用 :filter_html 标志。

    Redcarpet::Render::HTML.new(:filter_html => false)
    

    编辑:

    如果您只想让某些 html 标签通过,您必须创建自定义渲染器 (here's how) 并定义 block_html 方法。

    例如:

    class MyRenderer < Redcarpet::Render::HTML
      def block_html(raw_html)
        if raw_html =~ /^<iframe.*>$/ # You may want to optimize this.
          raw_html
        end
      end
    end
    

    然后在调用自己的渲染器时将 :filter_html 设置回 true:

    MyRenderer.new(:filter_html => true)
    

    【讨论】:

    • 是的。 :filter_html 从输出中去除原生 html,改为依赖 markdown 语法。
    • 你知道无论如何要在不允许所有 html 的情况下这样做吗?有没有办法只允许某些标签? Sanatize 和降价?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-10
    • 2020-11-30
    • 2017-10-06
    • 2015-02-27
    • 2019-11-04
    相关资源
    最近更新 更多