您需要告诉 MultiMarkdown 处理 HTML 块内的 Markdown。有几种方法可以做到这一点(如文档中所述)
markdown=1
首先,您可以通过设置包含的原始 HTML 元素简单地将块标记为包含 Markdown 文本:
<div class="linelist" markdown=1>
* List-item-alpha
* List-item-beta
</div>
这应该给你这个输出:
<div class="linelist">
<ul>
<li>List-item-alpha</li>
<li>List-item-beta</li>
</ul>
</div>
第二个选项是使用命令行选项告诉 MultiMarkdown 处理所有HTML 块中的 Markdown 文本。--process-html
如果你走这条路,你可以省略,markdown=1
但请注意,任何原始 HTML 中的所有文本都将作为 Markdown 处理,这可能会在某些边缘情况下产生不良结果。通常最好坚持使用该markdown=1
方法,并且仅在需要时才明确要求进行 Markdown 处理。
最后,您的 CSS 需要修复,即使使用markdown=1
技巧也是如此。该类linelist
指向 div,而不是列表。虽然颜色变化会被所有 div 元素的子元素继承,但display: inline
可能不会。实际上,display: inline
需要专门应用于li
:
.linelist ul li {
display: inline;
color: red;
}
注意第一行;该规则适用于任何li
作为 aul
的子级的任何元素,该子级是具有类的任何元素的子linelist
级。
顺便说一句,你使用 span 是行不通的(即使 CSS 是固定的),因为 span 是一个内联元素,而一个内联元素不能包含块级元素。虽然这意味着您的输出无效,但浏览器是为处理无效标记而构建的。实际上,浏览器可能(不同的浏览器可能会以这种稍微不同且不可预测的方式)解释您的输出(带有跨度),如下所示:
<p><span class="linelist"></span></p>
<ul>
<li>List-item-alpha</li>
<li>List-item-beta</li>
</ul>
<p><span></span></p>
请注意,当浏览器到达块元素(<p>
本例中的元素)的末尾时,它会为您关闭未闭合的跨度。因此,就浏览器而言,您的跨度实际上并没有包装列表,因此任何 CSS 都不会使用lineline
该类应用于列表。因此,您必须使用 div,或者至少使用一些块级元素。
如果您正在使用折扣(如问题更新中所示),您可以使用类块创建一个分配给它的类的 div:
> %linelist%
> * List-item-alpha
> * List-item-beta
我对折扣不是很熟悉,这未经测试,但根据文档,上面的输入应该给出以下输出:
<div class="linelist">
<ul>
<li>List-item-alpha</li>
<li>List-item-beta</li>
</ul>
</div>
请确保未设置该标志,MKD_NODIVQUOTE
因为这会禁用此功能。我不确定这一点,但如果我正确理解文档,则该MKD_TAGTEXT
标志可能会启用解析 HTML 标记内的 Markdown 文本作为第二个选项。