SuperAPI AI 工具集

obsidian-yaml-frontmatter

办公与效率

查看项目

更新于 10-16 09:14

技能介绍

用途

该技能用于标准化 Obsidian 库中所有内容的 YAML frontmatter 属性,确保属性命名、格式与值类型保持一致。当需要在 Markdown 文件中添加或更新 frontmatter、统一属性命名与格式、格式化标签或日期等属性值、校验 frontmatter 结构时启用。

注意:该技能管理的是 frontmatter 属性(键、值、类型、格式)。若需处理文档结构(标题层级、章节顺序、frontmatter 位置),应使用 obsidian-markdown-structure 技能。

核心规则

1. 顶部单一 YAML 块

结构为:--- 开始,属性行,--- 结束,之后空一行,再写第一个章节标题。关键要求:文件顶部只有一个 YAML 块;结束的 --- 后需有空行;frontmatter 之后、第一个标题之前不得有内容。

2. 标准属性名

使用小写且一致的键。正确示例:title、created、tags、source、author。错误示例:Title(大写)、date(应使用 created 而非 date)、tag(应使用复数 tags)。不得有重复属性:使用 created 而非同时使用 date 和 created;使用 tags 而非同时使用 tag 和 tags。

3. 标签格式

关键:YAML 中使用纯文本,不带井号。正确:tags 下列出 journal、daily、reflection。错误:#journal、#daily。始终使用带短横线的列表格式,而非内联格式 [tag1, tag2]。

4. 日期格式

统一使用 YYYY-MM-DD。正确:created: 2025-10-31、updated: 2025-11-01。错误:10/31/2025、2025-10-31T10:30:00。

5. 链接列表

Wiki 链接需加引号。正确:sources 下列出 "[[Journal/2025-10-31]]"、"[[Articles/2025-10-31 Title]]";links 下列出 "[[Roundup/2025-10-31]]";attendees 下列出 "[[People/John]]" 与 Jane。错误:[[Journal/2025-10-31]](缺少引号)。

6. 含特殊字符的值加引号

对包含 :、#、" 或看似数字的字符串加引号。单引号包裹(对含双引号的值最简便):title: 'He said, "Hello."'、note: 'It\'s called "PKM".'。双引号包裹并转义:title: "He said, \"Hello.\""、source: "https://example.com"、version: "2.0"。字面双引号字符:quote_char: '"'。混合引号偏好:使用双引号,仅转义 "(单引号无需转义),如 note: "It's called \"PKM\"."。错误:title: AI Era: Thriving Framework(未加引号的冒号)、version: 2.0(被解析为数字而非字符串)。多行值无需转义,使用 description: | 后换行缩进书写。

标准属性集

核心属性(所有内容):title、created、tags。

含来源的内容:title、created、source、author、tags。

关系型内容:title、created、tags、sources、links。

事件/会议:title、created、event_date、attendees、sources、tags。

工作流程

第一步:确定内容类型(日记/笔记、剪藏/文章、分析/任务/事件、主题/项目页)。

第二步:选择属性集(核心属性;如适用添加 source/author;添加关系链接 sources、links、attendees;添加内容特定属性)。

第三步:格式化值(日期用 YYYY-MM-DD;标签用纯文本列表不带 #;链接用带引号的 Wiki 链接;含 : 或 # 的值加引号)。

第四步:结构检查(顶部单一 YAML 块;--- 后空行;属性名小写一致;无重复属性)。

质量检查清单

完成 frontmatter 前确认:顶部单一 YAML 块且后跟空行;所有属性键小写且一致;标签为纯文本(无井号);日期为 YYYY-MM-DD 格式;Wiki 链接加引号;特殊字符适当加引号;无重复属性(created 与 date、tags 与 tag)。

适用场景与限制

适用于 Obsidian 库中 Markdown 文件的 frontmatter 创建与更新,帮助保持属性命名、格式与值类型的一致性。该技能仅处理 frontmatter 属性,不处理文档结构;文档结构相关需求应使用 obsidian-markdown-structure 技能。