LAB / 实验进行中

Obsidian 内容资产化工作流

整理一套围绕文章元数据、发布状态、模板与查询的 Obsidian 内容管理方案。重点是让文章可维护、可追溯;具体插件与配置保留为待验证的原始实践材料。

文章目录

这套工作流的核心目标是:

把“公众号文章”从普通 Markdown 文件,升级为“可管理、可查询、可自动化”的长期内容资产。

它解决的问题包括:

  • 文件命名混乱

  • 已发布状态难维护

  • 手动创建 metadata 麻烦

  • 文件夹管理混乱

  • 文章数量增长后难检索

  • AI 后续难以 ingest 与自动化

  • 内容 schema 不统一

  • Dataview 查询出现脏数据

  • AI 无法稳定理解知识结构


一、核心思想:文章不是“文件”,而是“内容对象”

传统 Markdown 工作流:

新建文件
→ 写文章
→ 手动改名字
→ 手动放文件夹
→ 手动记忆是否发布

这会随着文章数量增长迅速失控。

新的工作流则是:

创建结构化文章对象
→ metadata 驱动
→ Base 管理
→ 自动生成
→ AI 可读取

重点不再是“存文件”,而是“维护内容对象”。


二、为什么不用“文件夹”管理状态

以前常见方式:

草稿/
已发布/
归档/

问题包括:

  • 需要频繁移动文件

  • 链接容易断

  • Git history 混乱

  • AI ingest 路径不稳定

  • 状态维度有限

现代内容系统的核心思想是:

状态属于 metadata,而不是目录。

例如:

status: published

而不是:

Published/

三、Properties(Frontmatter)体系

每篇文章顶部维护结构化 metadata:

---
fileClass: article
status: draft
publish_date:
publish_title:
tags:
series:
created: 2026-05-22
---

这些字段本质上就是:

内容对象的 schema。


四、推荐字段设计

1. fileClass

文件类型:

fileClass: article

用于定义:

“这是哪类内容”

例如:

article
clipping
prompt
workflow
journal

不同 fileClass:

拥有不同 schema。


2. status

文章状态:

status: draft

推荐固定枚举:

draft
reviewed
published
archived
idea

不要自由输入。

否则容易出现:

Published
publish
published
done

这种脏数据。


3. publish_date

真正发布日期:

publish_date: 2026-05-22

建议统一 ISO 格式:

YYYY-MM-DD

不要:

2026/05/22

避免 Dataview 与 AI 兼容问题。


4. publish_title

公众号真正展示标题:

publish_title: 为什么我越来越反对 AI 直接连接生产数据库?

文件名 ≠ 传播标题

文件名强调:

稳定性

传播标题强调:

点击率 / 情绪 / SEO

必须解耦。


5. tags

主题标签:

tags:
  - ai
  - agent
  - philosophy

建议长期维护统一词汇体系。


6. series

文章系列:

series:
  - AI文明三部曲

例如:

  • AI文明三部曲

  • Agent治理

  • 职业重构


五、Dataview 与 Base 的区别

Dataview

本质是:

查询引擎

类似:

  • SQL

  • Elasticsearch

  • BI Query

特点:

  • 查询能力极强

  • 可聚合

  • 可统计

  • 可动态计算

  • 偏工程化

适合:

Dashboard
统计
AI Query
知识聚合

不适合作为主要 UI。


官方 Base

本质是:

内容管理 UI

类似:

  • Notion Database

  • Airtable

特点:

  • 好看

  • 直观

  • 易维护

  • 学习成本低

适合:

内容运营
状态维护
筛选
排序
分组

当前最佳实践

Base 负责:

日常管理

Dataview 负责:

Dashboard
统计
聚合
自动查询

六、为什么最终选择 Base 作为主工作流

因为当前核心需求是:

维护文章发布状态

而不是:

复杂 Query

Base 更适合:

  • 长期维护

  • 日常使用

  • 低心智负担


七、Metadata Menu:给 Properties 增加强类型系统

仅靠 Obsidian 原生 Properties:

虽然已经可以维护 metadata。

但依然存在问题:

status:

可能会被写成:

published
Published
publish
done
已发布

这会导致:

  • Base 难筛选

  • Dataview 查询混乱

  • AI ingest 出现脏数据

  • 长期 schema 崩坏

因此:

需要 Metadata Menu。


Metadata Menu 的核心作用:

给 YAML 建立 schema。


status

定义为:

Select

固定值:

draft
reviewed
published
archived

于是:

status 不再允许随便乱写。

而是:

下拉菜单单选。


publish_date

定义为:

Date / DateTime

于是:

  • 自动日期选择器

  • 日期格式统一

  • Dataview 更稳定

  • AI 更容易 ingest


tags

定义为:

Multi

支持:

tags:
  - ai
  - agent

series

定义为:

Multi

支持:

series:
  - AI文明三部曲
  - Agent治理

publish_title

定义为:

Input

用于:

公众号真实传播标题。


Metadata Menu 本质上已经开始接近:

