Как настроить фильтр уценки Haml's: использовать Redcarpet с опциями?
Я использую Rails 3.2.11, Haml 4.0 и Redcarpet 2.2.2.
Я хотел бы настроить Хамла :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
отображается, но без данных оглавления. Как я могу изменить как :markdown
анализируется?
1 ответ
Решение
В настоящее время нет способа передать опции в движки фильтров в 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