这是 Obsidian 使用教学 — 插件篇的第 3 篇文章。
在 上一篇文章 中,我介绍了 Dataview 插件,可以快速查询特定条件的笔记,并且用 table (表格), list (清单), task (待办事项) 呈现这些笔记条目。
这篇文章要介绍的插件是 Breadcrumbs,是一款能协助我们连结 Obsidian 笔记的工具。
Breadcrumbs 的功能非常强大,要体会它的威力之前,我想先问你一个问题:「在 Obsidian 中写笔记时,你是如何连结笔记的?」
我曾问过许多使用 Obsidian 笔记的朋友,他们的回答多是:「靠回忆吧…或是反向连结 (backlinks) 刚好有连结到,可以从面板中找到。」
然而这不是一个可靠的做法,人脑在记忆上不如电脑,不可能精准回想自己到底写过哪些笔记。
举例来说,当我在写一则叫做「Kanban Methodology (看板方法)」的笔记时,最多只能想到跟「Agile (敏捷)」、「Scrum (敏捷合作框架)」…其他的笔记就算有写过,但一时之间也很难想到!
我们可以不断在 Obsidian 中连结笔记,但如果想不到笔记名称…根本没有机会使用。
因此我们需要让 Obsidian “提醒” 自己:「这则笔记可能和某些笔记有关联唷!」再由我们自己判断是否要将笔记做连结。
真的有可能吗? Obsidian 还会自动推荐可能有关连的笔记给我知道?
是的,只要我们使用 Breadcrumbs 这款插件就可以做到。
这篇文章先介绍 Breadcrumbs 的运作原理,下一篇文章再介绍个人应用方式。
Breadcrumbs 的运作原理相当简单,搭配下方图解很容易理解。
我们想像一张族谱图,中心点是「我」,上方有「父母」,同层有「兄弟」、「姐妹」,下方则是「小孩」。
现在把人转换成,中心点称为「me note」,上层有一则「parent note」,同层有「sister note」与「brother note」,下方则有「child note」。
Breadcrumbs 会在我们点击「me note」时,自动将「parent note」、「sister note」、「brother note」和「child note」推荐给我们,我们只要决定是否真的要将这些笔记写在「me note」。
厉害的是,Breadcrumbs 会自动依据笔记之间的连结结果,将推荐笔记分为「Real」跟「Implied」两个栏位。「Real」的意思是在 me note 中有实际连结的笔记,「Implied」则是 Breadcrumbs 根据程序推算自动推荐给我们的连结笔记。
以上方的例子来说,在 Sibling 栏位显示「Real」笔记为 sister note、「Implied」笔记为 brother note。这是因为「me note」中真的有 sister note 的连结笔记,但没有 brother note 。
当我切换到 brother note 时,则可以看到 sibling 栏位显示「Implied」笔记为 sister note 和 me note,这是因为这两则笔记都没有真实被 brother note 连结。
这样在写笔记时,就可以参考 Breadcrumbs 推荐的笔记,方便的做笔记连结啦!
接下来我们来看如何在 Obsidian 中实作 Breadcrumbs 的功能。
核心步骤是:
在 Metadata 区域加入 parent, sibling, child 辨识栏位。(栏位名字可自订,等下会说明)
依据 breadcrumbs Wiki · GitHub 的说明,有 2 种加入栏位的方式。
方法 1 — 在 YAML 区加入栏位
YAML 区指的是用上下 ---
包住一段文字,这段文字就称为 YAML。而在 YAML 区中,我们会用 <栏位名称> : <值> 来格式来定义栏位的值。
例如下方的 YAML 区域包含了 date 和 aliases (笔记别名)。
我们可在 YAML 区加入 parent,sibling,child 的栏位,并在後方打上要连结的笔记。例如我在「me note」中分别加入下方栏位:
若有 1 则以上关联的笔记,则可以用 ,
区隔开来。例如下方我多加入了「brother note」:
方法 2 — 使用 inline field
Inline field 是 Dataview 作者提出的 Obsidian 资料格式,格式为 <栏位 :: 值>
,必须要写在 YAML 区之外 (也就是 ---
的外面)。
例如下方是将「me note」的 YAML 区栏位值改成 inline field:
这边要特别注意的是,若想要使用 inline field 格式,必须先下载并开启Dataview 插件。
我偏好使用 inline field 来建立 Breadcrumbs 所需要的栏位,理由有 3 个:
1.比较没有 Bug
目前使用方法 1 — 在 YAML 加入栏位,有时候会出现 Breadcrumbs 无法正确显示「Implied」栏位的笔记,但 inline field 没有此问题。
2.格式较正确
在 YAML 区中合法栏位值是不能包含 [[]]
的 (虽然你硬要写 obsidian 也不会报错,但在程序世界中这样定义 YAML 栏位是不正确的观念)。
3.可以跟 Dataview 共用栏位
由於 <栏位 :: 值>
的格式本来就是 Dataview 支援的语法,使用 Dataview 时可共用栏位。
如果你不喜欢 parent, sibling, child 当作辨识栏位,可以在 Breadcrumbs 的插件中修改。
若要特殊需求要同时指定多个栏位当作 parent, sibling 或 child,可用 ,
隔开。(我会在下一篇介绍我使用多个栏位的笔记方法)
接下来只要在每篇笔记中,都加入 parent, sibling, child 的栏位,并将你想得到的笔记连结放在该栏位後面,Breadcrumbs 就会自动判断可能的相关笔记。
打开 Breadcrumbs 插件选单,可以看到除了自动推荐功能之外 (Matrix/List View),还有 Trail/Grid 和 Visualization Model 和 Create index 等功能。
我要特别介绍 Trail/Grid,其功能是显示到最上层笔记到目前这则笔记的路径。
以「parent note」→ 「me note」→「child note」为例,Breadcrumbs 显示画面如下:
1、2 则笔记感觉没什麽,但当笔记数量增多时,此功能可以快速展示目前这则笔记的上层有哪些笔记,提供写笔记时的脉络。(All 是切换按钮,可切换成显示所有路径)
若你对 Breadcrumbs 有兴趣,可自行参考 breadcrumbs Wiki 了解更多功能。
Obsidian 的「笔记连结功能」鼓励我们连结笔记、串连知识,尽可能地重复利用自己写过的笔记内容。
然而人脑的记忆能力不如电脑,无法在写笔记时就知道该串连哪一则笔记,因此需要电脑的辅助提醒。
此时 Breadcrumbs 就派上用场了。
建立良好的 Metadata 撰写习惯,并透过 Breadcrumbs 的关联笔记推荐功能,就能够轻松地将笔记互相连结,形成个人的知识网络。
我强烈推荐这款插件给正在使用或是想要尝试 Obsidian 笔记软件的你,可以大幅地激发你的灵感。
>>: Day24-JDK可视化监控工具:jconsole(四)
不知不觉,铁人赛慢慢要进入尾声了,感谢过程中队友们彼此提携,互相提醒。 在前几天中,和大家介绍了 D...
selector 选取 JQ 的 DOM 存取方式是透过 selector 来达到索引目标,会先转换...
前言 昨日我们学习了资料的型态,今天我们要来了解变数的参考。 Pass by Value ? Str...
今天要来介绍 CSS 命名 首先先来介绍 驼峰式命名: https://zh.wikipedia.o...
除了文字讯息以外, Line 还有很多种讯息型态可以传送,例如图片,音档,贴图......。 我们可...