Vigorous Pro

The world can always use more heroes.

  1. 1. 排查过程
    1. 1.1. 排查 Markdown renderer
    2. 1.2. 排查主题
    3. 1.3. 排查站点配置文件及发现来源
  2. 2. 解决办法
    1. 2.1. 原因
  3. 3. 参考链接

一段关于解决在排查博客问题的过程中,遇到了在已经关闭 Hexo markdown renderer 的 autolink 选项后,依然有莫名出现可点击链接的经历。

排查过程

排查 Markdown renderer

在发现这种情况的时候,最先想到的是 markdown renderer 的问题,因为 hexo 默认自带的 markdown 渲染器是 hexo-renderer-marked,便根据文档[1],在站点配置文件 _config.yml 里禁用 autolink 后,但是网页中仍然会莫名出现奇怪的链接。

1
2
3
4

marked:
autolink: false

因为 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
2
3
4
5
<a class="vglnk" href="http://abcde.com" rel="nofollow">
<span>abcde</span>
<span>.</span>
<span>com</span>
</a>

其实是我的 BUG 体质再度灵验(大雾

参考链接

Disable Affiliate Links (VGLNK) on Disqus


  1. hexojs/hexo-renderer-marked

  2. Suka 主题说明文档

本文作者 : Edison Jwa
本文使用 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 协议
本文链接 : https://www.wevg.org/archives/fix-disqus-vglink-problem/

本文最后更新于 天前,文中所描述的信息可能已发生改变