這是 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 筆記軟體的你,可以大幅地激發你的靈感。