关于hexo-abbrlink2生成的数字ID混乱问题
我想要更简洁的hexo永久链接,于是安装了hexo-abbrlink2插件,可是在
hexo clean之后,文章与ID对应完全混乱
插件逻辑
第一级:最高优先级 Front-matter(头文件)
1 | |
可见如果.md文件顶部写了abbrlink: 26,插件直接将此ID分配给文章
第二级:文章级缓存 db.json 中的文章记录(软固定)
1 | |
如果 Front-matter 里没写,插件就去 db.json 里找,看这篇文章以前是否被分配过 ID
hexo clean后,db.json被删除,本级无法找到ID
第三级:db.json读取目前分配过的最大ID+1
插件去 db.json 里找一个特殊记录(键名为 c-thiskeyusingbyabbrlink2),这个记录是分配过的最大 ID。
hexo clean后,db.json被删除,本级无法找到ID
第四级: _config.yml里设置的start值
hexo clean后,原有的对应关系丢失,这时如果hexo new就会导致新文章的ID再次从start+1开始,同时,就算不新建博客,当hexo clean删除了db.json,且文章 Front-matter 中没有abbrlink字段时,再次hexo g会因为文件读取顺序的不确定性导致 ID 对应关系混乱。
解决措施
不能不用hexo clean,于是在每篇文章的头文件中添加abbrlink: ID即可
为了每次new一个新文件,让他的头文件中都自带abbrlink:,可以修改scaffolds目录(文章模板)下的post.md
1 | |
关于hexo-abbrlink2生成的数字ID混乱问题
posts/2/