用途
Obsidian Bases 技能使 Claude Code 能够创建和编辑有效的 Obsidian Bases(.base 文件),涵盖视图、过滤器、公式及所有相关配置。Obsidian Bases 是基于 YAML 的文件,用于在 Obsidian 库中定义笔记的动态视图。一个 Base 文件可以包含多个视图、全局过滤器、公式、属性配置和自定义汇总。
文件格式
Base 文件使用 .base 扩展名,内容为有效的 YAML。它们也可以嵌入 Markdown 代码块中。
主要能力
完整 Schema
Base 文件支持以下顶层配置:
- filters:全局过滤器,应用于 Base 中的所有视图。可以是单个过滤字符串,也可以是包含 and/or/not 的递归过滤对象。
- formulas:定义可在所有视图中使用的公式属性。
- properties:配置属性的显示名称和设置。
- summaries:定义自定义汇总公式。
- views:定义一个或多个视图。
过滤器语法
过滤器用于缩小结果范围,可全局应用或按视图应用。支持:
- 单个过滤器字符串
- AND:所有条件必须为真
- OR:任一条件为真即可
- NOT:排除匹配项
- 嵌套过滤器
过滤器运算符包括:==、!=、>、<、>=、<=、&&、||、!。
属性类型
三种属性类型:
- 笔记属性:来自 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()、duration()、now()、today()、if()、min()、max()、number()、link()、list()、file()、image()、icon()、html()、escapeHTML()
- 任意类型函数:isTruthy()、isType()、toString()
- 日期函数与字段:date()、format()、time()、relative()、isEmpty(),以及日期算术
- 字符串函数:contains()、containsAll()、containsAny()、startsWith()、endsWith()、isEmpty()、lower()、title()、trim()、replace()、repeat()、reverse()、slice()、split()
- 数字函数:abs()、ceil()、floor()、round()、toFixed()、isEmpty()
- 列表函数:contains()、containsAll()、containsAny()、filter()、map()、reduce()、flat()、join()、reverse()、slice()、sort()、unique()、isEmpty()
- 文件函数:asLink()、hasLink()、hasTag()、hasProperty()、inFolder()
- 链接函数:asFile()、linksTo()
- 对象函数:isEmpty()、keys()、values()
- 正则表达式函数:matches()
视图类型
支持四种视图类型:
- 表格视图(table):以表格形式展示,支持 order 和 summaries
- 卡片视图(cards):以卡片形式展示
- 列表视图(list):以简单列表形式展示
- 地图视图(map):需要经纬度属性和 Maps 插件
默认汇总公式
提供多种默认汇总公式,包括:Average、Min、Max、Sum、Range、Median、Stddev、Earliest、Latest、Range(日期)、Checked、Unchecked、Empty、Filled、Unique。
使用方式
嵌入 Bases
在 Markdown 文件中嵌入:
![[MyBase.base]]
<!-- 特定视图 -->
![[MyBase.base#View Name]]
YAML 引号规则
- 包含双引号的公式使用单引号:'if(done, "Yes", "No")'
- 简单字符串使用双引号:"My View Name"
- 在复杂表达式中正确转义嵌套引号
常见模式
- 按标签过滤:file.hasTag("project")
- 按文件夹过滤:file.inFolder("Notes")
- 按日期范围过滤:'file.mtime > now() - "7d"'
- 按属性值过滤:'status == "active"'、'priority >= 3'
- 组合多个条件:使用嵌套的 and/or
适用场景
- 创建任务跟踪 Base,管理任务状态、优先级和截止日期
- 创建阅读列表 Base,管理书籍和文章
- 创建项目笔记 Base,跟踪项目状态和链接
- 创建每日笔记索引,按日期组织笔记
- 为笔记创建类似数据库的动态视图
限制
- 地图视图需要经纬度属性和 Maps 插件
- 具体功能、收费、价格、平台、效果或使用步骤以官方资料为准,暂未提供的信息不在本介绍中编造。