文章分类、置顶与短链配置
本站用四个机制管理文章:文件夹自动归类、sticky 置顶排序、abbrlink 永久短链、series 系列关联。配合起来,写笔记时只要把文件放进文件夹就自动归类,URL 永久固定不受文件夹影响,重要文章还能置顶,连续的文章还能组成系列按顺序阅读。
一、文件夹自动归类(auto_category)
装了 hexo-auto-category 插件,文件夹名就是分类名。文章放进 _posts 下的子文件夹,就自动归到对应分类,不用手写 categories。
用法
在 source/_posts/ 下建文件夹,文章放进去:
1 | source/_posts/ |
上面的 spring-note.md 会自动归到「Java」分类,无需在 front-matter 写 categories。
注意
- 手写的 categories 会被覆盖:插件用文件夹名覆盖 front-matter 里的 categories。所以归好类后不用再手写。
_posts根目录的文章:不放文件夹的文章归类为「uncategorized」。建议都放进文件夹。- 建文件夹即建分类:新建一个文件夹并放入文章,
hexo g后分类页/categories/就会出现这个分类。
配置(已设好,一般不用改)
_config.yml 里:
1 | auto_category: |
想用多级分类(如 Java/框架/Spring → 分类「Java > 框架 > Spring」),把 depth 改大、multiple: true。
二、置顶排序(sticky)
首页文章默认按日期倒序。想让某篇永远排最前,在 front-matter 加 sticky 字段:
1 |
|
规则
- 有 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 | permalink: posts/:abbrlink/ |
四、系列文章(series)
写连续的系列文章(比如本「博客搭建教程」就是 6 篇组成的系列),想让它们关联起来、按顺序阅读,用 series 字段。
归入系列
在 front-matter 加 series: 系列名,同名的就是一个系列:
1 |
|
加完后该文章自动获得:
- 文章底部:显示系列内的「上一篇 / 下一篇」导航(不是全站按时间的)
- 侧边栏:显示「系列文章」卡片,列出整个系列的所有文章
自定义顺序
默认按文章 date 排序。想自己指定顺序,加 series_order: 数字,数字越小越靠前:
1 |
|
series_order 是独立字段,不影响文章日期、归档页和首页排序,只控制系列内的顺序。一个系列里只要有一篇带了 series_order,整个系列就按数字排(没加的排最后);全都不加则按 date。
排序规则
| 情况 | 排序方式 |
|---|---|
系列里有任一篇带 series_order |
按 series_order 数字升序(没加的排最后) |
全都没加 series_order |
按 date 排序 |
配置在 _config.butterfly.yml:
1 | series: |
示例
本站的「博客搭建教程」系列就是 6 篇文章,每篇都设了 series: 博客搭建教程 + series_order: 1~6,按搭建→发布→配置→组织→书签→图床的顺序排列。打开任意一篇,底部都能跳到系列的上一篇或下一篇。
五、日常写笔记流程
结合以上机制,写一篇新笔记的完整流程:
- 建文章:
hexo new "标题"(会生成在_posts根目录) - 移到对应文件夹:把 md 文件移到
source/_posts/分类名/下(没有文件夹就新建) - (可选)置顶:在 front-matter 加
sticky: 100 - (可选)加入系列:如果是连续系列文章,加
series: 系列名+series_order: 序号 - 编辑:Typora 写正文
- 部署:
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: 数字(越小越靠前) |