Obsidian 插件:Category Autofill——自动维护文章分类

Obsidian 插件:Category Autofill——自动维护文章分类

2026年8月15日·#技术分享Obsidian/插件/效率工具/博客工作流·921 字 5 分钟
浏览量加载中...
AI 摘要

一个自动维护文章分类的 Obsidian 插件:category 自动等于所在文件夹名,新建文章自动带齐属性,只处理你指定的目录,安全可控。

现在我在 Obsidian 里新建笔记,title、published、tags、category、description 会自动带好,写完直接同步到博客,从来不用回头补属性。

前言#

我的博客文章一直在 Obsidian 里写,写完同步到仓库。文章多了之后有个很头疼的问题:分类(category)全靠手填

忘了填?文章进了博客就缺分类;填错了?和目录结构对不上;改目录结构?所有文章的分类都要跟着改一遍……

于是我给 Obsidian 写了一个小插件——Category Autofill,让分类这件事彻底自动化。

它做了什么#

一句话:把文章的 category 自动填充为它所在文件夹的名字

  • 技术分享/xxx.mdcategory: 技术分享
  • 把文章拖到别的文件夹 → category 自动跟着变
  • 重命名文件夹 → 里面所有文章的 category 一次性更新

除了自动填充,新建文章时它还会自动带上博客需要的属性:

---
title: 文件名
published: 2026-08-15
tags: []
category: 所在文件夹名
description: ""
---

这些属性全部可以在设置里改:可以加你自己的字段(比如 author),也可以改默认值,比如把 description 设成固定的开头。

为什么要用#

1. 分类永远和目录一致#

目录结构就是分类结构:改目录 = 改分类,不会再出现「文章在 A 文件夹但分类写着 B」的情况。

2. 新建文章零准备#

在 Obsidian 里新建一篇笔记,几秒内就自动带齐了博客需要的所有属性。写完直接同步,不用回头补 frontmatter。

3. 批量修复历史文件#

命令面板执行「自动填充 category(全库)」,所有历史文章一次修完,结束后提示更新了多少、跳过了多少、失败了多少。命令幂等,重复执行无害。

4. 安全设计#

  • 只处理你指定的「文章根目录」(默认 content/posts),目录外的文件一律不碰
  • 新建文章时只补缺失的属性,已有内容不会被覆盖
  • 隐藏目录(.obsidian 等)、非 md 文件自动跳过
  • category 已经等于文件夹名时不写入,文件零改动

安装#

目前是个人维护的小工具,还没上 Obsidian 社区插件市场,手动装也就三步:

  1. GitHub 仓库 获取 main.jsmanifest.json
  2. 拷贝到库目录 .obsidian/plugins/category-autofill/
  3. 重启 Obsidian(或「重新加载应用」),在「设置 → 第三方插件」里启用

设置页有四个选项:「文章根目录」「覆盖已有的 category 值」「新建文章时自动添加属性」「新建文章属性模板」。

开发背后的故事#

这个插件一开始并没有「文章根目录」限制——第一版是全库生效的。结果在真实库里跑了一次批量修复,把相册、书评、changelog 全加上了分类,误改了 275 个文件,最后靠 git 回退才救回来。

这个教训直接变成了插件的核心设计:默认只处理 content/posts,其他目录一概不碰。自动化工具的第一原则是别帮倒忙——现在它很「胆小」,但这种胆小正是写博客的人需要的。

代码层面也值得一提:frontmatter 读写全部走 Obsidian 官方 API(processFrontMatter),没有手写任何 YAML 解析;纯逻辑部分带 22 个单元测试;零运行时依赖。

最后#

仓库地址:github.com/tianshihao2003/obsidian-category-autofill

如果你也有「文章分类靠手填」的困扰,或者对自动化的博客工作流感兴趣,欢迎试试,也欢迎提 issue 反馈想法。

毕竟,写文章的时间应该花在内容上,而不是花在填表格上

评论区

[ 标签 ]
# AI5# AI 编程2# AI工具1# Ajax2# Apifox1# AstrBot2# Astro2# CC Switch1# CDN2# Claude Code1# claudecode2# ClaudeCode1# CloudFlare2# Cloudflare1# CloudFlare-ImgBed1# coc3# CSS6# DeepSeek2# deepseek2# DELETE1# Docker1# EdgeOne3# Gist1# git1# GitHub1# hexo-circle-of-friends1# HTML6# HTTP2# Java23# java13# JavaScript5# JDBC3# JSON1# JUnit1# Logback1# Maven6# Mybatis1# MyBatis4# MySQL6# MySql1# NapCat1# Obsidian3# OpenCode3# ORM1# PathVariable1# PicGo1# py2# RequestBody1# RequestMapping1# RESTful风格1# skills1# Slf4j1# SpringBoot11# SQL2# Svelte2# TailwindCSS1# Telegram2# Tlias2# Vercel1# Vue7# Waline3# WebDAV1# Web基础6# WinSCP1# YAML1# 三层架构1# 中二宣言1# 书籍1# 使用文档9# 写作1# 刷步数1# 前端32# 动态1# 动漫1# 单词2# 博客6# 博客工作流1# 博客开发2# 参数接收1# 友链1# 反思2# 图床4# 地图1# 备份1# 奇思妙想1# 存储1# 学习方法1# 宝塔面板3# 宝宝9# 导航栏1# 工具2# 开发1# 开发规范1# 开心1# 影视1# 微信1# 性能优化2# 总结1# 想法8# 感悟9# 指南1# 插件3# 故障排除1# 效率工具2# 教程7# 数据库10# 斩神1# 日常61# 日志框架1# 朋友圈1# 朱元璋1# 模板1# 测试1# 游戏1# 生活迁移1# 电影2# 碎碎念1# 视觉识别1# 网络教室1# 羊毛1# 脚本1# 脚本工具1# 自动化2# 蓝奏云1# 订阅推荐1# 记录1# 评论系统1# 词根1# 词缀1# 说说1# 足迹1# 跑步2# 路径参数1# 转载1# 运动1# 部落冲突1# 配置1# 随机图1# 音乐3# 音标1# 饮食1# 驼峰命名1# 高德地图1
[ 公告 ]

如果你喜欢,那么欢迎来到我的世界!

了解更多
[ 音乐 ]
封面

音乐

暂未播放

0:000:00
暂无歌词
找不到相关结果。
[ contents ]
[ 全部文章 ]
工具