I'm using Rails 3.2.11, Haml 4.0 and Redcarpet 2.2.2.
I would like to configure Haml's :markdown
filter to use Redcarpet with with_toc_data: true
. In ApplicationHelper
I tried defining:
def markdown(text)
markdown = Redcarpet::Markdown.new(Redcarpet::Render::HTML.new(with_toc_data: true))
raw markdown.render(text.to_s)
end
Though content in :markdown
gets rendered, but without TOC data. How do I alter how :markdown
is parsed?
There’s currently no way to pass options through to the filter engines in Haml. The best solution for now is probably to replace the existing :markdown
filter with a new one that has the options you want.
Try adding something like this to an initializer:
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
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With