本站用四个机制管理文章:文件夹自动归类、sticky 置顶排序、abbrlink 永久短链、series 系列关联。配合起来,写笔记时只要把文件放进文件夹就自动归类,URL 永久固定不受文件夹影响,重要文章还能置顶,连续的文章还能组成系列按顺序阅读。

一、文件夹自动归类(auto_category)

装了 hexo-auto-category 插件,文件夹名就是分类名。文章放进 _posts 下的子文件夹,就自动归到对应分类,不用手写 categories。

用法

在 source/_posts/ 下建文件夹,文章放进去:

1
2
3
4
5
6
source/_posts/
博客搭建/ ← 文件夹名「博客搭建」就是分类名
hexo-publish-guide.md
bookmark-guide.md
Java/ ← 再建一个文件夹就是新分类
spring-note.md

上面的 spring-note.md 会自动归到「Java」分类,无需在 front-matter 写 categories。

注意

  • 手写的 categories 会被覆盖:插件用文件夹名覆盖 front-matter 里的 categories。所以归好类后不用再手写。
  • _posts 根目录的文章:不放文件夹的文章归类为「uncategorized」。建议都放进文件夹。
  • 建文件夹即建分类:新建一个文件夹并放入文章,hexo g 后分类页 /categories/ 就会出现这个分类。

配置(已设好,一般不用改)

_config.yml 里:

1
2
3
4
auto_category:
enable: true
depth: 1 # 只取第一层文件夹名作为分类
multiple: false # 扁平分类,不做多级层级

想用多级分类(如 Java/框架/Spring → 分类「Java > 框架 > Spring」),把 depth 改大、multiple: true。

二、置顶排序(sticky)

首页文章默认按日期倒序。想让某篇永远排最前,在 front-matter 加 sticky 字段:

1
2
3
4
5
---
title: 重要文章
date: 2026-08-06 10:00:00
sticky: 100 # 数字越大越靠前
---

规则

  • 有 sticky 的文章:按 sticky 数值从大到小排在最前,标题旁会显示一个图钉图标
  • 没 sticky 的文章:按日期倒序排在置顶文章之后
  • sticky 值随便定,常见用 100、99、1 这种。多篇置顶时数字大的排前面

示例

本站的《Hexo 博客发布笔记完整教程》设了 sticky: 100,所以它一直挂在首页第一条。

三、永久短链(abbrlink)

装了 hexo-abbrlink 插件,文章 URL 自动生成短链,与文件夹、日期无关:

1
https://zenty-me.github.io/posts/b9c5d664/

为什么用短链

  • 永久固定:URL 基于文章标题生成,文章移动文件夹、改日期,URL 都不变
  • 简洁无中文:不会出现 %E5%8D%9A%E5%AE%A2 这种编码
  • 适合分享:短链好看,外链稳定

工作机制

  • 第一次 hexo g 时,插件给每篇文章算出一个 crc32 hash,转成十六进制(一般是 8 位,如 b9c5d664;高位是 0 时不补零,会出现 7 位甚至更短的值),写入文章 front-matter 的 abbrlink 字段
  • 之后这个值永久不变,URL 固定为 /posts/abbrlink值/
  • 注意:不要手动改或删 front-matter 里的 abbrlink 字段,否则 URL 会变

配置(已设好)

_config.yml 里:

1
2
3
4
permalink: posts/:abbrlink/
abbrlink:
alg: crc32 # 算法
rep: hex # 16进制,最多 8 位

四、系列文章(series)

写连续的系列文章(比如本「博客搭建教程」就是 6 篇组成的系列),想让它们关联起来、按顺序阅读,用 series 字段。

归入系列

在 front-matter 加 series: 系列名,同名的就是一个系列:

1
2
3
4
---
title: 从零开始搭建 Hexo 博客
series: 博客搭建教程
---

加完后该文章自动获得:

  • 文章底部:显示系列内的「上一篇 / 下一篇」导航(不是全站按时间的)
  • 侧边栏:显示「系列文章」卡片,列出整个系列的所有文章

自定义顺序

默认按文章 date 排序。想自己指定顺序,加 series_order: 数字,数字越小越靠前:

1
2
3
4
5
---
title: 从零开始搭建 Hexo 博客
series: 博客搭建教程
series_order: 1
---

series_order 是独立字段,不影响文章日期、归档页和首页排序,只控制系列内的顺序。一个系列里只要有一篇带了 series_order,整个系列就按数字排(没加的排最后);全都不加则按 date。

排序规则

情况 排序方式
系列里有任一篇带 series_order 按 series_order 数字升序(没加的排最后)
全都没加 series_order 按 date 排序

配置在 _config.butterfly.yml:

1
2
3
4
5
series:
enable: true
orderBy: 'date' # 也可 'title',但中文标题排序不可控,不推荐
order: 1 # 1 升序,-1 降序
number: true # 系列列表显示编号

示例

本站的「博客搭建教程」系列就是 6 篇文章,每篇都设了 series: 博客搭建教程 + series_order: 1~6,按搭建→发布→配置→组织→书签→图床的顺序排列。打开任意一篇,底部都能跳到系列的上一篇或下一篇。

五、日常写笔记流程

结合以上机制,写一篇新笔记的完整流程:

  1. 建文章:hexo new "标题"(会生成在 _posts 根目录)
  2. 移到对应文件夹:把 md 文件移到 source/_posts/分类名/ 下(没有文件夹就新建)
  3. (可选)置顶:在 front-matter 加 sticky: 100
  4. (可选)加入系列:如果是连续系列文章,加 series: 系列名 + series_order: 序号
  5. 编辑:Typora 写正文
  6. 部署:hexo clean && hexo g && hexo d

分类自动生成,短链自动生成,不用手填 categories,不用管 URL。

小结

需求 怎么做
给文章归类 把 md 文件放进 _posts/分类名/ 文件夹
新建分类 在 _posts/ 下新建文件夹并放入文章
置顶文章 front-matter 加 sticky: 100
文章 URL 自动生成 /posts/xxxxxxxx/,不用管
多级分类 auto_category.depth 改大、multiple: true
组成系列文章 front-matter 加 series: 系列名
指定系列内顺序 front-matter 加 series_order: 数字(越小越靠前)