我曾经读过《卡片笔记写作法》,对书里讲述的「卡片笔记」很有感触,后来也阅读了 Heptabase 创始人的一些文章,他讲述到自己通过制作卡片笔记和脑图进行复杂概念的学习过程,也让我觉得这是一个很有意思的做法。于是我自己在阅读一些书籍的时候,会使用白板写读书笔记,一本书一张画布,节点是章节和要点,通过连线把笔记之间关联起来,非常直观且美观。(为此我还斥巨资买过 Heptabase 的会员)

heptabase 的白板显示

后来觉得,我应该也可以通过 Obsidian 的白板实现,而且此功能免费,开始使用后发现问题出在缩放。画布一缩小,所有卡片就变成一片看不清的小蚂蚁。我想退远一点看整本书的结构,结果什么都看不见。

之前用 Heptabase 的时候,我就很喜欢它白板的处理方式:缩小之后,卡片自动显示标题。缩得再远,也能直观看到每张卡片在讲什么,笔记的逻辑一眼就清楚。Obsidian 的 Canvas 没有这个。而且它连 Tab 建下级节点都不支持,想当思维导图用不行,画流程图形状也只有一种:矩形。

后来发现了 Advanced Canvas[1],一个增强 Canvas 的开源插件。它解决了一部分问题,但我想要的更多,随着 AI 编程能力上升,我直接 fork 了一份,重构了代码,把想要的功能一个个加进去,最后重命名为 Canvas Enhance[2],独立维护。

👇 最后显示的效果大概如下:


👇 一个简单的功能演示

缩小之后,卡片变成标题

概览模式(Overview Mode)。缩小画布,卡片自动显示大号标题:文件节点显示文件名,文本节点显示第一个 Markdown 标题,可以自定义最大的字号。放大,内容自动恢复。就是我惦记的那个 Heptabase 体验。缩远了看结构,拉近了看内容。

现在我在 Canvas 上写读书笔记,终于可以随意缩放了。

Tab 一下,思维导图就长出来了

Canvas 原生拖一个节点、连一条线的操作,真的只能叫画板。

Canvas Enhance 给了一套完整的思维导图快捷键,默认按 Tab 就能直接建下级节点。我把它改成了自己顺手的设置:

  • Shift+Tab 创建下级节点
  • Shift+Enter 创建同级节点

下级节点可以自动继承上级节点的颜色,不用一个个手动改。节点间距、快捷键本身都能在设置里调。

卡片在侧边栏打开

Heptabase 还有一个我很喜欢的设计:笔记可以在侧边栏打开。白板这边搭思维导图的结构,侧边栏里打开卡片改内容,不用在页面之间来回切。

这个功能我也给加上了。

新建节点,直接从模板长出来

这个功能对读书笔记特别友好:新建文件节点时,可以指定一个 Obsidian 模板预填充内容。比如做一个「章节笔记」模板,之后每个章节节点建出来就自带结构,不用每次从头搭。

还有一堆功能

  • 流程图:右键换节点形状(终端、流程、判断),8 种箭头、3 种线型,连线还能自动绕开节点
  • 画布进图谱.canvas 文件终于能出现在关系图谱、反向链接和出链里了
  • 链接到单个节点[[画布名#node-id]] 可以只链接或嵌入画布上的某一个节点
  • 画布内搜索Ctrl/Cmd+F 直接搜画布里的文本
  • 可折叠分组:组节点可以收起来
  • 聚焦模式:模糊未选中的节点,只看当前在处理的
  • 传送门:在一个画布里嵌入另一个画布的视图
  • 导出图片:PNG/SVG,支持透明背景
  • 自定义样式:用 CSS snippet 给节点和边定义自己的样式
  • 20+ 命令:创建、导航、克隆、展开、翻转、交换……命令面板里都有

所有功能都能在设置里独立开关,不想要的直接关掉。

怎么安装

推荐:社区插件市场直接装

设置 → 第三方插件 → 浏览,搜 Canvas Enhance,作者是 joeytoday,不要认错,点击安装即可。

项目在 GitHub 开源,GPL-3.0。详细的使用指南也在仓库里 [3],欢迎大家给我⭐️star,我也会持续维护此项目。

🔗 https://github.com/joeytoday/obsidian-canvas-enhance

如果你也用 Canvas,可以试试。遇到问题或者有想要的功能,欢迎开 issue。

本内容由作者撰写,AI 辅助整理和优化,核心观点和个人体验均为作者本人,内容仅代表创作者个人观点。

  1. Developer-Mike/obsidian-advanced-canvas: https://github.com/Developer-Mike/obsidian-advanced-canvas↩︎
  2. joeytoday/obsidian-canvas-enhance: https://github.com/joeytoday/obsidian-canvas-enhance↩︎
  3. Canvas Enhance 使用指南: https://github.com/joeytoday/obsidian-canvas-enhance/blob/main/docs/guide.md↩︎