Hexo-abbrlink生成唯一文章链接

  Hexo在生成文章链接时,默认是按照年、月、日、标题来生成的,可以在站点配置文件中指定new_post_name的值。

默认是:year/:month/:day/:title,如果文章标题是中文的话,URL链接是也会包含中文,生成的文章链接如下图所示:

复制后的链接是一大堆字符串编码:

http://localhost:4000/2019/08/13/tech/hexo/Hexo%20Next%E4%B8%BB%E9%A2%98%E6%B7%BB%E5%8A%A0%E5%93%88%E6%9E%97%E6%91%87%E7%89%B9%E6%95%88/

一种解决方案是:使用hexo-permalink-pinyin插件,将中文转英文,参考我的这篇文章:Hexo NexT中文链接转拼音(关于中文md文件名的问题)

这样方案也存在一定的缺陷,比如修改了文章标题,重新hexo三连后,URL就变了,以前的文章地址变成了404。而且这样生成的URL层级也很深,不利于SEO。

那能不能生成唯一不变的URl链接呢?答案是可以的,已经有人给实现了。这就是hexo-abbrlink插件,简单易用。

参考:

hexo-abbrlink

安装插件

1
npm install hexo-abbrlink --save

执行此命令可能会不成功,提示你缺少相应的依赖,比如babel-eslint、mini-css-extract-plugin、webpack-cli…
使用npm命令安装即可,比如npm install eslint@4.x babel-eslint@8 --save-dev

配置

修改根目录站点配置文件config.yml,改为:

1
2
3
4
permalink: :posts/abbrlink.html  # 此处可以自己设置,也可以直接使用 :/abbrlink
abbrlink:
alg: crc32 #算法: crc16(default) and crc32
rep: hex #进制: dec(default) and hex

生成的链接将会是这样的(官方样例):

1
2
3
4
5
6
7
8
9
10
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字段之后而不会改变链接地址。

hexo三连试一下效果吧~(^__^)Y

点击查看

本文标题:Hexo-abbrlink生成唯一文章链接

文章作者:北宸

发布时间:2019年08月22日 - 23:36:38

最后更新:2019年09月14日 - 16:21:36

原始链接:http://leafjame.github.io/posts/4084686398.html

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。

-------------------本文结束 感谢您的阅读-------------------
0%