Kramdown拥有这个很酷的Table of Content一代
{: .toc}
这会生成一个很好的TOC,例如html中的顺序/无序列表:
<ul id="markdown-toc">
<li></li>
...
</ul>
但有时我想控制更多就像使用Bootstrap List Group
甚至使用<div>
标记然后<ul><li></li></ul>
。
有没有办法继承/覆盖这个toc
模块来生成我自己的标记?
注意:我使用github页面和jekyll。
不幸的是 - {: toc}
语法不接受任何修改,除了通过toc_levels
(允许您指定toc
深度;有关详细信息,请参阅the options documentation)。基本上你可以根据你是否使用来指定whether you'd like the list to be unordered or ordered
* Table of contents
{: toc}
要么
1. Table of contents
{: toc}
您还可以使用{: .no_toc}
选项排除标题(至少如果您使用auto-ids
,因为只添加了带有ID的标题,如果您不使用该选项,您也可以不提供ID):
# Header
{: .no_toc}
还有其他与CSS,Javascript或后处理有关的事情。然而,这通常是相对简单的,因为你可以将整个toc
包装在<div>
中,如果你愿意或者添加任何你想要的类<ul>
/ <ol>
封闭toc
。如果您在toc
中生成div
时遇到问题,请确保您在全局范围内使用block level parsing或parse_block_html
选项允许使用markdown="block"
。例如,
# Header
<div markdown="block" id="xyzzy">
* TOC
{: toc .class}
</div>
应该生成
<h1 id="header">Header</h1>
<div id="xyzzy">
<ul class="class" id="markdown-toc">
<li><a href="#header" id="markdown-toc-header">Header</a></li>
</ul>
</div>