Table of Contents(TOC)就聽得多,Maps of Content(MOCs)又係咩嘢意思呢?
呢條片簡單介紹咗 MOCs。概括嚟講就係入口,其實同 TOC 做嘅嘢差唔多,但 MOCs 比較傾向一個概念,可以應用喺筆記軟件、網頁、甚至係 File Systems。
見到條片入面親自一篇一篇筆記拉去一個 MOC 入面,之前雖然唔知道有 MOCs 呢樣嘢,但我喺用 Joplin 嘅時候已經做過類似嘅事情。一開頭會 update,之後就隔好耐先 update,到最後就唔會 update。
MOCs 有用但又冇咩用
MOCs 對我嚟講係冇乜點用,但一用嘅時候就好有用嘅嘢。一個最簡單嘅 MOC 就係 search,其實用一個 keyword 就已經可以 form 到一個基本嘅 MOC 出嚟。所以有一排我索性將筆記分成兩部分:Apples 同 Bananas。Apples 係一啲會經常 update 嘅筆記,例如係現時做緊嘅嘢、To-Do;Bananas 係一啲我唔常用嘅筆記。做法類似 email 嘅 inbox 同 archive。
如此執行起上嚟非常簡單,每次睇到啲片話乜嘢學長學姐高效乜乜乜,又 PARA 又盛,聽到都覺得頭痛。
主要係我係一個好懶又好中意整齊嘅人,有種一不做二不休嘅感覺,知識入口呢家嘢聽起身好美好,整起上嚟冇錯係井井有條,有條理令到筆記好用好多,但整嘅時候除咗要處理筆記本體,仲要將佢安放埋喺 MOC,總係覺得好晒時間同埋好易遺漏,再加上我係一個好易入坑又好易跳坑嘅人(啫係半途而廢),就會有種「之後未必會用返」嘅諗法,令到我更加唔想整。
但最近遇到 Dataview 呢個插件,令我產生咗新嘅想法。
Dataview
Dataview 利用 Obsidian 嘅結構,你能夠想像到嘅,只要係 Obsidian API 入面有嘅嘢,基本上都可以拎嚟用,對我嚟講佢就好似 advanced search,可以加好多條件畀佢,又可以 customise 最終嘅 output。喺呢篇文入面有提到幾種 use case。而我目前嘅做法都係用 front matter 嘅 properties 為主,相對簡單。
我用 Hugo 出嘅文會有以下 front matter properties:
---
title: Obsidian 與 Maps of Content
date: 2024-04-07T17:30:25+08:00
---
用 dataviewjs 整咗個文篇大集合,用年份分組:
for (let group of dv.pages('"Laboda"').filter(i=>i.date!==undefined).sort(i=>i.date, "desc").groupBy(p => p.date.toFormat("yyyy")).sort(g => g.key, 'desc')) {
dv.header(2, group.key);
dv.table(["Date","Title"],
group.rows
.map(i=>[i.date.toFormat("dd-MMM "),`[[${i.file.path}|${i.title}]]`]))
}
效果如下:

兩個層級一樣可以用,以另一個 folder 做例子,第一層係年份,第二層係主題:
---
year: 2024
book: Matthew 馬太福音
---
for (let group of dv.pages('"Bible"').filter(i=>i.file.name!=="index").sort(i=>i.file.name, "desc").groupBy(p => p.year).sort(g => g.key, 'desc')) {
dv.header(2, `📝 ${group.key}`);
for (let subgroup of group.rows.groupBy(p => p.book)) {
dv.header(3, subgroup.key);
dv.list(subgroup.rows.map(i=>i.file.link))
}
}
其中 .filter(i=>i.file.name!=="index") 係用嚟篩走做目錄嘅 page。配合 Front Matter Title 插件使用,將 file name index display 用 title 取替:
---
title: Bible
---
效果如下:

除咗用 front matter 嘅 properties, 亦可以利用 Obsidian 嘅 object 嚟做,基本上就係對住 Obsidian 嘅 document 嚟玩。
列出所有 pdf file:
dv.list(app.vault.getFiles().filter(file => file.extension === 'pdf').map(file => dv.fileLink(file.path,false,file.basename)))
下一步
用咗 Dataview 之後,我喺絕大部分情況之下都唔需要去 update MOCs,可以放膽去做卡片盒筆記,最近亦更新咗 Remotely Save 插件,嘗試自動 sync 嘅功能。目前係 sync 去 Dropbox。
Dropbox 免費有 2 GB 可以用,用呢條 link申請可以得到額外 500 MB。
除咗 Dataview 之外,我亦同時嘗試緊唔同嘅插件,希望可以打造出一個簡便嘅環境,令記錄成為享受而唔係負擔。
- 完 -