Day 24 : 插件篇 03 — 如何让 Obsidian 自动推荐关联笔记 (上)?使用 Breadcrumbs 查看有哪些相关笔记可以连结

一、前言

这是 Obsidian 使用教学 — 插件篇的第 3 篇文章。

上一篇文章 中,我介绍了 Dataview 插件,可以快速查询特定条件的笔记,并且用 table (表格), list (清单), task (待办事项) 呈现这些笔记条目。

这篇文章要介绍的插件是 Breadcrumbs,是一款能协助我们连结 Obsidian 笔记的工具。

Breadcrumbs 的功能非常强大,要体会它的威力之前,我想先问你一个问题:「在 Obsidian 中写笔记时,你是如何连结笔记的?」

二、在 Obsidian 中连结笔记的困难

我曾问过许多使用 Obsidian 笔记的朋友,他们的回答多是:「靠回忆吧…或是反向连结 (backlinks) 刚好有连结到,可以从面板中找到。」

然而这不是一个可靠的做法,人脑在记忆上不如电脑,不可能精准回想自己到底写过哪些笔记。

举例来说,当我在写一则叫做「Kanban Methodology (看板方法)」的笔记时,最多只能想到跟「Agile (敏捷)」、「Scrum (敏捷合作框架)」…其他的笔记就算有写过,但一时之间也很难想到!

Kanban Methodology — Kanban Method — Aktiasolutions

我们可以不断在 Obsidian 中连结笔记,但如果想不到笔记名称…根本没有机会使用。

因此我们需要让 Obsidian “提醒” 自己:「这则笔记可能和某些笔记有关联唷!」再由我们自己判断是否要将笔记做连结。

真的有可能吗? Obsidian 还会自动推荐可能有关连的笔记给我知道?

是的,只要我们使用 Breadcrumbs 这款插件就可以做到。

这篇文章先介绍 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 推荐的笔记,方便的做笔记连结啦!

四、使用 Breadcrumbs 的前置作业

接下来我们来看如何在 Obsidian 中实作 Breadcrumbs 的功能。

1. 加入 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 时可共用栏位。

2. 更改辨识栏位的方法

如果你不喜欢 parent, sibling, child 当作辨识栏位,可以在 Breadcrumbs 的插件中修改。

若要特殊需求要同时指定多个栏位当作 parent, sibling 或 child,可用 , 隔开。(我会在下一篇介绍我使用多个栏位的笔记方法)

接下来只要在每篇笔记中,都加入 parent, sibling, child 的栏位,并将你想得到的笔记连结放在该栏位後面,Breadcrumbs 就会自动判断可能的相关笔记。

五、Breadcumbs 的其他功能

打开 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(四)

[Day26] - Django-REST-Framework API 期末专案实作 (一)

不知不觉,铁人赛慢慢要进入尾声了,感谢过程中队友们彼此提携,互相提醒。 在前几天中,和大家介绍了 D...

Day22 jQuery 基本教学(二)

selector 选取 JQ 的 DOM 存取方式是透过 selector 来达到索引目标,会先转换...

Day03-搞懂传址、传值? 电脑如何储存资料?

前言 昨日我们学习了资料的型态,今天我们要来了解变数的参考。 Pass by Value ? Str...

CSS 命名基础介绍 DAY40

今天要来介绍 CSS 命名 首先先来介绍 驼峰式命名: https://zh.wikipedia.o...

用 Python 畅玩 Line bot - 05:MessageEvent

除了文字讯息以外, Line 还有很多种讯息型态可以传送,例如图片,音档,贴图......。 我们可...