Пока я создал это:
module Haml::Filters::SafeMarkdown
include Haml::Filters::Base
lazy_require "rdiscount", "peg_markdown", "maruku", "bluecloth"
def render(text)
engine = case @required
when "rdiscount"
::RDiscount
when "peg_markdown"
::PEGMarkdown
when "maruku"
::Maruku
when "bluecloth"
::BlueCloth
end
engine.new(Haml::Helpers.html_escape(text)).to_html
end
end
и для удобства использования:
module SafeMarkdown
def self.render(text)
Haml::Filters.defined["safemarkdown"].render(text).html_safe
end
end
Кажется, сейчас работает. У кого-нибудь есть комментарий?