首先找到 node_modules\hexo-util\lib\toc_obj.js 这个文件,定位至 tocObj() 这个函数,在 str 这一变量被引用之前先对其进行修改:

1
2
3
4
5
6
while (str.indexOf('class="skiptoc"') != -1) {
var beginIndex = str.indexOf('class="skiptoc"') - 4;
var endIndex = str.indexOf("</h", beginIndex);
if (endIndex == -1) break;
str = str.substring(0, beginIndex) + str.substring(endIndex + 5);
}

之后找到 node_modules\hexo-theme-butterfly\source\js\main.js 这个文件,其中有这么一句:

1
const list = $article.querySelectorAll('h1,h2,h3,h4,h5,h6')

将其改为:

1
const list = $article.querySelectorAll('h1:not(.skiptoc),h2:not(.skiptoc),h3:not(.skiptoc),h4:not(.skiptoc),h5:not(.skiptoc),h6:not(.skiptoc)')

这两步做完就🆗了。

看看效果:

<h1>标题一</h1>

标题一

<h1 class='skiptoc'>标题二</h1>

标题二