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