【发布时间】:2016-08-31 20:41:22
【问题描述】:
我的 Markdown 中有一些嵌入的 HTML(表格中的项目符号列表)。有没有办法在不将我的 HTML 缩进而不用 Pandoc 将其视为逐字代码块?
【问题讨论】:
我的 Markdown 中有一些嵌入的 HTML(表格中的项目符号列表)。有没有办法在不将我的 HTML 缩进而不用 Pandoc 将其视为逐字代码块?
【问题讨论】:
有点,但您必须更改 Pandoc 的默认设置。
Markdown rules 明确禁止这样做:
唯一的限制是块级 HTML 元素——例如
<div>、<table>、<pre>、<p>等 — 必须与周围的内容用空行分隔,并且块的开始和结束标记不应使用制表符或空格缩进。
但是,如果您注意到,上面引用的规则确实明确指出“块的开始和结束标记不应缩进”。缩进“开始和结束标签”内的内容没有限制。事实上,“开始和结束标签”之间的内容甚至都没有被处理为 Markdown,所以可以随意缩进。换句话说,这是完全可以接受的:
<table>
<thead>
<tr>
<th>A header</th>
</tr>
</thead>
</table>
除了在 Pandoc 中默认为 doesn't work。正如 Pandoc 的 documentation 中所述:
标准 Markdown 允许您包含 HTML“块”:平衡标记之间的 HTML 块,它们与周围的文本用空行分隔,并在左边距开始和结束。在这些块中,所有内容都被解释为 HTML,而不是 Markdown;所以(例如)
*并不表示强调。当使用
markdown_strict格式时,Pandoc 会以这种方式运行;但默认情况下,pandoc 将 HTML 块标记之间的材料解释为 Markdown。
因此,您需要使用raw_html 扩展名或markdown_strict 输出格式。
对于“严格模式”使用:
pandoc --from markdown_strict
或者不使用严格模式但仍然获得您想要的 HTML 行为(禁用 markdown_in_html_blocks 扩展并启用 raw_html 扩展):
pandoc --from markdown-markdown_in_html_blocks+raw_html
【讨论】:
<table>{{content}}</table>中的内容?