简介

Hexo写日志,通常我们都需要维护一个front-matter信息,包括title、date。博客多了,为了方便日志分类,一般还需要设置categories。
比如下面的例子:

1
2
3
4
5
6
7
8
---
title: Hexo简介
date: 2008-08-08
categories:
- web开发
- 前端
- 博客框架
---

久而久之,就会发现很多问题:

  • 工作繁琐:大量的category是重复性工作
  • 容易出错:大小写和中英文目录有可能混杂。比如有个web目录,偶尔我们写成了Web,造成了目录树中冗余的节点。
  • 可维护性差:如果要更改目录树中的节点,就要手动更改每个日志的categories变量。

本文介绍一种自动生成categories的插件

自动生成 categories

最常用的文件管理策略,就是利用文件系统目录结构(树形结构 directory-tree)。
同样,为了便于管理大量的日志文件,采用目录结构是一种简便可行的方案。hexo-auto-category根据日志文件(Markdown)所在文件目录自动分类,即自动生成markdown的front-matter中的categories变量。

示例

对于博客 source/_post/web/framework/hexo.md,该插件会自动生成以下categories

1
2
3
categories:
- web
- framework
1
npm install hexo-auto-category --save

配置
在站点根目录下的_config.yml添加:

1
2
3
4
5
6
# Generate categories from directory-tree
# Dependencies: https://github.com/xu-song/hexo-auto-category
# depth: the depth of directory-tree you want to generate, should > 0
auto_category:
enable: true
depth:

编译 & 部署

1
2
3
hexo clean
hexo g
hexo d

高级配置
如果只想生成第一级目录分类,可以设置depth属性,比如:

1
2
3
auto_category:
enable: true
depth: 1

参考

自动分类