现象
使用 hexo-toc 生成文章目录时,点击某个目录,url 变成
http://localhost:4000/690c8418/#null
原因
插件在把 markdown 编译成 HTML 时,
## title
会编译为
<h2><span id="title">title</span></h2>
而在插件源码的这次提交之前,是会编译成
<h2 id="title">title</h2>
因此新版本的 hexo-toc
生成 TOC 时,元素没有 id
这个属性,进而导致 TOC 中的锚点失效。
修复方法
修改 node_modules/hexo-toc/lib/filter.js
把 28 行的 $title.attr('id', id);
注释打开
把 31 行的 $title.removeAttr('id');
注释掉