作为一个懒人,能自动生成的就尽量自动生成,hexo-auto-category 成功帮我从每次手动写嵌套分类中解脱出来。因此我又再想其他字段是否也可以自动生成?比如标题从文件名生成、时间从当前时间生成、把所有分类名都追加到标签中去,甚至可以自定义每个分类的封面图,配合分类名称自动填充 cover 字段。心动不如行动,花了半天的时间写了这个插件 hexo-auto-front-matter,以下是 README 中文,点此查看 README

NPM version

为每篇 Hexo 文章自动生成 front-matter.

作为一个 Hexo 用户,你一定非常困扰于对每个帖子的 font-matter 进行手动设置。有了这个插件,你不需要一个接一个地设置 title, date, categories, tags, cover 这些字段。hexo-auto-front-matter 根据目录/文件夹名称、当前日期和自定义配置项自动生成静态文章的 front-matter。

特性

  • 完整集成 hexo-auto-category 的所有功能.
  • 当文件名为空时,自动根据文件名生成 title 字段。
  • date 字段为空时,从当前时间自动生成。
  • 当标签字段为空时,自动将所有类别附加到标签。
  • 通过选择最深的嵌套类别,从自定义列表中自动生成 cover 封面图片路径。
  • 灵活控制:每个子模块都有独立开关。
  • 支持 保持原有 front-matter 字段顺序按自定义列表重新排序 两种模式。

安装

1
npm install hexo-auto-front-matter --save

配置

你可以在 Hexo 中配置此插件 _config.yml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
# 自动生成front-matter字段的hexo插件
# https://github.com/RayKr/hexo-auto-front-matter
auto_front_matter:
  enable: true
  # 是否保留原来的front-matter顺序
  # 'order'是一个列表,默认为空。在这种情况下,更新的front-matter字段将顺序保持在原始文本中。
  # 当'order'不为空时,front-matter将按以下顺序排序,支持少于或多于原文front-matter的真实数量。
  order:
    # - title
    # - date
    # - categories
    # - tags
    # - cover
    # - description

  # 从文件名自动添加标题
  auto_title:
    enable: true
    # 两种模式:仅当标题为空时使用“模式”控制写入,或始终覆盖。
    # 1: 仅当标题为空自动添加(默认)
    # 2: 始终使用文件名覆盖标题
    mode: 1

  # 如果为空,则自动添加现在的日期
  auto_date:
    enable: true
  
  # 逻辑与 auto_category 相同
  # https://github.com/xu-song/hexo-auto-category
  auto_categories:
    enable: true
    multiple: false
    depth:

  # 当标签为空时自动将类别列表附加到标签
  auto_tags:
    enable: true

  # 从"per_category"列表中自动添加封面图片路径
  auto_cover:
    enable: true
    # 定义每个类别的封面图片路径
    # 当存在嵌套类别时,它会选择最深的类别匹配。
    per_category:
      # - Hexo: /img/xxxx.png

构建和预览

1
hexo clean && hexo g && hexo s

Demo

本站 天澄拾光 都是使用该插件 hexo-auto-front-matter 生成的 front-matter.

特别鸣谢