问题原因

hexo-asset-image 图片模块和 hexo-abbrlink 不兼容导致的。

hexo由于浏览器中,中文路径复制到文本中会被转成 unicode 编码,感观上特别不舒服,虽然粘回url后可以decode回来。

https://liukay.com/2020/11/12/linux-%E5%B8%B8%E7%94%A8%E6%96%87%E4%BB%B6%E5%92%8C%E6%96%87%E6%9C%AC%E6%93%8D%E4%BD%9C/

决定把路径改成Hash编码,使用abbrlink 这个插件后发现问题,图片显示不正常,查看一下图片路径发现,多了一个.html

解决方法

修改图片输出插件

插件路径:

hexo_home/node_modules/hexo-asset-image/index.js

修改代码

1
2
//24行 -1 改为 -5
var endPos = link.length-5;

为什么要 -5,因为.html 刚好5个字符,-5 就是 link 减少5个字符刚好。