Kramdown 扩展

Kramdown extension

Kramdown 拥有 Table 的内容生成能力

{: .toc}

这会生成一个不错的目录,例如 order/unorder 列表 html 中的 :

<ul id="markdown-toc">
   <li></li>
   ...
</ul>

但有时我想对其进行更多控制,例如使用 Bootstrap List Group 甚至使用 <div> 标记然后使用 <ul><li></li></ul>.

有没有办法 inherit/override 这个 toc 模块生成我自己的标记?

注意:我使用了 github 个带有 jekyll 的页面。

不幸的是,{: toc} 语法不接受除通过 toc_levels 之外的任何修改(这允许您指定 toc 深度;参见 the options documentation for details). Essentially you can specify whether you'd like the list to be unordered or ordered 取决于关于你是否使用

* Table of contents
{: toc}

1. Table of contents
{: toc}

您还可以使用 {: .no_toc} 选项排除 headers(至少如果您使用 auto-ids,因为只添加带有 ID 的 headers,如果您不使用该选项,您也可以不提供 id):

# Header
{: .no_toc}

与 CSS、Javascript 或后处理有关的任何其他事情。但是,这通常相对简单,因为如果您愿意,可以将整个 toc 包装在 <div> 中,或者将您想要的任何 class 添加到 <ul>/<ol>封闭 toc。如果您无法在 div 中生成 toc,请确保您允许使用 parse_block_html 全局或 markdown="block" 选项的 block level parsing在内容本身的 table 上。例如,

# 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>