Redcarpet 不会在 HTML 标签中呈现降价。这正常吗,可以覆盖吗?



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选项的官方文档,请参见此处。

相关内容

  • 没有找到相关文章

最新更新