Hexo 在生成文章链接时,默认是按照年、月、日、标题来生成的,可以在站点配置文件中指定 new_post_name 的值。默认是 :year/:month/:day/:title,如果文章标题是中文的话,URL 链接是也会包含中文,生成的文章链接如下图所示:
复制后的链接是一大堆字符串编码:
一种解决方案是:使用 hexo-permalink-pinyin 插件,将中文转英文,参考我的这篇文章:Hexo NexT中文链接转拼音(关于中文md文件名的问题)
这样方案也存在一定的缺陷,比如修改了文章标题,重新 hexo 三连后,URL 就变了,以前的文章地址变成了 404
。而且这样生成的 URL 层级也很深,不利于 SEO。
那能不能生成唯一不变的 URl 链接呢?答案是可以的,已经有人给实现了。这就是 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 | permalink: :posts/abbrlink.html # 此处可以自己设置,也可以直接使用 :/abbrlink |
生成的链接将会是这样的(官方样例):
1 | crc16 & hex |
生成完后,原 md 文件的 Front-matter 内会增加 abbrlink
字段,值为生成的 ID 。这个字段确保了在我们修改了 Front-matter 内的标题 title 或创建日期 date 字段之后而不会改变链接地址。
hexo 三连试一下效果吧~(^__^)Y