Kramdown具有很酷的目录生成功能

{: .toc}


这会生成一个很好的目录,例如html中的有序/无序列表,如下所示:

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


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

有没有办法继承/覆盖此toc模块以生成我自己的标记?

注意:我在jekyll上使用了github页面。

最佳答案

不幸的是,不行-{: 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,请确保使用全局parse_block_html或目录本身的markdown="block"选项允许block level parsing。例如,

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

关于javascript - Kramdown扩展,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40805012/

10-12 00:00