一段关于解决在排查博客问题的过程中,遇到了在已经关闭 Hexo markdown renderer 的 autolink 选项后,依然有莫名出现可点击链接的经历。
排查过程
排查 Markdown renderer
在发现这种情况的时候,最先想到的是 markdown renderer 的问题,因为 hexo 默认自带的 markdown 渲染器是 hexo-renderer-marked,便根据文档[1],在站点配置文件 _config.yml
里禁用 autolink 后,但是网页中仍然会莫名出现奇怪的链接。
1 |
|
因为 hexo 的 debug 中没有出现报错,我也不能确定问题是否出在 hexo-renderer-marked
上面,便安装了 hexo-renderer-markdown-it
进行测试,得到了相同的结果,基本确定问题不是 renderer 的问题。
排查主题
接下来,我便将目光转制主题上,在翻遍 Suka 主题的配置文件和说明文档[2]后,没有找到相关的配置,便尝试将 Prism 代码高亮模块换回 hexo 自带的 highlight 模块,但是问题仍然存在。因为不能确定问题是否出在主题上,我便将博客主题更换成 NexT,但是还是出现同样的问题。在经过多次尝试后,确定问题不是出在主题上。
排查站点配置文件及发现来源
此时,问题的排查工作便陷入了僵局。苏卡卡大佬给出提议,让我尝试在站点配置文件 _config.yml
里将 external_link
禁用进行测试。尽管问题不是出在这里,但还是很感谢苏卡卡大佬。就在这时,我偶然发现链接中包含一个名为 vglink
的 class,在反复排查后,发现这个 class 来自 Disqus。
既然发现了问题的真正来源,那么只需要找到解决方法即可。
解决办法
在 Disqus 站点设置, Advanced
选项卡下,取消勾选 Affiliate links(VGLNK)
选项并保存即可。
此时刷新页面就会发现莫名出现的可点击链接就已经消失了。
原因
Disqus 的 Affiliate links 存在问题,该问题导致如果网页中存在任何与域名 (即abcde.com) 相似的任何文本,都会被转换成 HTML 超链接代码的格式:
1 |
|
其实是我的 BUG 体质再度灵验(大雾
参考链接
Disable Affiliate Links (VGLNK) on Disqus