
关于
创建和编辑 Obsidian Bases(.base 文件),支持视图、过滤器、公式和汇总。适用于处理 .base 文件、创建笔记的数据库式视图。
name: obsidian-bases description: 创建和编辑Obsidian Bases(.base文件),包含视图、过滤器、公式和汇总。当处理.base文件、创建笔记的数据库式视图,或用户提到Obsidian中的Bases、表格视图、卡片视图、过滤器或公式时使用。 risk: unknown source: "https://github.com/kepano/obsidian-skills" date_added: "2026-03-21"
Obsidian Bases 技能
何时使用
- 在Obsidian中创建或编辑
.base文件时使用。 - 用于带有过滤器、公式、汇总或卡片/表格的数据库式笔记视图。
- 当用户专门询问Obsidian Bases时使用。
工作流程
- 创建文件:在vault中创建包含有效YAML内容的
.base文件 - 定义范围:添加
filters来选择显示哪些笔记(按标签、文件夹、属性或日期) - 添加公式(可选):在
formulas部分定义计算属性 - 配置视图:添加一个或多个视图(
table、cards、list或map),用order指定显示哪些属性 - 验证:确认文件是有效的YAML且无语法错误。检查所有引用的属性和公式是否存在。常见问题:包含YAML特殊字符的未引用字符串、公式表达式中的引号不匹配、引用了
formula.X但未在formulas中定义X - 在Obsidian中测试:在Obsidian中打开
.base文件确认视图正确渲染。如果显示YAML错误,检查下方的引号规则
模式
Base文件使用 .base 扩展名,包含有效的YAML。
# Global filters apply to ALL views in the base
filters:
# Can be a single filter string
# OR a recursive filter object with and/or/not
and: []
or: []
not: []
# Define formula properties that can be used across all views
formulas:
formula_name: 'expression'
# Configure display names and settings for properties
properties:
property_name:
displayName: "Display Name"
formula.formula_name:
displayName: "Formula Display Name"
file.ext:
displayName: "Extension"
# Define custom summary formulas
summaries:
custom_summary_name: 'values.mean().round(3)'
# Define one or more views
views:
- type: table | cards | list | map
name: "View Name"
limit: 10 # Optional: limit results
groupBy: # Optional: group results
property: property_name
direction: ASC | DESC
filters: # View-specific filters
and: []
order: # Properties to display in order
- file.name
- property_name
- formula.formula_name
summaries: # Map properties to summary formulas
property_name: Average
过滤器语法
过滤器用于缩小结果范围。可以全局应用或按视图应用。
过滤器结构
# Single filter
filters: 'status == "done"'
# AND - all conditions must be true
filters:
and:
- 'status == "done"'
- 'priority > 3'
# OR - any condition can be true
filters:
or:
- 'file.hasTag("book")'
- 'file.hasTag("article")'
# NOT - exclude matching items
filters:
not:
- 'file.hasTag("archived")'
# Nested filters
filters:
or:
- file.hasTag("tag")
- and:
- file.hasTag("book")
- file.hasLink("Textbook")
- not:
- file.hasTag("book")
- file.inFolder("Required Reading")
过滤器运算符
| 运算符 | 描述 |
|----------|-------------|
| == | 等于 |
| != | 不等于 |
| > | 大于 |
| < | 小于 |
| >= | 大于等于 |
| <= | 小于等于 |
| && | 逻辑与 |
| \|\| | 逻辑或 |
| ! | 逻辑非 |
属性
三种属性类型
- 笔记属性 - 来自frontmatter:
note.author或直接author - 文件属性 - 文件元数据:
file.name、file.mtime等 - 公式属性 - 计算值:
formula.my_formula
文件属性参考
| 属性 | 类型 | 描述 |
|----------|------|-------------|
| file.name | String | 文件名 |
| file.basename | String | 不含扩展名的文件名 |
| file.path | String | 文件完整路径 |
| file.folder | String | 父文件夹路径 |
| file.ext | String | 文件扩展名 |
| file.size | Number | 文件大小(字节) |
| file.ctime | Date | 创建时间 |
| file.mtime | Date | 修改时间 |
| file.tags | List | 文件中的所有标签 |
| file.links | List | 文件中的内部链接 |
| file.backlinks | List | 链接到此文件的文件 |
| file.embeds | List | 笔记中的嵌入 |
| file.properties | Object | 所有frontmatter属性 |
this 关键字
- 在主内容区域:指向base文件本身
- 嵌入时:指向嵌入文件
- 在侧边栏:指向主内容中的活动文件
公式语法
公式从属性计算值。在 formulas 部分定义。
formulas:
# Simple ari
