4

我的 Jekyll 网站上的索引页面旨在与一篇文章完全一样,只有一个额外的代码用于导航其他文章。我并没有真正使用它来生成博客本身,而是一堆新闻页面。

现在在每篇文章中,我都使用 kramdown 生成一个目录,如下所示:

* This line is a placeholder to generate the table of contents
{:toc}

这适用于所有帖子,但是当我尝试在除帖子之外的任何内容上使用它时,它不会生成。输出只是空的。它没有显示上面的原始 kramdown 或任何东西,它只是消失了,没有任何东西(特别是不是 TOC)出现在它的位置。

这篇文章的一些评论:如何为 Jekyll 博客文章创建目录?

建议<li>在上面的代码之前放一个,但我尝试了所有可能的迭代,但没有奏效。另一条评论建议带有<h1>标签的东西是必要的,它存在。

我意识到有一个插件可以生成目录,非javascript版本比我所看到的使用kramdown实现TOC更旧(该插件在这里:https ://github.com/dafi/jekyll- toc 生成器)。

另一个插件(https://github.com/ghiculescu/jekyll-table-of-contents)是更新的,但我不希望使用 javascript 来做 kramdown 已经可以做的事情。

是否可以使用标准的 kramdown 目录降价在我的情况下在页面而不是帖子上生成一个?

4

2 回答 2

2

没有办法使用 kramdown 选项执行此操作,也不能将{:toc}选项与{{ content }}Jekyll 页面一起使用,因为{:toc}它不适用于生成的 HTML。

我意识到这是一个较老的问题,但对于最近偶然发现这个问题的人来说。我在这里为这个问题写了一个解决方案,它只使用 Liquid,所以它可以在 GitHub 页面上运行得非常好(不涉及插件)并且禁用了 JavaScript。我的解决方案适用于 Jekyll 提供的生成的 HTML,因此不需要任何不稳定的工作。

我也意识到“仅链接答案”是不受欢迎的,但我宁愿不必在多个地方维护相同的代码片段。所以希望你不要介意。

于 2017-08-31T15:01:56.817 回答
1

如果您的索引页面没有 YAML 前端,那么 Jekyll 将不会调用 kramdown 处理器。这是一个猜测,但这可能是你的问题。

于 2014-12-24T08:14:41.807 回答