【问题标题】:Is it possible to generate a table of contents using kramdown in a page other than a post? If so, how?是否可以在帖子以外的页面中使用 kramdown 生成目录?如果是这样,怎么做?
【发布时间】:2014-08-16 03:30:43
【问题描述】:

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

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

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

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

本帖中的部分cmets:How to create a table of contents to Jekyll blog post?

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

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

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

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

【问题讨论】:

    标签: jekyll liquid kramdown


    【解决方案1】:

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

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

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

    【讨论】:

    • 我去看看。自从我不得不尝试这样做已经有一段时间了,但它仍然是我所拥有的。
    • 这太棒了。谢谢冠军。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-06-19
      • 2012-08-10
      • 2013-04-02
      • 1970-01-01
      • 2019-11-04
      • 1970-01-01
      • 2021-12-13
      • 1970-01-01
      相关资源
      最近更新 更多