4
我使用Redcarpet作为Markdown渲染器,我希望能够显示html或任何带有<的文本,并且>不需要解析它。使用Redcarpet和Markdown呈现原始html
这里是应该发生的一个例证:
用户类型
I *want* to write <code>
当服务器发回应该
I <em>want</em> to write <code>
问题是因为此评论的来源渲染器在解析Markdown时输出转义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
当用户提交它为什么不能解析的代码,并用降价围绕它来识别它的代码?或者让用户使用正确的降价。由于他们已经添加了星号,为什么他们不能添加反向代码? – Jon
换取pandoc的redcarpet? https://github.com/alphabetum/pandoc-ruby – mb21