SEO优化:Hexo-abbrlink插件生成永久固定链接

初衷

之前一直困扰了很长一段时间,写完博客,访问博客文章链接很长,中文直接转UTF-8编码了,导致对分享链接来说很不友好。经过询问博友们,这让我接触到了Hexo-abbrlink

Hexo-abbrlink是一个 Hexo 插件,用于基于文章标题和前置数据生成静态文章链接,是博客链接永久化的解决方案。
该插件支持 .textbundle 格式 – 一种包含 markdown 和相关资源的文件格式。实际上,.textbundle 文件是一个文件夹,在 macOS 的 Finder 中显示为文件。

安装方法

将插件添加到 Hexo:

npm install hexo-abbrlink --save

修改 config.yml 文件中的永久链接:

permalink: posts/:abbrlink/ 
# 或
permalink: posts/:abbrlink.html

有两个设置:

alg -- 算法(目前支持 crc16 和 crc32,其中 crc16 是默认值)
rep -- 表示(生成的链接可以用十六进制或十进制表示)
# abbrlink config
abbrlink:
alg: crc32 # 支持 crc16(默认)和 crc32
rep: hex # 支持 dec(默认)和 hex
drafts: false #(true)处理草稿,(false)不处理草稿。false(默认)
# 从目录树生成类别
# depth:您要生成的目录树的最大深度,应> 0
auto_category:
enable: true # true(默认)
depth: # 3(默认)
over_write: false
auto_title: false # 启用自动标题,可以通过路径自动填充标题
auto_date: false # 启用自动日期,可以通过今天的时间自动填充日期
force: false # 启用强制模式,在此模式下,插件将忽略缓存,并为每篇文章计算 abbrlink,即使它已经有 abbrlink。这只更新 abbrlink 而不是其他前置变量。

示例

生成的链接将如下所示:

crc16 & hex
https://blog.zhaoziyi.site/posts/a1e8a28a.html

crc16 & dec
https://blog.zhaoziyi.site/posts/dc5e24b.html

限制

[fixed] 最大文章数为 65535(对于crc16).(现在,如果已存在 abbrlink,则会更改另一个并一遍又一遍地尝试…)

报错解决方案

经过百般努力,这个配置完成之后,文章的链接都变成了undefined (如图所示),新的文章没问题,老的文章就不行了。这个问题其实仔细想一下就能明白,我们首先要执行hexo clean 清楚掉以前生成的文章缓存,然后hexo generate重新渲染就ok了。

关于插件的更多信息

参考:https://github.com/rozbo/hexo-abbrlink2

成果

总体来看,效果还是蛮不错的,耶比耶比~