Ruby on rails 红地毯不是';t在HTML标记中呈现标记。这是否正常,是否可以覆盖?
我/我已经编写了一个简单的Rails帮助程序来使用Red地毯转换降价。代码如下:Ruby on rails 红地毯不是';t在HTML标记中呈现标记。这是否正常,是否可以覆盖?,ruby-on-rails,markdown,redcarpet,Ruby On Rails,Markdown,Redcarpet,我/我已经编写了一个简单的Rails帮助程序来使用Red地毯转换降价。代码如下: def markdown(text) render_options = { filter_html: false, hard_wrap: true, link_attributes: { rel: 'nofollow' } } renderer = HTML.new(render_options) extensions = { autolink
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
以下传入文本按预期呈现,并以粗体显示“强调”:
但是,以下文本未按预期呈现:
<div>
This is **emphasized** text.
</div>
这是**强调**文本。
div中的所有内容保持不变。这是红地毯/降价的正常行为吗?如果是,是否可以将其覆盖?
.据报告,该问题为,开发人员建议使用支持这种“非标准”降价扩展的降价处理器,例如: 如果您正在寻找一个标记处理器,它的扩展将解析HTML块内的标记,我强烈建议您寻找另一个标记处理器,例如Kramdown,它允许这种混合。() 如果你想沿着这条路线走,你可以这样使用克拉姆敦:
require 'kramdown'
text = "<div>Wow! Markdown _inside_ HTML!</div>"
options = { input: "Kramdown", parse_block_html: true }
Kramdown::Document.new(text, options).to_html
require'kramdown'
text=“哇!减价”\uhtml
选项={input:“Kramdown”,parse_block_html:true}
Kramdown::Document.new(文本,选项)。到\u html
对于有关
parse\u block\u html
选项的官方文档,.尝试在末尾删除html\u safe
,我确实尝试过,但它会转义所有内容,因此生成的文本是:这是**强调**文本代码>这是正常的降价行为。状态为:“请注意,块级HTML标记中不处理标记格式语法。例如,不能在HTML块中使用标记样式*emphasis*
。”某些实现允许您覆盖该规则,但我看不到Red地毯有这样的选项。也许更熟悉红地毯的人可以证实。
require 'kramdown'
text = "<div>Wow! Markdown _inside_ HTML!</div>"
options = { input: "Kramdown", parse_block_html: true }
Kramdown::Document.new(text, options).to_html