---
title: 关于 abbrlink 的一些见解
date: 2026-05-17
modified: 2026-05-17
url: https://yuuu.org/post/about-abbrlink
categories: ["博客"]
tags: ["博客"]
description: "这段时间打算更换框架和主题，搬迁的时候注意到这个 abbrlink 的问题"
---
从我博客发布第一篇文章到现在，我一直用的都是 Hexo，也就是说，从 2023 年 06 月 16 日建立至今，我都一直没有怎么折腾过。

倒也不是说我对 NexT 十分满意，满意到用了三年也不会有任何想法。只是一直遵照着前辈的教诲：「不要轻易地在这种地方浪费时间」。

不过由于这段时间经历各种大大小小的事情，脑子里面总是能发散很多东西，包括不限于要不要买某物，要不要去哪玩，以至于到现在变成了要不要换个主题玩玩。

好吧，刚好这几天拿到了一些免费的 token，于是想着直接将这些 token 全部用掉免得觉得浪费。于是让 AI 全权代理整个仓库，让它自己在那里做各种迁移。

闲话少说，接下来说说遇到的问题。

---

## 一、abbrlink的奇怪感觉

在和 AI 大人协同工作的期间，它写了一个 Hexo 文章的兼容层，兼容以前的 Hexo，我当时就感觉奇怪，我明明用了 abbrlink 固定了链接，怎么还要兼容层。

问题给到 abbrlink。在我刚开始使用 Hexo 的时候，我就听说过这个插件，也还差不多记得当时说它是为了什么——好像说是为了固定永久链接，防止死链。

我当时没怎么听懂这些东西，于是也照做了。总之，大家都提到的东西，我都安装了，大家都在用，我也要装一个吧。

不过现在回看，我感觉 abbrlink 有点奇怪。它会给每篇文章生成一个类似 `30026` 这样的短 ID 作为 URL，但这有必要吗？

先来说说我的命名习惯。我的文章源文件是按顺序排下去的：`1.md`、`2.md` 这样，并且博客的文章标题前面也有一个序号。这样一条一条排列下去，哪篇文章在网站上看出问题了，回到电脑前也能很容易地找到对应文件去改。

这么看来，哪怕什么都不做，按照 Hexo 默认设置 `permalink: :year/:month/:day/:title/`，我的文章排列应该是 `2026/01/01/1/` 这样子。如果只保留 `permalink: :title/`，情况更容易控制，`1.md` 就能直接生成 `https://yuuu.org/1/`，只能说，十分优雅（雾）。而现在的情况是我写了 `permalink: post/:abbrlink.html`，所以应该是按照 abbrlink 的参数写序号。

当时我的计算机知识和英语水平都很薄弱，做不到用英语命名文件，也不知道计算机已经（早就）能高效地搜索整个文件夹里的文本了。于是我才想了好一阵子，想出了这个方便的方法来让我人脑可以快速检索文件。至于 abbrlink，暂时看不出它在干什么。

现在看来，我当时已经构造了这么「优秀」的设计，其实 abbrlink 完全是不需要的。它解决的问题我根本就没有——我有自己的编号系统，文章顺序一目了然，abbrlink 生成的那个乱码 ID 对我来说反而是多余的。但是直到今天我才发现这个问题。

现在，我的英语能力也能凭借着一边查词一边问 AI，慢慢地去看英语博客了。看多了之后，我发现他们大多数人的链接都是标题，或者比标题还简洁的关键词。这不失为一个还不错的选择。

---

## 二、等等，其他框架都没有 abbrlink？

于是我决定认真搞清楚这件事。

我在国内版 Bing 搜索了 abbrlink，结果发现只有 hexo-abbrlink，没有其他框架会有类似的东西。这和我的想法吻合——我印象中，WordPress 非常早就出现了自定义链接的方法，发布文章前必须写一个 slug，这早就是自带的设置了。

这就奇怪了。这么说来，Hexo 应该是有一段时间没有指定链接的方法，所以有人开发了这个插件来曲线救国？

于是我去看了一下当前的 Hexo 说明文档 [Front-matter](https://hexo.io/zh-cn/docs/front-matter)，里面居然有写：

| 设置        | 描述                                                   | 默认值 |
| ----------- | ------------------------------------------------------ | ------ |
| `permalink` | 覆盖文章的永久链接，永久链接应该以 `/` 或 `.html` 结尾 | `null` |

奇怪了，我之前是不是没注意到？而且在[永久链接（Permalinks）](https://hexo.io/zh-cn/docs/permalinks)这一页也有具体的说明。

我以为往回翻到 2018 年的文档，肯定能发现那时候还没有这个字段——结果翻开 [Nov 27, 2018 的那次提交](https://github.com/hexojs/site/blob/9c304b6b68e027b10cb2c24a5fc7e670aaf49e28/source/zh-cn/docs/front-matter.md)，它就清清楚楚地写在那里：

| 设置        | 描述         | 默认值 |
| ----------- | ------------ | ------ |
| `permalink` | 覆盖文章网址 |        |

那一刻感觉有点荒谬。这个功能明明一直都在，大家却跑去装了一个插件来将活自己接过去干。

既然早就有了这个东西，我实在想不出来为什么要有 abbrlink。都来写博客这种麻烦事情了，自己手写一个 permalink 恐怕也不是什么无法忍受的事情，哪怕用机器翻译出来的英语，大概也要比那些无序的数字字母组合更容易理解吧。

于是我又去搜索了 hexo-abbrlink，看看 2015 年到 2018 年间大家都在说什么。

![1](https://cdn.yuuu.org/post-img/34/1.webp)

由于 hexo-abbrlink 是 2016 年 6 月 24 日才发布的，所以 2015 年什么都没有。然后我发现很多博客开始提到 abbrlink 是在 2018 年，2020 年往后教人做 Hexo 的文章大量提到了 abbrlink，重复性很高，大家来来去去也就是复述那些东西——我很难判断他们是不是反复洗稿洗出来的千篇一律的内容（这里说的不是书写个人博客建站踩坑的那种，而是在 CSDN 和知乎这种地方经常会出现的复读文章）。大概也是这个时候，Hexo 是最流行的框架吧。

文章太多，我也没打算一篇篇去读。不过我在 Hexo 的 [issue #1110](https://github.com/hexojs/hexo/issues/1110) 里找到了一些线索：恐怕在 Hexo 的某些版本中，permalink 的表现不太稳定，而且默认设置里处理中文字符就是简单转码。于是有人想着做了一个 abbrlink，又有人写了博文讲解遇到中文转码的链接可以用什么插件解决。这些最后都成为了后来洗稿文章的最初原料。

---

## 结论

abbrlink 的流行，不是因为它是最好的方案，而是因为最初有一批教程在传播，后来又被反复洗稿。当时的小白（包括我）照着装了，没有人告诉我们其实不需要，甚至 Hexo 文档里一直都有更直接的办法。

于是，当时同为小白的我，照着大家的教程将所有插件都装上，复制了很多人的配置文件，糅合出一份自己超级满意的配置，一直走到今天才发现问题。

既然问题发现了，那就在新博客再开始改吧。
