首页 > 解决方案 > 使用 toshimaru / jekyll-toc 在 jekyll 站点上自定义自动生成的 TOC

问题描述

我有一个 Jekyll 站点,它使用https://github.com/toshimaru/jekyll-toc进行右侧导航。在 _config.yml 我有以下设置,以确保只有<h2>元素显示在自动生成的目录中。

toc:
  min_level: 2 # default: 1
  max_level: 2 # default: 6

这很好用,但在某些页面上,我也想<h3>在 toc 中包含元素。所以我想在特定情况下将 max_level 更改为 3。这可能吗?我想从模板代码中动态更改 max_level 值。请帮忙

标签: ruby-on-railsrubyrubygemsjekyll

解决方案


乍一看,该插件似乎不支持每页配置。作为一种解决方法,您可以始终生成第三级标题,并使用 CSS 隐藏它们,除非您在该页面上专门显示它们。相关部分:

布局:

<body class="{{ page.body_class }}">

页:

---
body_class: has-toc-level-3
---

CSS:

body:not(.has-toc-level-3) .toc-h3 {
  display: none;
}

推荐阅读