我使用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