问题描述
NexT主题中在每篇文章单独的post页面,侧边栏会根据文章的多级标题自动生成Table of Contents。不过对于有些文章,我想关闭这项功能,但是我发现在文章的Front-matter中并没有这个选项!
看了下代码,解决了这个问题。记录一下!
解决办法
使用toc
首先我们肯定要打开toc,进入主题
下的_config.yml
文件,下面是我的配置:
toc:
enable: true
# Automatically add list number to toc.
number: true
# If true, all words will placed on next lines if header width longer then sidebar width.
wrap: true
# If true, all level of TOC in a post will be displayed, rather than the activated part of it.
expand_all: false
# Maximum heading depth of generated toc.
max_depth: 6
部分关闭toc
-
进入主题中的文件
sidebar.swig
vim ./layout/_macro/sidebar.swig
-
找到:
{%- set display_toc = page.toc.enable and display_toc %}
添加一个判断条件
page.etoc
:{%- set display_toc = page.toc.enable and page.etoc and display_toc %}
-
最后在写文章的时候在Front-matter中加上:
etoc: true
上面的意思是显示toc,如果是false就是不显示!
-
最后提一个建议:
进入hexo的scaffolds
文件夹,找到文件post.md
,修改如下:以后直接hexo new 文件名 就可以自动生成这个模板,省去了自己去写。想不用toc的时候直接改成false就行了!