自定义容器扩展(Markdig 规范文档)
本节描述了支持的不同扩展:
自定义容器
自定义容器类似于围栏代码块,但使用字符 :
来声明一个块(至少 3 个字符),而不是生成 <pre><code>...</code></pre>
,它将生成一个 <div>...</div>
块。
:::spoiler
这是一个 *剧透*
:::
.
<div class="spoiler"><p>这是一个 <em>剧透</em></p>
</div>
打开的自定义容器后面的文本是可选的:
:::
这是一个普通的 div
:::
.
<div><p>这是一个普通的 div</p>
</div>
与围栏代码块一样,只要关闭时具有相同数量的字符,您可以使用超过 3 个 :
字符:
::::::::::::spoiler
这是一个剧透
::::::::::::
.
<div class="spoiler"><p>这是一个剧透</p>
</div>
与围栏代码块类似,自定义容器可以在列表块中跨越多行空行:
- 这是一个列表
:::spoiler
这是一个剧透
- 项目1
- 项目2
:::
- 列表中的第二个项目
.
<ul>
<li>这是一个列表
<div class="spoiler">这是一个剧透
<ul>
<li>项目1</li>
<li>项目2</li>
</ul>
</div>
</li>
<li>列表中的第二个项目</li>
</ul>
只要在自定义容器扩展之后激活属性扩展(.UseCustomContainer().UseAttributes()
),也支持自定义容器的属性扩展:
:::spoiler {#myspoiler myprop=yes}
这是一个剧透
:::
.
<div id="myspoiler" class="spoiler" myprop="yes"><p>这是一个剧透</p>
</div>
自定义容器的内容可以包含任何块:
:::mycontainer
这是一个原始剧透
:::
.
<div class="mycontainer"><p>这是一个原始剧透</p>
</div>
内联自定义容器
自定义容器也可以在内联容器(如段落、标题...)中使用,通过在一个文本周围使用新的强调符号 ::
这是一个文本 ::with 特殊强调::
.
<p>这是一个文本 <span>with 特殊强调</span></p>
任何其他内联强调都可以在内联自定义容器中使用:
这是一个文本 ::with 特殊 *强调*::
.
<p>这是一个文本 <span>with 特殊 <em>强调</em></span></p>
内联自定义容器可以附加属性:
这是一个文本 ::with 特殊强调::{#myId .myemphasis}
.
<p>这是一个文本 <span id="myId" class="myemphasis">with 特殊强调</span></p>