Redcarpetを Markdown レンダラーとして使用していますが、解析せずに HTML または < と > を含む任意のテキストを表示できるようにしたいと考えています。
以下は、何が起こるべきかを示したものです。
ユーザーの種類
I *want* to write <code>
サーバーから送り返されたときのこのコメントのソースは、
I <em>want</em> to write <code>
問題は、マークダウンの解析時にレンダラーがエスケープされた html を出力するため、次のようになります。
I <em>want</em> to write <code>
したがって、人々がサーバーに送信する html と Redcarpet レンダラーによって生成される html を区別できません。これを行う.html_safe
と、マークダウンは解釈されますが、ユーザーが入力したhtmlも解釈されます。
これを修正する方法について何か考えはありますか? ユーザーがマークダウンで期待されるようにバッククォート ` を使用しなかった場合でも、ユーザーが入力した html を表示する (ただし解析しない) という考えに注意してください。
関連するコードは次のとおりです。
# this is our markdown helper used in our views
def markdown(text, options=nil)
options = [:no_intra_emphasis => true, ...]
renderer = MarkdownRenderer.new(:filter_html => false, ...)
markdown = Redcarpet::Markdown.new(renderer, *options)
markdown.render(text).html_safe
end