技术类文章HexoHexo博客文章链接优化
沧浪同学1 Hexo博客文章链接优化
1.1 前言
- hexo版: 7.3.0
- hexo默认文章链接的路径配置在:
_config.yml中,其为:
1
| permalink: :year/:month/:day/:title/
|
- 这样配置的缺点是,过于冗长,一旦遇到中文标题,链接分享出去转码后就会相当炸裂

- 这简直太不优雅了,而且一旦修改文章发布日期或者标题,链接立马失效,造成大量死链,这就很鸡肋了,于是,我们引入
hexo-abbrlink插件,可以实现自定义内容+随机数字的效果。

1.2 博客网址链接 URL 唯一且永久化
1.2.1 安装hexo-abbrlink
1
| npm install hexo-abbrlink --save
|
1.2.2 配置hexo-abbrlink的相关参数
- 然后在 Hexo 的根目录的配置文件
_config.yml 中,找到permalink: 参数进行修改,改为:
1
| permalink: 自定义内容/:abbrlink.html # 实测部署到云端后不显示.html后缀,但在本地运行时是显示的,暂未排查到原因。大概率是服务器 URL 重写规则导致的
|
1
| permalink: 自定义内容/:abbrlink:/
|
- 接着,我们在 Hexo 的根目录的配置文件
_config.yml 的末尾配置一些必要参数,我的配置如下,附注释
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| abbrlink: alg: crc32 rep: dec drafts: false auto_category: enable: true depth: over_write: false auto_title: false auto_date: false force: false
|
1.2.3 在模板文件中添加abbrlink参数
- 当然,每次手动添加都很不方便,推荐在模板文件中添加,一劳永逸。
- 在本地hexo的根目录中,为
scaffolds目录下的post.md文件添加下面的参数:
1
| abbrlink: # 根据算法随机生成数字,优化访问链接
|
1.2.4 官方配置信息
最后附上官方对permalink允许的配置
- 您可以在
_config.yml配置中调整网站的永久链接或者在每篇文章的 Front-matter 中指定。
1.2.4.1 变量
- 除了下列变量外,您还可使用除了
:path 和 :permalink 之外 Front-matter 中的所有属性。 变量 描述
| 变量 |
描述 |
:year |
文章的发表年份(4 位数) |
:month |
文章的发表月份(2 位数) |
:i_month |
文章的发表月份(不含前导零) |
:day |
文章的发表日期 (2 位数) |
:i_day |
文章的发表日期(不含前导零) |
:hour |
文章发表时的小时 (2 位数) |
:minute |
文章发表时的分钟 (2 位数) |
:second |
文章发表时的秒钟 (2 位数) |
:title |
文件名称 (相对于 “source/_posts/“ 文件夹) |
:name |
文件名称 |
:post_title |
文章标题 |
:id |
文章 ID (清除缓存时不具有持久性) |
:category |
分类。 如果文章没有分类,则是 default_category 配置信息。 |
:hash |
文件名(与 :title 相同)和日期的 SHA1 哈希值(12位16进制数) |
您可在 permalink_defaults 参数下调整永久链接中各变量的默认值:
1 2
| permalink_defaults: lang: en
|
1.2.4.2 示例
1 2 3 4 5 6
| source/_posts/hello-world.md title: Hello World date: 2013-07-14 17:01:34 categories: - foo - bar
|
| 设置 |
结果 |
:year/:month/:day/:title/ |
2013/07/14/hello-world/ |
:year-:month-:day-:title.html |
2013-07-14-hello-world.html |
:category/:title/ |
foo/bar/hello-world/ |
:title-:hash/ |
hello-world-a2c8ac003b43/ |
1.2.4.3 多语种支持
- 若要建立一个多语种的网站,您可修改
new_post_name 和 permalink 参数,如下:
1 2
| new_post_name: :lang/:title.md permalink: :lang/:title/
|
1 2
| $ hexo new "Hello World" --lang tw # => source/_posts/tw/Hello-World.md
|
1
| http://localhost:4000/tw/hello-world/
|
1.3 参考
[up主专用,视频内嵌代码贴在这]


沧浪同学
沧浪の小窝
此文章版权归沧浪同学所有,如有转载,请注明来自原作者