@dSebastien: 我在 Obsidian 中运行超过20,000条笔记的实时仪表盘。没有电子表格,没有手动更新。我更改一条笔记的一个属…

X AI KOLs Timeline 工具

摘要

一篇博文,展示了如何使用 Obsidian Bases,将超过20,000条笔记的仓库视为数据库,并利用一致的元数据,创建实时、自动更新的仪表盘。

我在 Obsidian 中运行超过 20,000 条笔记的实时仪表盘。没有电子表格,没有手动更新。我更改一条笔记的一个属性,每个仪表盘都会自动更新。你的仓库已经是一个数据库。Bases 就是你最终查询它的方式。 https://t.co/10tOrz9nvd
查看原文
查看缓存全文

缓存时间: 2026/06/26 22:17

我在 Obsidian 中运行着超过 20,000 条笔记的实时仪表盘,无需电子表格,也无需手动更新。我只需更改笔记中的一条属性,所有仪表盘便会自动更新。你的知识库本身就是一个数据库,而 Base 就是最终用来查询它的工具。 https://t.co/10tOrz9nvd — # 如何用 Obsidian Bases 将 20,000 条笔记变成实时仪表盘 来源:https://www.dsebastien.net/how-i-turned-20-000-notes-into-live-dashboards-with-obsidian-bases/ 博客 (https://www.dsebastien.net/tag/blog/)Base 不是你需要填写的电子表格,它是一面透镜,指向你已经拥有的笔记,其清晰度完全取决于底层的属性。下面我将介绍如何运行覆盖 20,000 条笔记的实时仪表盘。 Sebastien Dubois (https://www.dsebastien.net/author/dsebastien/) 2026年6月24日 —— 22分钟阅读 ## 如何用 Obsidian Bases 将 20,000 条笔记变成实时仪表盘 在这篇文章中,我想向你展示什么是 Obsidian Bases (https://notes.dsebastien.net/30+Areas/33+Permanent+notes/33.02+Content/Obsidian+Bases?ref=dsebastien.net),如何在两分钟内创建你的第一个 Base,以及我如何利用它们,在一个包含超过 20,000 条笔记的知识库中运行实时仪表盘。我会分享我自己设置中的实际用例:我的阅读库,我的生活/健康追踪系统,我作为 Obsidian 插件构建的自定义 Base 视图,以及一个索引我知识库中所有 AI 代理的“AI Base”。 一个 Obsidian Base 以卡片视图显示笔记,并带有封面图片 一个 Obsidian Base 以卡片视图显示笔记,并带有封面图片 ## TL;DR - 你的知识库已经是一个数据库。 你曾经在笔记中输入的每一个属性都是数据。Base 就是你最终查询它的方式,无需再维护任何电子表格。 - 少整理,多提问。 Base 是一个保存下来的问题(例如“我现在在读什么?”、“哪些天我睡得不好?”),它会自动回答并永远保持最新。你更改一条属性,仪表盘就会自动更新。 - 一个问题,多种视图。 同一个 Base 可以变成表格、卡片画廊、书架或关系图。只构建一次查询,根据当下需求以不同方式查看。 - 干净的属性是全部关键。 Base 会奖励一致的元数据,并暴露混乱的元数据。把这个做对了,其他一切都会顺利;做错了,任何视图都救不了你。 - 公式将列表变成仪表盘。 计算健康评分、阅读连续天数、“本周/本月”分组等。这些列不存在于任何笔记中,却能按需出现。 - 比 Dataview 更快、更友好。 原生支持,可原地编辑,即使在 20,000 条笔记中依然快速。我已经将大部分仪表盘迁移过来了。 - 远不止表格。 插件可以添加全新的视图类型(我构建了三个:图表、定期回顾和知识图谱),Obsidian CLI 可以从终端查询 Base,等等。 - 你可以让 AI 为你构建和优化它们。 用简单的英语描述你想要的仪表盘,然后让 AI 写出对应的 Base。 ## Obsidian Base 到底是什么 Obsidian Bases (https://notes.dsebastien.net/30+Areas/33+Permanent+notes/33.02+Content/Obsidian+Bases?ref=dsebastien.net) 是 Obsidian (https://obsidian.md/?ref=dsebastien.net) 的一个核心插件(无需安装),它可以将任意一组笔记转化为一个可以进行过滤、排序和不同视图展示的数据库。把它想象成一个你对知识库提出的保存下来的问题。“展示我所有正在读的书。” “展示我本周的每日笔记及其睡眠评分。” “展示我所有按类别分组的 AI 技能。” 关键点在于:你不是往 Base 里填充数据。数据已经存在于你的笔记中,存在于它们的属性(也称为 frontmatter 或元数据)里。Base 只是读取这些数据。它有点像 Notion (https://notes.dsebastien.net/30+Areas/33+Permanent+notes/33.02+Content/Notion?ref=dsebastien.net) 中的数据库,但速度要快上无数倍,而且你的数据仍然以纯 Markdown 文件的形式完全归你所有(参见“文件优于应用”原则 (https://notes.dsebastien.net/30+Areas/33+Permanent+notes/33.02+Content/File+over+app+principle?ref=dsebastien.net))。 每个 Obsidian Base 做三件事: 1. 过滤器 决定包含哪些笔记(例如,“带有标签 book”)。 2. 视图 决定如何显示这些笔记(表格、卡片等)。 3. 属性和公式 决定显示哪些列以及它们的名称。 这就是全部模型。 ## 两分钟创建你的第一个 Base 我们来构建一个。假设你想要知识库中所有书籍的列表。 首先,快速检查设置。Base 随 Obsidian 一起提供,但作为一个核心插件,它可能尚未启用。打开 设置 → 核心插件,确保 Base 已启用。同时,也请启用 属性 核心插件。它会为你提供一个干净的编辑器来编辑你的 Base 将要读取的 frontmatter,相信我,你会需要它的。 1. 创建 Base。 在文件管理器中右键单击并选择 新建 Base,或者从命令面板运行 Base: 创建新的 Base 命令。你会得到一个 .base 文件。 2. 添加过滤器。 默认情况下,Base 包含你知识库中的所有笔记。使用过滤器来选择/排除 Base 中的笔记。使用 文件 → 包含标签 并选择你的书籍标签。现在 Base 只显示你的书籍笔记。 3. 选择列。 打开属性菜单并勾选你想要看到的属性:作者、状态、评分、页数、阅读状态等。 4. 排序。 按评分降序排序,或者按完成日期排序。 这就是一个基于已有笔记的工作数据库。无需输入数据。你只是把一面透镜指向了现有的笔记。 早期值得了解的几个要点: - 你可以从功能区、命令面板或右键单击文件夹来创建 Base。 - Base: 插入新 Base 会将一个 Base 直接放入你正在编辑的笔记中。 - 点击视图名称旁边的结果计数可以限制结果、复制它们或导出为 CSV。 - 点击过滤器旁边的 `` 按钮可以显示原始语法。这就是公式和高级过滤器的所在,也是我们下一步要去的地方。 ## 思维模型:一个 Base,多种视图 初学者常见的本能是为每种情况创建一个新的 Base。这里是要读的书,那里是正在读的书,其他地方是已读完的书。三个 Base,三个文件,三个需要维护的东西。不要这样。 为书籍创建一个 一个 Base,然后为其添加 多个视图。Base 中的每个视图都有自己的布局、排序、过滤器和列,但所有这些都源自相同的底层“根查询”。 我的书籍 Base 有一个书架视图、一个“当前正在阅读”表格、一个卡片画廊、一个“今年已读”表格(含总计),以及独立的虚构和非虚构画廊。一个文件,六个视图。 一个书籍 Base,以卡片视图显示,封面图片从属性中拉取 一个书籍 Base,以卡片视图显示,封面图片从属性中拉取 同一个书籍 Base 以“当前正在阅读”表格视图显示,按开始日期排序 同一个书籍 Base 以“当前正在阅读”表格视图显示,按开始日期排序 视图很便宜。Base 才是你需要维护的东西。目前我有大约 20 个 Base,帮助我进行维护、项目/任务管理、生活追踪、阅读、学习、发布等!每当你觉得“我需要另一个 Base”时,首先问问自己是否真的只是需要在已有的 Base 上添加一个视图。 提示:你可以从顶部的下拉菜单切换视图,通过拖拽重新排序(第一个是默认视图)。 ### 过滤器像漏斗一样工作:Base 级 vs 视图级 在“根查询”这个概念中有一个细微之处值得明确说明,因为正是这一点让“一个 Base,多个视图”的模式得以生效。Base 为你提供了两层过滤器,它们像漏斗一样叠加。 - Base 级过滤器 位于漏斗的宽口处。它们同时适用于所有视图,并决定哪些笔记首先进入 Base。 - 视图级过滤器 位于下方。每个视图自动继承 Base 级过滤器,然后在其之上添加自己的过滤器以进一步缩小范围。 我的书籍 Base 是最清晰的例子。Base 级过滤器只保留带有 book 标签的笔记。这个集合向下流入每一个视图。我的“当前正在阅读”视图继承了这些书籍笔记,然后添加自己的过滤器:statusReading。我的“今年已读”视图继承了相同的书籍笔记,然后过滤出完成日期在 1 月 1 日之后的笔记。顶部一个宽过滤器;下方每个视图一个不同的窄过滤器。 做对了这个,你就不再会重复自己。你永远不需要在五个不同的地方重复声明“仅限书籍”;你在 Base 级别只说一次,每个视图都从中细化。更改 Base 级过滤器,所有视图会同时更新。更改视图级过滤器,只有那个视图会变化。 初学者经常忽略的一种过滤器类型是复选框属性。一个包含 true/false 值(在属性编辑器中显示为复选框)的属性可以直接驱动过滤器。给你的笔记添加一个 favorite 复选框,创建一个筛选条件为 favoritetrue 的视图,你就立即有了一个“收藏”视图,无需新标签,无需额外元数据。布尔值是你能够添加的最便宜的过滤器。 ### 在笔记中嵌入 Base Base 不必生活在自己的文件中,像一个单独的标签页供你打开。你可以像嵌入图片一样,直接将它放入任何笔记中。 - 使用 ![[Books.base]] 嵌入整个 Base。它会内联渲染,完全可交互。 - 使用 ![[Books.base#Currently Reading]] 嵌入一个特定的视图。# 后面的部分是视图名称,因此你可以将同一个 Base 的不同视图放入不同的笔记中。 - 同样的方式也适用于 Canvas (https://notes.dsebastien.net/30+Areas/33+Permanent+notes/33.02+Content/Obsidian+Canvas?ref=dsebastien.net)。将 Base 拖放到画布上,然后右键单击文件名以固定特定的视图。 我经常使用这种方法。我的周回顾笔记嵌入了我的任务 Base。我的阅读笔记嵌入了“当前正在阅读”视图。数据就在我正在工作的地方,实时存在,而不是在另一个需要我去打开的标签页中。 你还可以将 Base 停靠到窗格中。打开一个 .base 文件,然后将其标签页拖到窗口的右边缘(或任何窗格),这样在你于主窗格中工作时,它可以保留在屏幕上。结合 this 关键字(下面会更多介绍),一个停靠的 Base 会对你正在阅读的笔记做出反应:一个永久性的侧边面板,随着你在知识库中移动而更新。(还有一个 Bases: Insert new base 命令,可以一步创建一个全新的 Base 并将其嵌入到你光标所在的位置。) ## Base 的质量取决于你的属性 Base 是一面透镜。将透镜对准一个失焦的物体,无论透镜本身多好,你都会得到模糊的图像。你的笔记属性就是焦点。 如果一半的书籍笔记使用 author,另一半使用 authors;如果有些 rating 是数字,另一些是正文中的星级;如果 status 在一条笔记中是 “reading”,在另一条中是 “Reading”,那么你的 Base 将是一团糟。不是因为 Base 不好,而是因为底层数据不一致。 这是 Base 首次使用时最令人失望的原因。视图建立在元数据尚未清理干净之前,因此它们忠实地展示了一片混乱。 所以在你深入使用 Base 之前,先做那些枯燥的工作: - 为每种笔记类型决定其属性。 书籍使用 authorstatusratingpagesdate_starteddate_finished。选定名称并坚持使用。 - 使用相同的值。 如果 status 可以是 “To Read”、“Reading” 或 “Read”,那就让这三个值成为唯一选项。模板在这方面帮助极大,因为每个新笔记从一开始就是一致的。 - 为每一列设置显示名称。 在 Base 中,绝不要让原始的 health_sleep_total_minutes 泄露到用户界面中。设置一个 displayName 为 “Sleep Hours”。你呈现的每一个属性都应该有一个友好的、标题大写的标签。 Base 会惩罚你所有的数据不一致。这听起来像是一个缺点。其实不然。Base 让我成为一个更好的笔记记录者,而不仅仅是仪表盘构建者,因为它们给了我一个即时的、视觉化的理由来保持元数据的清洁。仪表盘就是这种自律的回报。 从简单开始。清理一种笔记类型的属性,在其上构建一个 Base,并观察差异。然后扩展。 顺便提一下,这也是为什么我如此主张在 Obsidian 中支持强类型笔记,并且实际上已经为 Obsidian 构建了 Obsidian Starter Kit 插件 (https://notes.dsebastien.net/30+Areas/33+Permanent+notes/33.02+Content/Obsidian+Starter+Kit+plugin+for+Obsidian?ref=dsebastien.net)。 ## 公式与函数:列表如何变成仪表盘 过滤和排序能给你更好的列表。而公式则能将列表变成仪表盘。 在举例之前,了解 Base 列可以来自三个地方会很有帮助: - 笔记属性 是你自己的 frontmatter。你可以通过名称引用它们,无需前缀:authorstatusrating,并且你可以更改显示标签(例如,Sleep Hourssleep_hours)。 - 文件属性 来源于文件本身:file.namefile.folderfile.extfile.sizefile.ctimefile.mtimefile.tagsfile.links。每条笔记都自动拥有这些属性。 - 公式属性 是你定义的虚拟列。它们不存在于任何笔记中;Base 会即时计算它们。引用另一个公式时使用 formula.。 第三种非常强大。它使得组合字段、进行计算、转换、格式化等成为可能。 ### 编写公式 打开工具栏中的 属性 菜单,选择 添加公式,给它一个名称,然后输入表达式。绿色勾号表示语法有效。 一个简单的例子: price_label: if(price, "$" + price.toFixed(2), "") 这个公式读取 price 属性,如果存在则以 $19.90 的格式显示;否则不显示任何内容。 你可以使用常见的运算符:算术(+ - * /)、比较(> < == !=)和布尔(! && ||)。 ### 函数工具箱 函数是使公式富有表现力的关键。少数是全局函数,独立调用:if()now()today()date()duration()link()image()。其余的是以方法风格在某个值上调用的,可用的函数取决于值的类型: - 日期.format("YYYY-MM-DD").relative()(返回如 “3 days ago”)、以及字段如 .year.month.day。 - 字符串.contains().startsWith().lower().title().replace().split().slice()。 - 数字.round().floor().ceil().abs().toFixed(2)。 - 列表.filter().map().reduce().sort().unique().join().contains().length。 - 文件.hasTag().hasLink().inFolder(),以及字段如 .name.mtime.tags.links。 - 链接.asFile().linksTo()。 - 对象.keys().values().isEmpty()。 - 正则表达式.matches()。 完整参考见官方文档(文末有链接)。你不需要记忆全部内容,但需要知道这些类别存在,以便了解可能实现的功能。 早期浪费我时间的几个陷阱,值得牢记: - 没有独立的 length()year() 函数。在字符串或列表上使用 .length,在日期上使用 .year。 - 是 file.links(出链)和 file.backlinks(入链),而不是 outlinks/inlinks。 - 数字使用方法而不是函数:value.round(),而不是 round(value)。 - 一个公式可以引用另一个公式(formula.x),但不能直接或间接引用自身。 ### 我知识库中的实际公式 下面是我健康 Base 中的一个实际公式(包含在 Obsidian Starter Kit (https://store.dsebastien.net/product/obsidian-starter-kit?ref=dsebastien.net) 中)。它读取我在每日笔记中记录的睡眠、精力和情绪,并计算出一个单一的健康评分: wellness_score: if(health_mood && health_energy_level && health_sleep_total_minutes, ((number(health_mood) + number(health_energy_level) + if(number(health_sleep_total_minutes) >= 420, 10, if(number(health_sleep_total_minutes) >= 360, 7, if(number(health_sleep_total_minutes) >= 300, 4, 2)))) / 3).round(), "Incomplete Data") 没有任何笔记包含“健康评分”。Base 会即时计算它。

相似文章

@cyrilXBT: https://x.com/cyrilXBT/status/2053291096076145097

X AI KOLs Timeline

本文介绍了一种通过模型上下文协议(MCP)集成 Claude Code,将 Obsidian 笔记库转变为商业操作系统的方法。文章详细阐述了其架构、文件夹结构以及利用本地文件访问功能自动化研究、内容创作和项目管理的五个专用系统。