在 Jekyll (2.5.3) 应用程序上,我想注入一些 HTML 来设置样式,但我很难做到这一点。
这是我的代码
...
markdown: kramdown
highlighter: rouge
...
Run Code Online (Sandbox Code Playgroud)
[Google](https://google.com/) <div class="info">new</div>
Run Code Online (Sandbox Code Playgroud)
但是,一旦构建完成,就会产生以下结果
Google <div class="info">new</div>
Run Code Online (Sandbox Code Playgroud)
HTML 不会被解析,而是简单地呈现为文本。
经过一番谷歌搜索后,我尝试过
<div class="info" markdown="1">new</div>
Run Code Online (Sandbox Code Playgroud)
结尾
markdown: kramdown
kramdown:
parse_block_html: true
highlighter: rouge
Run Code Online (Sandbox Code Playgroud)
但结果总是一样的。
我在这里错过了什么吗?
谢谢。
有关原始 HTML 的规则规定(已添加重点):
\n\n\n\n\n唯一的限制是块级 HTML 元素 \xe2\x80\x94 例如
\n<div>、<table>、<pre>、<p>等。 \xe2\x80\x94必须用空行与周围内容分隔,并且块的开始和结束标记不应用制表符或空格缩进。Markdown 足够聪明,不会<p>在 HTML 块级标签周围添加额外的(不需要的)标签。
因此,您需要执行以下操作:
\n\n[Google](https://google.com/)\n\n<div class="info">new</div>\nRun Code Online (Sandbox Code Playgroud)\n\n当然,如果您确实希望两者在同一行(或至少在同一段落中),那么您需要使用内联 HTML 标记。正如规则所述(强调是添加的):
\n\n\n\n\n跨度级 HTML 标签 \xe2\x80\x94 例如
\n\n<span>、<cite>或<del>\xe2\x80\x94可以在 Markdown 段落、列表项或标题中的任何位置使用。如果需要,您甚至可以使用 HTML 标签而不是 Markdown 格式;例如,如果您\xe2\x80\x99d 更喜欢使用 HTML<a>或<img>标签而不是 Markdown\xe2\x80\x99s 链接或图像语法,请继续。与块级 HTML 标签不同,Markdown 语法是在跨度级标签内处理的。
\n
因此,你可以这样做:
\n\n[Google](https://google.com/) <span class="info">new</span>\nRun Code Online (Sandbox Code Playgroud)\n\n当您使用 Kramdown 时,您可能还会发现 Kramdown 的语法文档对于原始 HTML 很有帮助。Kramdown 还支持非标准属性列表功能,该功能允许您将属性分配给结果 HTML,而无需在 Markdown 中使用原始 HTML。但是,属性只能分配给可以在 Markdown 中表示的元素。由于 Markdown 没有任何方式来原生表示 div 或 span,因此您将无法使用它们。但是,您可以将您的班级分配给一个段落:
\n\n[Google](https://google.com/)\n\nnew\n{: .info }\nRun Code Online (Sandbox Code Playgroud)\n\n上面将生成以下 HTML:
\n\n<p><a href="https://google.com/">Google</a></p>\n<p class="info">new</p>\nRun Code Online (Sandbox Code Playgroud)\n\n请注意,该类info已分配给第二个<p>。
或者,您可以将一个类分配给内联元素(例如强调):
\n\n[Google](https://google.com/) *new*{: .info }\nRun Code Online (Sandbox Code Playgroud)\n\n这会产生以下输出:
\n\n<p><a href="https://google.com/">Google</a> <em class="info">new</em></p>\nRun Code Online (Sandbox Code Playgroud)\n\n当然,除非您的 CSS 为斜体文本,否则您将看到斜体文本info其关闭,否则您将获得斜体文本,这可能是也可能不是您想要的。有时,直接在 Markdown 中使用原始 HTML 会更容易。