使用Jekyll和Kramdown的目录

Dev*_*vin 12 jekyll kramdown

我正试图在我的Jekyll网站上的页面(而不是帖子)上使用Kramdown的自动"目录"生成器.

_includes/toc.html

<nav>
  <h4>Table of Contents</h4>
  {:toc}
</nav>
Run Code Online (Sandbox Code Playgroud)

my_cool_stuff/my_cool_page.md

---
layout: page
---

{% include toc.html %}

# The title of my page
## The Subtitle of my page
Run Code Online (Sandbox Code Playgroud)

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

<nav>
  <h4 class="toc_title">On This Page</h4>
  {:toc}
</nav>
Run Code Online (Sandbox Code Playgroud)

我设置错了什么?

Dav*_*uel 19

{:toc}是自动内容生成表的kramdown标记.

在您的情况下,您需要再做两件事才能使其工作:

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

    kramdown:
      parse_block_html: true
    
    Run Code Online (Sandbox Code Playgroud)
  2. _includes/toc.html,您需要提供种子列表:

    <nav>
      <h4>Table of Contents</h4>
      * this unordered seed list will be replaced by toc as unordered list
      {:toc}
    </nav>
    
    Run Code Online (Sandbox Code Playgroud)

  • 我正在使用Jekyll并对此进行投票,因为您需要在上一行或下一行中为要呈现的目录提供无序列表. (4认同)
  • 似乎kramdown只为markdown标题生成一个toc.例如```<h2> toptic </ h2>```将不包括在内. (2认同)

san*_*oon 6

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

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