用途
Obsidian Bases 技能用于创建和编辑 Obsidian 的 .base 文件。.base 文件是有效的 YAML 文件,可让笔记库呈现类似数据库的视图。工作流包括:在库中创建 .base 文件并写入有效 YAML 内容;添加过滤器确定哪些笔记出现(可按标签、文件夹、属性或日期);在 formulas 段定义计算属性;配置一个或多个视图(table、cards、list、map),并用 order 指定显示哪些属性;校验 YAML 无语法错误、引用的属性与公式存在;最后在 Obsidian 中打开确认视图渲染正确。
架构
.base 文件使用 .base 扩展名,内容为有效 YAML。顶层可包含全局 filters、formulas、properties、summaries 和 views。filters 可以是单个过滤字符串,也可以是只含一个键(and、or、not)的递归过滤对象。formulas 定义可在所有视图中使用的公式属性。properties 配置属性的显示名称,支持普通属性、formula.公式名 和 file.ext。summaries 定义自定义汇总公式。views 定义视图,每个视图含 type、name,可选 limit、groupBy、filters、order、summaries。
过滤器语法
过滤器可全局或按视图应用,支持单个过滤字符串,以及 and、or、not 和嵌套结构。运算符包括 ==、!=、>、<、>=、<=、&&、||、!。常用过滤函数示例:file.hasTag()、file.hasLink()、file.inFolder()。
属性
属性分三类:笔记属性(来自 frontmatter,如 note.author 或 author)、文件属性(如 file.name、file.mtime)、公式属性(如 formula.my_formula)。文件属性参考包括:file.name、file.basename、file.path、file.folder、file.ext、file.size、file.ctime、file.mtime、file.tags、file.links、file.backlinks、file.embeds、file.properties。this 关键字在主内容区指 base 文件本身,嵌入时指嵌入文件,侧边栏中指主内容区的活动文件。
公式语法
公式在 formulas 段定义,用于从属性计算值,支持算术、条件逻辑、字符串格式化、日期格式化、天数计算等。常用函数包括 date()、now()、today()、if()、duration()、file()、link()。日期相减返回 Duration 类型,需先访问 .days、.hours 等数值字段再应用数字函数,Duration 不直接支持 .round()、.floor()、.ceil()。日期运算支持 y/year/years、M/month/months、d/day/days、w/week/weeks、h/hour/hours、m/minute/minutes、s/second/seconds 等单位。
视图类型
- table:表格视图,可配置
order和summaries。 - cards:卡片视图,可配置
order。 - list:列表视图,可配置
order。 - map:地图视图,需 latitude/longitude 属性和 Maps 社区插件。
默认汇总公式包括 Average、Min、Max、Sum、Range、Median、Stddev(Number);Earliest、Latest、Range(Date);Checked、Unchecked(Boolean);Empty、Filled、Unique(Any)。
嵌入方式
在 Markdown 文件中嵌入:![[MyBase.base]];嵌入特定视图:![[MyBase.base#View Name]]。
YAML 引用规则
含双引号的公式使用单引号包裹,如 'if(done, "Yes", "No")';简单字符串使用双引号,如 "My View Name";复杂表达式需正确转义嵌套引号。
常见问题
YAML 语法错误:含 :、{、}`、`[`、`]`、`,`、`&`、`*`、`#`、`?`、`|`、`-`、`<`、`>`、`=`、`!`、`%`、`@`、 ` `` 等特殊字符的字符串必须加引号。公式引号不匹配时,含双引号的公式整体用单引号包裹。公式错误包括:Duration 未访问字段直接运算、缺少空值检查、引用未定义公式。
示例
资料提供 Task Tracker Base、Reading List Base、Daily Notes Index 三个完整示例,涵盖过滤器、公式、属性显示名、视图配置、分组、汇总等用法。