问题标题应该是自我解释的。我找不到任何关于狮身人面像raw的Markdown。
我知道我可以在md
文件中直接输入html,但是我有一个非常长的html代码片段,我想与markdown分开。
正如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规范中定义为块级的元素。