Markdown中Sphinx的``raw:html`相当于什么?

问题描述 投票:0回答:1

问题标题应该是自我解释的。我找不到任何关于狮身人面像raw的Markdown。

我知道我可以在md文件中直接输入html,但是我有一个非常长的html代码片段,我想与markdown分开。

markdown python-sphinx
1个回答
2
投票

正如rules明显的状态(重点补充):

对于Markdown语法未涵盖的任何标记,您只需使用HTML本身。没有必要为它添加前缀或分隔它以表明您正在从Markdown切换到HTML;你只需使用标签。

唯一的限制是块级HTML元素 - 例如<div><table><pre><p>等 - 必须通过空行与周围内容分开,并且块的开始和结束标记不应使用制表符或空格缩进。 Markdown很聪明,不会在HTML块级标签周围添加额外的(不需要的)<p>标签。

如果您担心Markdown可能会破坏原始HTML的内容,则规则还规定:

请注意,在块级HTML标记中不处理Markdown格式化语法。例如,您不能在HTML块中使用Markdown样式的*emphasis*

因此,只要您的HTML块正确包装在块级HTML标记中,Markdown就会将它们排除在外。当然,这不适用于内联HTML元素,包括在Markdown文本中:

跨度级HTML标记 - 例如<span><cite><del> - 可以在Markdown段落,列表项或标题中的任何位置使用。如果需要,您甚至可以使用HTML标签而不是Markdown格式;例如如果您更喜欢使用HTML <a><img>标签而不是Markdown的链接或图像语法,请继续。

与块级HTML标记不同,Markdown语法在span-level标记内处理。

同样重要的是要注意一些Markdown实现不遵循上述规则。因此,您可能需要查看正在使用的实现的文档,以确保它遵循规则,或者具有强制其遵循规则的配置开关。

然后有Commonmark,它不遵循原始Markdown规则,但使用different set of rules。具体来说,Commonmark在原始HTML块中不需要空行以避免Markdown解析。 CommonMark会在原始HTML块中的第一个空行之后将所有内容视为Markdown。但是,如果您使用的是旧式Markdown解析器而不是Commonmark解析器,则这应该不是问题。

最后提醒一下,Markdown(不是Commonmark)比HTML 5更老。因此,大多数Markdown实现都不会将添加到HTML 5(<section><article>等)的新块级元素识别为块级元素。一些实现已经更新以添加支持,但即使这样,实现之间也没有关于哪些新元素应被视为块级别的一致性,因为参考实现尚未更新以设置总统。因此,最好坚持在旧的HTML 4和/或XHTML 1规范中定义为块级的元素。

© www.soinside.com 2019 - 2024. All rights reserved.