解决文章目录点击不跳转的问题
摘要
网页文章目录罢工了?
今天在巡视我的小破站时,突然发现我的网页文章目录罢工了:点击目录文章不发生跳转。STFW找到了NexT主题下的一个2020年的Issue , 但我发现官方现在已经把这个bug修复了。之后我才找到原因:Hexo没有正确地渲染出我的markdown语法,或者说,我没有正确的书写markdown。 将h标签写的标题改成markdown语法即可,即<h3>摘要</h3>
改成### 摘要
正文
- Bug复现
点击文章目录不跳转,打开开发者工具,发现:
1 | Unchecked runtime.lastError: A listener indicated an asynchronous response by returning true, but the message channel closed before a response was received |
监听器确实监听到了一个response , 但 message channel在response接受前已关闭?不懂什么意思……
- 开发者模式Debug
打开开发者工具,选择一个元素进行检查,例如摘要
,发现浏览器将其渲染为:
1 | <a class = "nav-link"> |
这明显没设置锚点链接!!!怎么可能跳转!!!
我又去看了下在建站初,Hexo自己给出的文章实例Hello World
,检查Quick Start
:
1 | <a class = "nav-link" href = "#Quick-Start"> |
检查文章中的标题Quick Start
:
1 | <h2 id="Quick-Start"> |
发现文章内的大标题都被加上了``id`锚点。而我写的文章都没有渲染加上锚点。
- 问题分析
同样是_post
文件夹里的md文件,渲染结果却不同,问题肯定处在markdown文件内部,我仔细对比了官方参考的Hello World
文章与我的文章,发现了问题所在:原来我的文章内的标题都是用HTML格式写的,而官方文章都是用markdown语法写的,即:
我的摘要:
1 | <h3>摘要</h3> |
官方的摘要:
1 | ### 摘要 |
markdown里写的是<h3>摘要</h3>
,那hexo当然要原封不动地渲染为<h3>摘要</h3>
, 难不成还修改你的HTML代码? 被自己傻到了:sweat_smile:
- 解决方案
把markdown源文件修改即可,即<h3>摘要</h3>
改成### 摘要