优化Hexo的文章链接为数字编号

主要参考:
作者:Mculover666
博客原文:https://cloud.tencent.com/developer/article/1662763

本文主要记录如何在 Hexo 博客框架中优化文章永久链接为数字编号。使用数字 ID 可以让 URL 更简洁易读,尤其适合有大量文章的博客。本教程基于 hexo-abbrlink 插件 的使用,详细步骤如下。

背景与概述

Hexo 是一个基于 Node.js 的快速、简单的博客框架,默认的永久链接通常基于日期和文章标题,如 /2023/01/01/hello-world/。然而,有些用户可能希望使用更简洁的数字 ID 格式,如 /posts/12345678/。研究表明,通过 hexo-abbrlink 插件,可以实现这种优化。该插件会为每篇文章生成一个基于哈希算法的唯一 ID,并允许你选择算法(如 CRC32)和表示方式(如十进制或十六进制)。

需要注意的是,生成的数字 ID 并非严格的顺序编号(如 1, 2, 3…),而是基于文章内容的哈希值。这可能出乎一些用户的意料,他们可能期望的是基于文章创建顺序的自动递增 ID。但在 Hexo 中,这种方式需要额外的自定义脚本,而 hexo-abbrlink 提供了一种更简单、标准化的解决方案。

首先,确保你的环境中已安装 Node.js 和 Hexo。打开终端,导航到你的 Hexo 博客根目录(通常包含 package.json 文件的目录)。然后,运行以下命令安装插件:

1
npm install hexo-abbrlink --save

这条命令会通过 npm 安装 hexo-abbrlink 插件,并将其作为依赖项保存到 package.json 文件中。安装完成后,你可以在项目中看到相关的插件文件。

为了帮助你理解,建议在终端中截图显示安装命令的执行过程。例如,显示 npm install hexo-abbrlink --save 命令的输出,包括安装进度和成功提示。

步骤 描述 命令/配置
1 安装 hexo-abbrlink 插件在博客根目录下。 npm install hexo-abbrlink --save
2 编辑站点配置文件 _config.yml 在博客根目录下。 permalink 后的值改为 posts/:abbrlink/ 并在下方设置 abbrlink 选项:alg: crc32rep: decrep: hex
3 重新生成并部署博客。 运行 hexo clean && hexo g 然后 hexo d 部署。

配置 _config.yml 文件

安装完成后,需要配置 Hexo 使用 hexo-abbrlink 插件生成永久链接。打开博客根目录下的 _config.yml 文件,使用文本编辑器(如 VS Code 或 Notepad++)进行编辑。

  1. 设置 permalink
    找到 permalink 设置项,将其值改为 posts/:abbrlink/。这表示永久链接的格式为 /posts/生成的ID/。例如:

    1
    permalink: posts/:abbrlink/

    如果你希望使用其他前缀(如 article/),可以相应调整,例如 permalink: article/:abbrlink/

  2. 配置 abbrlink 选项
    _config.yml 文件中,添加或编辑 abbrlink 部分,设置生成 ID 的算法和表示方式。以下是一个示例:

    1
    2
    3
    abbrlink:
    alg: crc32 # 算法,可以选择 md5, crc16, crc32 等
    rep: dec # 表示方式,dec 为十进制,hex 为十六进制
    • alg: crc32 使用 CRC32 算法生成哈希值,适合大多数场景。
    • rep: dec 会生成十进制的数字 ID,如 1690090958;rep: hex 会生成十六进制的 ID,如 8ddf18fb。

    根据你的需求选择合适的组合。例如,选择 crc32 & dec 可以生成类似 1690090958 的长数字 ID,而 crc16 & hex 可能生成较短的十六进制 ID,如 66c8。

    建议截图显示 _config.yml 文件中相关部分的编辑界面,突出 permalinkabbrlink 的设置,确保读者能清楚看到配置过程。

重新生成和部署博客

配置完成后,需要重新生成博客静态文件并部署,以应用新的永久链接设置。运行以下命令:

1
2
3
hexo clean
hexo g
hexo d
  • hexo clean:清理缓存和临时文件,确保没有旧的生成文件干扰。
  • hexo g:生成静态文件,基于新的配置更新所有文章的链接。
  • hexo d:将生成的静态文件部署到你的托管平台(如 GitHub Pages 或其他服务器)。

执行这些命令时,终端会显示进度和成功提示。建议截图显示命令的执行过程,例如显示 hexo clean 的清理日志、hexo g 的生成进度,以及 hexo d 的部署成功信息。

验证与测试

完成上述步骤后,访问你的博客,检查文章的 URL 是否已更新为数字 ID 格式。例如,以前可能是 /2023/01/01/hello-world/,现在应为类似 /posts/1690090958/ 的格式(取决于你的 abbrlink 配置)。

此外,可以检查博客的 HTML 源代码,确保文章链接的 href 属性已更新为新的永久链接格式。如果有内部链接(如归档页或分类页),也需要确保它们正确指向新的 URL。

以下是一些可能的生成链接示例(基于不同配置):

额外提示

  • 自定义前缀:如果你希望永久链接的前缀不是 posts/,可以调整 permalink 设置。例如,permalink: article/:abbrlink/ 会生成类似 /article/12345678/ 的链接。
  • 更新硬编码链接:如果你的主题或文章中包含硬编码的链接(如手动写的 HTML 或 Markdown 链接),需要更新为新的永久链接格式,以避免链接失效。
  • 问题排查:如果插件未按预期工作,建议参考 hexo-abbrlink 插件文档 或在 Hexo 社区寻求帮助。

结论

通过以上步骤,你已成功优化 Hexo 博客的文章永久链接为数字 ID 格式。这不仅使 URL 更简洁,还可能有助于 SEO 和用户体验。记住,生成的 ID 是基于哈希算法的唯一值,而非顺序编号,这可能与一些用户的期望不同,但它是 Hexo 中实现此类功能的标准和便捷方式。

关键引用