我希望在 Markdown 中的一系列行上为 H4 和 H3 和 P 调用一个特殊的 CSS。我正在使用 Kramdown,但如果它具有所需的功能,我愿意使用另一款。我试过这个:
<div id="X">
### Header
#### Header2
blah
</id>
Run Code Online (Sandbox Code Playgroud)
但它不起作用。标题不被解释为降价。我也尝试过<span>。
有什么办法可以做到这一点吗?
Kramdown 为您提供了多种选择,下面将依次解释。
\n\n正如 Markdown规则所解释的:
\n\n\n\n\n请注意,Markdown 格式化语法不在块级 HTML 标记内进行处理。
\n*emphasis*例如,您可以\xe2\x80\x99t在 HTML 块内使用 Markdown 样式\n。
当然,您始终可以使用所有原始 HTML,这将适用于所有实现。事实上,如果您查看原始 Markdown 规则的源代码,您会发现所有标头都是使用原始 HTML 定义的,以便可以为每个标头分配 ID。因此,这应该可以解决问题:
\n\n<h3 id="foo">Header</h3>\n<h4 id="bar">Header2</h4>\n<p class="baz">blah</p>\nRun Code Online (Sandbox Code Playgroud)\n\n当然,这样你就失去了用 Markdown 编写(和阅读)的好处。然而,Kramdown 提供了许多选项来解决这个问题。
\n\nKramdown 提供了parse_block_html选项,启用后允许在原始 HTML 块中进行 Markdown 处理。但是,该选项的文档指出:
\n\n\n\n\n由于通常不需要这样做,因此默认值为
\nfalse. 通常最好通过 markdown 属性选择性地启用 kramdown 处理。
上面提到的“markdown 属性”是指 Kramdown 默认支持的 Markdown 语法的非标准附加组件,并在其文档的HTML 块部分中进行了记录:
\n\n\n\n\n还可以使用 markdown 属性在每个标签的基础上启用/禁用语法解析:
\n\n\n
\n- \n
如果 HTML 标签具有 属性
markdown="0",则该标签将被解析为原始 HTML 块。- \n
如果 HTML 标签具有 属性
markdown="1",则使用此标签中解析语法的默认机制。- \n
如果 HTML 标签具有 属性
markdown="block",则该标签的内容将被解析为块级元素。- \n
如果 HTML 标签具有 属性
markdown="span",则该标签的内容将被解析为跨度级别元素。
在你的情况下,使用markdown="1"应该可以解决问题(尽管block也应该有效)。
<div id="X" markdown="1">\n\n### Header\n\n#### Header2\n\nblah \n\n</div>\nRun Code Online (Sandbox Code Playgroud)\n\n但是,您不需要退回到原始 HTML,因为 Kramdown 允许您使用属性列表定义直接在标头和其他元素上定义 ID。
\n\n### Header {#foo)\n\n#### Header2 {#bar}\n\nblah\n{: .baz}\nRun Code Online (Sandbox Code Playgroud)\n\n上面的 Markdown 将转换为以下 HTML:
\n\n<h3 id="foo">Header</h3>\n<h4 id="bar">Header2</h4>\n<p class="baz">blah</p>\nRun Code Online (Sandbox Code Playgroud)\n\n最后,Kramdown 还支持auto_ids选项,启用该选项后,会将自动生成的 ID 添加到每个标头中。
\n| 归档时间: |
|
| 查看次数: |
902 次 |
| 最近记录: |