数据库 schema 系统。


八、Preset Fields 与 FileClass Fields 的区别

Metadata Menu 里:

有两个容易混淆的部分。


Preset Fields

位置:

Metadata Menu
→ Preset Fields

作用:

全局字段定义

类似:

父类默认 schema

例如:

全 Vault 都共享:

status
publish_date
tags

定义。


FileClass Fields

位置:

fileClass/article
→ FileClass fields

作用:

某类文件的专属 schema

类似:

子类 override

例如:

article:

status
publish_date
publish_title
series

clipping:

source_url
author
website
captured_at

不同内容对象:

拥有不同 schema。

这已经非常接近:

面向对象设计。


九、FileClass:内容对象系统

FileClass 本质上是:

“某类内容的结构定义”

例如:

fileClass: article

意味着:

这篇文件属于:

article

类型。


而:

article FileClass:

内部又定义:

status
publish_date
publish_title
series
tags

等等。

于是:

所有:

fileClass: article

文件:

都会自动继承:

  • Select 下拉

  • Date 选择器

  • Multi 标签

  • Input 输入

  • schema 约束


十、为什么 FileClass 比单纯 Template 更高级

很多人会误解:

Template 就够了

其实不是。


Template 负责:

“创建文件时长什么样”


FileClass 负责:

“这类文件允许什么结构”


两者关系:

Template
负责初始化

↓

FileClass
负责长期 schema 管理

例如:

Template:

fileClass: article
status: draft
series: 微信公众号

只是:

初始值。


真正让:

status

变成:

Select 下拉菜单

的是:

Metadata Menu + FileClass

不是 Template。


十一、目录结构建议

推荐:

写作/文思泉涌 - 自作诗文/
├── 随感分享/
├── 小说/
├── 诗词/
├── 散文/
├── Dashboard/
├── Templates/
└── _system/
    └── fileClasses/

十二、Template 系统

使用:

  • Templater

  • QuickAdd

实现:

一键创建结构化文章


十三、Templater 配置

安装插件:

Templater

设置:

Settings
→ Templater
→ Template folder location

指定:

Templates

十四、公众号模板文件

创建:

Templates/公众号文章模板.md

内容:

---
fileClass: article
status: draft
publish_date:
publish_title:
tags:
  - article
series:
  - 微信公众号
created: <% tp.date.now("YYYY-MM-DD") %>
---

# <% tp.file.title %>

十五、QuickAdd 工作流

QuickAdd 用于:

自动创建文章文件

包括:

  • 自动目录

  • 自动命名

  • 自动套模板

  • 自动 metadata


十六、QuickAdd Capture 配置

创建:

新建公众号文章

Choice 类型:

Capture

不是 Template。


十七、File path / format

填写:

写作/文思泉涌 - 自作诗文/随感分享/{{DATE:YYYYMMDD}}-{{NAME}}

作用:

自动生成:

20260522-AI-Agent-Governance.md

十八、为什么用 {{NAME}} 而不是 {{VALUE:title}}

因为:

{{VALUE:title}}

会额外触发输入框。

而:

{{NAME}}

直接复用 Capture 主输入。

最终只弹一次窗口。


十九、Create file with given template

必须开启:

Create file with given template

Template path:

Templates/公众号文章模板.md

二十、Enable Choice(关键坑点)

QuickAdd 配置完成后:

必须点击:

⚡ 小闪电

否则:

Command Palette 里搜不到

因为:

Choice 没被注册成命令。


二十一、最终工作流

现在:

按:

Cmd + P

搜索:

QuickAdd: 新建公众号文章

输入:

AI-Agent-Governance

系统自动:


1. 创建文件

20260522-AI-Agent-Governance.md

2. 放进目录

随感分享/

3. 自动 metadata

fileClass: article
status: draft

4. 自动继承 schema

包括:

  • Select

  • Multi

  • Date

  • Input


5. Base 自动显示

包括:

  • draft

  • published

  • tags

  • series


二十二、后续升级方向

未来可继续扩展:


AI 自动 tags

Hermes 自动:

读取文章
→ 自动打标签

自动标题建议

AI 生成:

publish_title:

自动发布状态流转

发布后:

status: published
publish_date: today

Dataview Dashboard

例如:

  • 最近30天输出

  • AI类文章

  • 系列统计

  • 输出频率


AI 内容运营

未来甚至可以:

AI 自动分析:
哪些标题点击率更高
哪些系列更受欢迎
哪些主题输出频率下降

二十三、最终形态

这套系统最终不是:

“Markdown 文件夹”

而是:

AI 友好的结构化内容资产系统

特点:

  • Markdown 底层

  • Git 友好

  • AI 可 ingest

  • Base 可运营

  • Dataview 可查询

  • Metadata Menu 可 schema 化

  • FileClass 可对象化

  • Hermes 可自动化

  • 长期可扩展


最终:

你维护的将不再只是:

文章

而是:

“可被 AI 理解、查询、操作、运营”的长期知识资产。