Hexo博客指南:永久链接之abbrlink


前言

哈喽,各位小伙伴们,欢迎来到我的Hexo博客指南系列!今天我们要聊的是一个对于博客来说至关重要的话题——永久链接

不知道你有没有遇到过这样的烦恼:在Hexo里写了一篇中文标题的文章,结果生成的链接又长又带编码,分享出去一点都不酷。别担心,今天就给大家介绍一个神器——hexo-abbrlink插件,让你的博客链接瞬间变得高大上!

Hexo 默认的永久链接是按照年、月、日和标题生成的(:year/:month/:day/:title/)。 这种方式对于英文标题还算友好,但一旦标题是中文,URL就会被编码成一长串令人费解的字符,非常不利于阅读和分享。

这时候,hexo-abbrlink就闪亮登场了!它是一个为Hexo博客设计的链接永久化解决方案,可以将你的文章链接转换成简短、唯一且永久的字符串。

hexo-abbrlink支持多种算法和进制,让你可以根据自己的喜好定制链接的样式。

算法 进制 生成链接示例
crc16 hex https://example.com/posts/3ab2.html
crc16 dec https://example.com/posts/12345.html
crc32 hex https://example.com/posts/9a8b6c4d.html
crc32 dec https://example.com/posts/1690090958.html

心动不如行动,让我们马上开始吧!

安装

安装hexo-abbrlink插件非常简单,你可以选择以下任意一种方式:

方法一:通过npm命令行安装

在你的Hexo博客根目录下,打开命令行工具,输入以下命令:

npm install hexo-abbrlink --save

方法二:修改package.json文件

打开你博客根目录下的package.json文件,在dependencies字段中添加以下内容:

"hexo-abbrlink": "^2.0.5"

然后重新执行一次npm install即可。

配置

安装完成后,我们需要修改一下站点的配置文件 _config.yml,它同样位于你的博客根目录下。

打开 _config.yml 文件,找到permalink字段,并进行如下修改:

# 文章的永久链接
permalink: :abbrlink/
# 或者你也可以自定义格式,比如:
# permalink: posts/:abbrlink.html

# abbrlink插件的配置
abbrlink:
  alg: crc32  # 算法,支持 crc16 (默认) 和 crc32
  rep: hex    # 进制,支持 dec (默认) 和 hex

配置解析:

  • permalink: 这个字段定义了你文章链接的生成规则。在这里,我们将其设置为:abbrlink/,表示使用hexo-abbrlink插件生成的唯一ID作为链接。你也可以根据自己的喜好添加前缀,比如posts/:abbrlink.html,这样生成的链接就会是 https://example.com/posts/abaf7e89.html 的形式。
  • abbrlink: 这是hexo-abbrlink插件的专属配置项。
    • alg: 用于指定生成链接的算法,crc32算法生成的链接会比crc16更长一些,但重复的可能性也更低。
    • rep: 用于指定链接的进制,hex表示十六进制,dec表示十进制。

配置完成后,当你执行 hexo g 命令生成博客时,hexo-abbrlink会自动在每篇文章的front-matter中添加一个abbrlink字段,并为其生成一个唯一的值。

可能会遇到的问题

问题: 配置完成后,发现以前的文章链接都变成了undefined,而新写的文章没有问题。

原因: 这是因为Hexo会缓存之前生成过的文章内容。

解决方案: 解决方法非常简单,只需要在重新生成博客之前,先清除一下缓存即可。在命令行中依次执行以下命令:

hexo clean
hexo g

hexo clean会清除掉之前生成的缓存文件,然后hexo g会重新生成所有文章,并为它们都加上唯一的abbrlink

总结

通过使用hexo-abbrlink插件,我们成功地解决了Hexo博客中文链接过长和编码的问题,让我们的博客链接变得更加简洁、美观和永久。希望这篇教程对你有所帮助,快去给你的博客也换上酷炫的永久链接吧!


  目录