i/ve写了一个简单的导轨助手,以使用redCarpet转换降价。这是代码:
def markdown(text)
render_options = {
filter_html: false,
hard_wrap: true,
link_attributes: { rel: 'nofollow' }
}
renderer = HTML.new(render_options)
extensions = {
autolink: true,
fenced_code_blocks: true,
lax_spacing: true,
no_intra_emphasis: true,
strikethrough: true,
superscript: true
}
Redcarpet::Markdown.new(renderer, extensions).render(text).html_safe
end
以下传入的文本如预期的那样呈现,大胆的"强调":
This is **emphasized** text.
但是,以下文本未按预期呈现:
<div>
This is **emphasized** text.
</div>
DIV内部的所有内容保持不变。红色/降低的这种正常行为?如果是这样,可以覆盖吗?。
此问题已报告为RedCarpet问题#13,而那里的开发人员的建议一直在使用支持此"非标准"扩展的Markdown处理器,例如kramdown:
如果您正在寻找一个带有扩展名的Markdown处理器,该处理器将在HTML块中解析摇摆,我强烈建议您查看另一个Markdown处理器,例如KRAMDOWN,它确实允许这种混合。(来源(
如果您想沿着那条路线走,您将使用这样的kramdown:
require 'kramdown'
text = "<div>Wow! Markdown _inside_ HTML!</div>"
options = { input: "Kramdown", parse_block_html: true }
Kramdown::Document.new(text, options).to_html
有关parse_block_html
选项的官方文档,请参见此处。