Hexo在生成博客文章链接时,默认是按照年、月、日、标题格式来生成的,可以在站点配置文件中指定new_post_name的值。默认是:year/:month/:day/:title这样的格式。如果你的标题是中文的话,你的URL链接就会包含中文,生成的链接如下图:
复制后的url路径就是把中文变成了一大堆字符串编码: http://xjh199923.top/2019/12/15/Mac%E5%AE%89%E8%A3%85Qt%E6%95%99%E7%A8%8B/ 如果你在其它地方用了你自己这篇文章的url链接,偶然你又修改了该文章的标题,那这个url链接岂不是失效了。为了给每一篇文章来上一个属于自己的链接,写下此教程,利用hexo-abbrlink插件,A Hexo plugin to generate static post link based on post titles,来解决这个问题。 参考github官方: hexo-abbrlink 按照此教程配置完之后如下:
How to install
Add plugin to Hexo:
npm install hexo-abbrlink --save
{% note danger %} 执行此命令可能会不成功,提示你缺少相应的依赖,比如babel-eslint、mini-css-extract-plugin、webpack-cli… 使用npm命令安装即可,比如npm install eslint@4.x babel-eslint@8 --save-dev {% endnote %} Modify permalink in config.yml file:
permalink: posts/abbrlink.html # 此处可以自己设置,也可以直接使用 :/abbrlink
There are two settings:
alg -- Algorithm (currently support crc16 and crc32, which crc16 is default)
rep -- Represent (the generated link could be presented in hex or dec value)
配置完成后如下
permalink: posts/:abbrlink.html # 此处可以自己设置,也可以直接使用 :/abbrlink
abbrlink:
alg: crc32 #算法: crc16(default) and crc32
rep: hex #进制: dec(default) and hex
官方Sample The generated link will look like the following:
crc16 & hex
https://post.zz173.com/posts/66c8.html
crc16 & dec
https://post.zz173.com/posts/65535.html
crc32 & hex
https://post.zz173.com/posts/8ddf18fb.html
crc32 & dec
https://post.zz173.com/posts/1690090958.html
继续加油!
生成完后,原文章md文件的Front-matter 内会增加abbrlink 字段,值为生成的ID 。这个字段确保了在我们修改了Front-matter 内的博客标题title或创建日期date字段之后而不会改变链接地址,换句话说,就是本篇文章有了自己的专属链接。有了专属链接,找百度收录也就简单的多了,冲鸭!
北徯的博客www.xiangjunhong.com