4

我正在使用 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解析方式?

4

1 回答 1

8

目前没有办法将选项传递给 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
于 2013-04-05T16:29:37.720 回答