关于 obsidian-bases
Obsidian Bases Skill 指导在 Obsidian 知识库中创建和维护用于展示笔记视图的 `.base` 文件,适合构建任务追踪器、索引等结构化视图,并涵盖 YAML、公式、字段和实际视图验证。
主要功能
- 01检查知识库属性和约定
- 02定义筛选条件、视图和显示字段
- 03添加公式并处理可选值
- 04验证 YAML 和属性引用
- 05在 Obsidian 中检查渲染视图
适用场景
- 01构建任务追踪视图
- 02创建阅读清单视图
- 03索引每日笔记
- 04排查 base 中的公式或筛选条件
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ timlai666/ skills --skill obsidian-bases安装后在 Claude Code 中输入/obsidian-bases确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/examples.mdFUNCTIONS_REFERENCE.mdproperties-and-formulas.mdschema-and-views.md详细介绍
Obsidian Bases 技能
工作流
- 编辑时读取目标
.base文件,并在创建或更改视图前检查知识库中相关笔记的属性和约定。 - 确定哪些笔记属于此数据库,然后选择视图和要显示的属性。使用嵌套筛选、分组、汇总或视图专属设置前,请阅读架构和视图。
- 按需添加公式。有关文件属性、
this、日期运算和公式示例,请阅读属性和公式;有关实际使用的函数,请参阅函数参考。 - 对于任务跟踪器、阅读清单或每日笔记索引,请先阅读相应的完整示例,再据此调整。保留知识库中实际使用的字段名称和类型。
- 在预期的知识库位置保存具有有效 YAML 的
.base文件,然后运行以下验证。
最简数据库
数据库是扩展名为 .base 的 YAML 文件。此示例列出活跃笔记,
并计算一个基于日期的列。请根据知识库调整 status 和 due_date。
filters:
and:
- 'file.ext == "md"'
- 'status == "active"'
formulas:
days_until_due: 'if(due_date, (date(due_date) - today()).days, "")'
properties:
formula.days_until_due:
displayName: "Days Until Due"
views:
- type: table
name: "Active Notes"
order:
- file.name
- status
- formula.days_until_due
全局筛选器适用于所有视图;视图筛选器会进一步缩小该视图的范围。 完整架构以及表格、卡片、列表和地图示例请参阅 架构和视图。选择视图前,请检查所需插件 和视图专属设置。
属性和公式参考
- 笔记属性来自 frontmatter:
note.author或author。 - 文件属性描述文件:
file.name、file.mtime等。 - 公式属性引用定义:
formula.my_formula必须对应formulas下的my_formula条目。 - 检查相关笔记中是否存在缺失值,并确认数据类型。属性不必在每篇笔记中都存在;使用可选输入时应进行保护。
有关完整的文件属性表、this 的行为和公式示例,请参阅
属性和公式。
常见问题
YAML 引号
表达式中包含双引号时,请使用单引号。对于 YAML 可能会解析为结构的显示字符串,也应加上引号,例如冒号后跟空格的字符串。
Incorrect: displayName: Status: Active
Correct: displayName: "Status: Active"
Incorrect: label: "if(done, "Yes", "No")"
Correct: label: 'if(done, "Yes", "No")'
时长和缺失值
相减日期会返回一个 Duration。应用数值函数前,请访问 .days、
.hours、.minutes、.seconds 或 .milliseconds 等数值字段。
Incorrect: (now() - file.ctime).round(0)
Correct: (now() - file.ctime).days.round(0)
转换或相减可选日期输入前,应先进行保护:
formulas:
days_until_due: 'if(due_date, (date(due_date) - today()).days, "")'
更多日期表达式请阅读 日期运算。
嵌入数据库
![[MyBase.base]]
![[MyBase.base#View Name]]
验证
- 将实际的
.base解析为 YAML。修复引号错误,并确认字段包含具体值,而不是架构中的备选项。 - 验证每个被引用的
formula.X都存在于formulas下;根据预期笔记检查笔记属性的名称和类型。 - 根据所需结果检查筛选器、显示列、分组和汇总,包括存在可选值缺失的笔记。
- 在 Obsidian 中打开
.base并实际检查每个受影响的视图。确认公式、筛选器和汇总均正常工作,然后修正并重新检查故障。 - 如果无法使用 Obsidian 或所需插件,请报告未经验证的视图或行为。仅解析 YAML 并不能证明渲染或公式正确。
参考资料
评论
支持 Markdown