关于 obsidian-bases
obsidian-bases 是用于创建和编辑 Obsidian `.base` 文件的技能,适合构建类似数据库的笔记视图。它支持筛选、公式、摘要以及卡片或表格布局,并强调在 Obsidian 中验证配置。
主要功能
- 01创建和编辑 `.base` 文件
- 02配置筛选器与公式
- 03构建摘要视图
- 04以卡片或表格显示
- 05在 Obsidian 中验证配置
适用场景
- 01创建任务跟踪视图
- 02整理阅读清单
- 03为每日笔记建立索引
- 04检查 Base 中的公式和筛选器
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ sickn33/ agentic-awesome-skills --skill obsidian-bases安装后在 Claude Code 中输入/obsidian-bases确认已加载。
附带文件references/FUNCTIONS_REFERENCE.mdreferences/detailed-guide.md
详细介绍
Obsidian Bases 技能
详细指南
执行此技能前,请阅读详细指南。其中保留了完整流程和参考资料。请将其中的安全要求、前置条件和验证要求视为强制要求。针对特定任务,请加载相关章节;对于端到端任务,请完整阅读指南。
适用场景
- 创建或编辑 Obsidian 中的
.base文件时使用。 - 创建包含筛选器、公式、摘要或卡片/表格的类数据库笔记视图时使用。
- 用户专门询问 Obsidian Bases 时使用。
完整示例
任务跟踪器 Base
filters:
and:
- file.hasTag("task")
- 'file.ext == "md"'
formulas:
days_until_due: 'if(due, (date(due) - today()).days, "")'
is_overdue: 'if(due, date(due) < today() && status != "done", false)'
priority_label: 'if(priority == 1, "🔴 High", if(priority == 2, "🟡 Medium", "🟢 Low"))'
properties:
status:
displayName: Status
formula.days_until_due:
displayName: "Days Until Due"
formula.priority_label:
displayName: Priority
views:
- type: table
name: "Active Tasks"
filters:
and:
- 'status != "done"'
order:
- file.name
- status
- formula.priority_label
- due
- formula.days_until_due
groupBy:
property: status
direction: ASC
summaries:
formula.days_until_due: Average
- type: table
name: "Completed"
filters:
and:
- 'status == "done"'
order:
- file.name
- completed_date
阅读清单 Base
filters:
or:
- file.hasTag("book")
- file.hasTag("article")
formulas:
reading_time: 'if(pages, (pages * 2).toString() + " min", "")'
status_icon: 'if(status == "reading", "📖", if(status == "done", "✅", "📚"))'
year_read: 'if(finished_date, date(finished_date).year, "")'
properties:
author:
displayName: Author
formula.status_icon:
displayName: ""
formula.reading_time:
displayName: "Est. Time"
views:
- type: cards
name: "Library"
order:
- cover
- file.name
- author
- formula.status_icon
filters:
not:
- 'status == "dropped"'
- type: table
name: "Reading List"
filters:
and:
- 'status == "to-read"'
order:
- file.name
- author
- pages
- formula.reading_time
每日笔记索引
filters:
and:
- file.inFolder("Daily Notes")
- '/^\d{4}-\d{2}-\d{2}$/.matches(file.basename)'
formulas:
word_estimate: '(file.size / 5).round(0)'
day_of_week: 'date(file.basename).format("dddd")'
properties:
formula.day_of_week:
displayName: "Day"
formula.word_estimate:
displayName: "~Words"
views:
- type: table
name: "Recent Notes"
limit: 30
order:
- file.name
- formula.day_of_week
- formula.word_estimate
- file.mtime
限制
- 仅当任务明确符合上述范围时使用此技能。
- 不要将输出视为环境特定验证、测试或专家审核的替代品。
- 如果缺少必要的输入、权限、安全边界或成功标准,请停止并请求澄清。
范围和数据限制
替换现有 Base 前,请先使用副本或预览。全局筛选器用于为视图选择数据;它们不是访问控制,视图限制也不是数据保留或隐私边界。仅进行 YAML 解析无法验证 Obsidian 表达式语言或插件是否可用。请根据已安装的版本匹配视图类型和函数,并在 Obsidian 中验证有代表性的缺失、零值、格式错误和时区敏感日期。阅读时间和基于字节的词数估算只是粗略的显示启发式,并非实际计数。渲染 HTML 前,请对不可信字符串进行转义;未经批准,不要为私人笔记使用远程图片/URL。Base 用于配置展示和公式,不会强制要求字段或数据库约束。
评论
支持 Markdown