使用abbrlink的几个理由:

  • 当你的链接太长或者是含有中文时,分享链接时会很丑,不易阅读
  • 改变了文章标题或名字可能导致搜索引擎收录失败,原有链接失效,404警告
  • 文章名冲突,或者是想为同一篇文章写不同版本

前言

利用abbrlink插件生成唯一且简洁的URL,Github项目地址 https://github.com/ohroy/hexo-abbrlink

abbrlink的原理:

文章标题+创建时间 利用CRC16/32算法 最终生成 唯一的文章链接

安装

打开Hexo根目录,运行 Git Bash

1
npm install hexo-abbrlink --save

如果你是使用yarn来管理Hexo的包

1
yarn add hexo-abbrlink

如果你是使用pnpm来管理Hexo的包

1
pnpm add hexo-abbrlink

安装之后,输出类似这样

1
2
3
4
5
6
added 5 packages, and audited 273 packages in 3s

19 packages are looking for funding
run `npm fund` for details

found 0 vulnerabilities

配置

打开Hexo根目录下的 _config.yml

寻找到配置文件中的 permalink

1
2
3
4
5
permalink: :year/:month/:day/:title/
permalink_defaults:
pretty_urls:
trailing_index: true
trailing_html: true

这里默子来解释一下默认链接设置的含义

1
2
3
4
5
permalink: :year/:month/:day/:title/
# :year 文章发表的年份
# :month 文章发表的月份
# :day 文章发表的月份
# :title 文章文件名

比如你在2022年5月20日时建立了一个名称为How_To_Code.md的文章

那么生成的链接将会是这样的

http://<你的网站网址>/2022/05/20/How_To_Code

附上链接属性参考表:

属性含义
:abbrlinkabbrlink 插件提供,生成唯一且简洁的link
:year文章的发表年份(4 位数)
:month文章的发表月份(2 位数)
:i_month文章的发表月份(无前置 0
:day文章的发表日期 (2 位数)
:i_day文章的发表日期(无前置 0
:hour文章发表时的小时 (2 位数)
:minute文章发表时的分钟 (2 位数)
:second文章发表时的秒钟 (2 位数)
:title文件名称(包含目录)
:name文件名称 (单文件名)
:post_title文章标题
:id文章 ID (hexo clean 后会改变)
:category文章分类
:hash基于 文件名称文章发布日期 的12位哈希值
更多样例可以到官方文档中查阅

修改Hexo根目录下的 _config.yml

1
2
3
4
5
6
# 如果不了解下面的配置,请勿漏掉最后的'/'号,否则F5刷新会导致浏览器发送错误的MIME类型,进行下载操作
permalink: :year/:month/:abbrlink/
permalink_defaults:
pretty_urls:
trailing_index: true
trailing_html: true

这里为默子的配置,你可以根据自己的喜好来修改

最后,在设置文件中添加如下语句

1
2
3
4
5
6
7
abbrlink:
alg: crc32
# alg可以选crc32或者是crc16 具体差别请参考原Github项目
# 这里推荐crc32
rep: hex
# rep可以选hex(16进制)或者是dec(十进制) 具体差别请参考原Github项目
# 这里推荐hex(16进制)

一个完整的配置文件如下

1
2
3
4
5
6
7
8
permalink: :year/:month/:abbrlink/
permalink_defaults:
pretty_urls:
trailing_index: true
trailing_html: true
abbrlink:
alg: crc32
rep: hex

文章配置

清除Hexo缓存,重新渲染网页并本地运行

1
hexo cl && hexo g && hexo s

这时你再打开一篇文章,就会发现所有文章中都加入了 :abbrlink 的关键字

1
2
3
4
5
6
7
---
title: HowToCode
tags:
- 实用分享
abbrlink: f23cd173 # ⬅就是这个
date: 2030-05-20 13:14:00
---

温馨提醒:请不要删除该关键字,删除后可能会改变你的链接

结尾

今天的教程就到这里结束了

还有什么问题可以访问我的个人网站 histone.top

或者在评论区留言,默子看到会回复的