Obs138|以標籤為基底,用Dataview形成索引筆記的嘗試

索引筆記是一種特殊型態的筆記,它不含內容,而是指向實際內容筆記的鏈接筆記,就像圖書館裡的索引卡。索引筆記的用途是:

  1. 列出相關內容的筆記清單
  2. 內容分類供日後方便檢索
  3. 減少孤兒筆記的產生

索引筆記的內容我以前都是手動自行維護,但我也在嘗試使用Dataview來自動維護,主要使用標籤來分類,逐步形成不同分類的索引筆記。

今天介紹一下我在製作索引筆記上的小小心得,希望能達到斆學相長的目的。

1. 人工建立索引

人工建立索引筆記的較佳步驟是:

  1. 在筆記分類的索引筆記裡以內部鏈接的形式添加新的鏈接,可視為「登錄、註冊」的操作
  2. 點擊新的鏈接以建立新筆記

這個人工登錄的流程需要較高的自制力才能形成較好的運作,如果忘了或沒空去登記,新筆記可能就會變成孤兒筆記。

2. 使用標籤以自動形成索引

使用Dataview來形成索引的作法是在新筆記裡提供足夠多的標籤,在索引筆記裡就能用標籤當條件以自動形成索引。

使用Dataview來形成索引的好處是:

  1. 不用額外花時間在索引筆記裡登錄新筆記
  2. 因為索引使用的標籤是預先決定的,新筆記的標籤會有已知的侷限,可有效減少標籤的發散
  3. 能以更有彈性的方式來查詢標籤或更靈活的查詢條件,以形成需要的索引分類
  4. 索引能依筆記的變化而隨時以Dataview查詢調整

2.1. 索引的階層

為了管理所有的索引筆記,因此建立了第一階層的大類 000-Index。我的需要管理的筆記大部份集中在PARA的Areas和Resources這兩個中類, 每個中類裡又依筆記數量和使用頻率而區分出小類,從而形成三階層的索引筆記體系統,範例如下:

  • 000-Index (大類)
    • 200-Index (中類)
      • 210-Java-Index (小類)
      • 210-JavaScript-Index
      • 210-Tools-Index
      • ...
    • 300-Index (中類)
      • 310-3C-Index (小類)
      • 310-Obsidian-Index
      • 310-Tools-Index
      • ...
    • ...

索引筆記必須有 #index 標籤,或建立一個筆記類型的特性,特性值是Index

2.2. 大分類查詢

  • 檔名: 000-Index
  • 找出所有的索引筆記
```dataview
table join(aliases, "<br>") as Aliases, 
  substring(created,0,10) as Created, substring(modified,0,10) as Modified
from #index
where type="Index" and file.name!=this.file.name
sort file.name
```

gh

[!TIP]+ 建議
在Dataview上方寫下使用的資料來源與條件,如上可減少查看語法的時間

2.3. 中分類索引

  • 檔名: 100-Index、200-Index、300-Index
  • from #index and #resources
```dataview
table join(aliases, "<br>") as Aliases, join(file.tags, " ") as Tags, 
  substring(created,0,10) as Created, substring(modified,0,10) as Modified
from #index and #resources
where file.name != this.file.name
sort file.name
```
  • 其下會分門別類以Dataview查詢出所有屬於此分類的所有筆記,例如:
```dataview
table join(aliases, "<br>") as Aliases, join(file.tags, " ") as Tags,
  substring(created,0,10) as Created, substring(modified,0,10) as Modified
from ("300-R興趣" or #resources)
where type="專案筆記"
sort file.name
```
  • 在添加標籤的過程中,為防遺漏,因此將分類的資料夾也列入查詢資料源

2.4. 小分類索引

  • 檔名: 210-Tools-Index、310-Tools-Index等
  • 有足夠多的某類筆記或使用頻率高時,會分出新的小分類
  • 列出有 #tool 標籤的筆記,排除同時有 #youtube 與 #windows 的筆記
```dataview
table join(aliases, "<br>") as Aliases, join(file.tags, " ") as Tags, 
  substring(created,0,10) as Created, substring(modified,0,10) as Modified
from ("300-R興趣" or #resources) and #tool and !#youtube and !#windows
where type="專案筆記"
sort file.name
```

[!TIP]+ 結論
依需求自行撰寫Dataview的查詢,隨著筆記的演進動態調整,例如依筆記增長而做分類的分割或合併

3. 使用Dataview的問題

  • 被Obsidian鎖定(Lock in):Dataview只能在Obsidian裡使用
  • 筆記間的階層關係無法表示 (筆記與索引筆記的反向鏈接無法建立)
  • Strange New World外掛無法顯示參考數字
  • 因為無法找到反向鏈接,因此筆記與索引筆記的關聯圖也不會呈現
  • Dataview在閱讀模式時才能搜尋到查詢結果內容

4. 相關鏈接

✅ 參考: MOC的组织

5. 教學影片

https://youtu.be/53FOyzgn8Hk

##

您可能也會有興趣的類似文章

您可能也會喜歡…

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *