如何配置 Haml 的 :markdown 过滤器以使用带有选项的红地毯?



我使用Rails 3.2.11, Haml 4.0和Redcarpet 2.2.2.

我想配置Haml的:markdown过滤器以使用Redcarpet和with_toc_data: true。在ApplicationHelper中,我尝试定义:

def markdown(text)
  markdown = Redcarpet::Markdown.new(Redcarpet::Render::HTML.new(with_toc_data: true))
  raw markdown.render(text.to_s)
end

虽然显示了:markdown中的内容,但没有TOC数据。如何更改:markdown的解析方式?

目前还没有办法将选项传递给Haml中的过滤器引擎。目前最好的解决方案可能是将现有的:markdown过滤器替换为具有所需选项的新过滤器。

尝试在初始化器中添加如下内容:

module Haml::Filters
  remove_filter("Markdown") #remove the existing Markdown filter
  module Markdown
    include Haml::Filters::Base
    def render(text)
      Redcarpet::Markdown.new(Redcarpet::Render::HTML.new(with_toc_data: true)).render(text)
    end
  end
end

相关内容

  • 没有找到相关文章

最新更新