Kramdown扩展

问题描述 投票:1回答:1

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。

javascript jquery html jekyll kramdown
1个回答
1
投票

不幸的是 - {: 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 parsingparse_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>
© www.soinside.com 2019 - 2024. All rights reserved.