批量操作front matter工具

当你想为某个文件夹下的所有.md文件添加、修改、删除某些front matter字段时,这个工具可以快速的为你批量操作。

首先,你需要在package.jsonscripts中写入脚本:

  1. // package.json
  2. {
  3. "scripts": {
  4. "editFm": "node utils/editFrontmatter.js",
  5. }
  6. }

utils/config.yml配置要批量操作的文件夹和要编辑的字段,示例:

  1. # utils/config.yml
  2. #批量添加和修改、删除front matter配置文件
  3. # 需要批量处理的路径,docs文件夹内的文件夹 (数组。映射路径:docs/arr[1]/arr[2] ... )
  4. path:
  5. - docs # 第一个成员必须是docs
  6. - JS教程》专辑
  7. - 第一章节
  8. # 要删除的字段 (数组)
  9. delete:
  10. - article
  11. # 要添加、修改front matter的数据 (front matter中没有的数据则添加,已有的数据则覆盖)
  12. data:
  13. author: 齐天大圣
  14. sidebar: false

比如你要操作的文件夹路径是docs/《JS教程》专辑/第一章节,你需要这样配置路径:

  1. path:
  2. - docs # 第一个成员必须是docs
  3. - JS教程》专辑
  4. - 第一章节

path数组的第一个成员必须是docs,如果你想操作docs底下除了首页之外所有的.md文件,只需保留第一个成员docs即可。

你想删除article字段:

  1. delete:
  2. - article

你想为这个文件夹下的所有.md文件添加作者author和隐藏侧边栏sidebar

  1. data:
  2. author: 齐天大圣
  3. sidebar: false

最后,执行npm run editFm命令,为了防止误操作,会有一个询问过程:

  1. npm run editFm
  2. ? 批量操作frontmatter有修改数据的风险,确定要继续吗? (Y/n)
  3. ...