16

我正在尝试在我的 Jekyll 网站上的页面(不是帖子)上使用 Kramdown 的自动“目录”生成器。

_includes/toc.html

<nav>
  <h4>Table of Contents</h4>
  {:toc}
</nav>

my_cool_stuff/my_cool_page.md

---
layout: page
---

{% include toc.html %}

# The title of my page
## The Subtitle of my page

HTML 是按字面意思生成的,我没有得到标题列表。

<nav>
  <h4 class="toc_title">On This Page</h4>
  {:toc}
</nav>

我设置错了什么?

4

2 回答 2

22

{:toc} 是用于自动生成内容表的 kramdown 标签

就您而言,您还需要两件事才能使其正常工作:

  1. 允许 kramdown 解析内部 html 块:在_config.yml添加:

    kramdown:
      parse_block_html: true
    
  2. _includes/toc.html,您需要提供一个种子列表:

    <nav>
      <h4>Table of Contents</h4>
      * this unordered seed list will be replaced by toc as unordered list
      {:toc}
    </nav>
    
于 2016-07-17T08:46:50.213 回答
7

我想做类似的事情,但试图避免在我的帖子页面中有任何类型的标记,类似于你的{% include toc.html %}.

我发现了这个很棒的 Ruby Gem - jekyll-toc,它允许您在布局文件中的任何位置放置 TOC。你在前面启用它。

于 2017-08-29T11:43:10.007 回答