使用Jekyll和Kramdown制作目录表格

19

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

_includes/toc.html

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

我的_酷炫_东西/我的_酷炫_页面.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>

我设置错了什么?

2个回答

25

{:toc}是自动生成目录的Kramdown标签

在您的情况下,您需要两个额外的东西使其正常工作:

  1. Allow kramdown to parse inside html blocks : in _config.yml add :

    kramdown:
      parse_block_html: true
    
  2. in _includes/toc.html, you need to provide a seed list :

    <nav>
      <h4>Table of Contents</h4>
      * this unordered seed list will be replaced by toc as unordered list
      {:toc}
    </nav>
    

1
我已经按照这个方法操作了,但是在我的网站上,我仍然在文章中看到原始的HTML元素。还有其他原因我不知道吗? - user3875388
4
我正在使用Jekyll,并且点赞此内容是因为需要在目录渲染成表格前或后的下一行添加无序列表。 - Mark Crossfield
3
似乎 kramdown 只为 markdown 标题生成目录,例如<h2>toptic</h2>将不会被包含在内。 - olavimmanuel
它在布局中不起作用。我们必须将代码放在每个帖子内部。 - Anh-Thi DINH

8

我想做类似的事情,但是尝试避免在我的文章页面中有任何标记,类似于你的{% include toc.html %}

我发现了这个很棒的Ruby宝石-jekyll-toc,它可以让你在布局文件的任何位置放置一个目录。你可以在前置元数据中启用它。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接