iT邦幫忙

2021 iThome 鐵人賽

DAY 24
0
Software Development

Obsidian 雙向鏈結型筆記工具研究與應用,打造屬於個人的專業知識圖譜系列 第 24

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


上一篇
Day 23 : 插件篇 02 — 如何在 Obsidian 中自動彙整筆記?使用 Dataview 查詢與呈現符合條件的筆記
下一篇
Day 25 : 插件篇 04 — 如何讓 Obsidian 自動推薦關聯筆記 (下)?介紹我的筆記架構與 Breadcrumbs 實戰應用
系列文
Obsidian 雙向鏈結型筆記工具研究與應用,打造屬於個人的專業知識圖譜30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言