Obsidian dataviewjs 查詢多 kanban 中的 list
使用情境
- 使用 Obsidian、安裝 kanban plugin
- 有多個不同主題的 kanban
- 每個 kanban 依據 status 分 list,有名稱為
WIP
的 list - kanban 的檔名固定為
[主題] Kanban
想達成的目的
在 daily note 或 homepage 顯示所有 kanban 的 WIP list 內容,可以一眼看出目前有哪些正在進行的事項。
迷之音:為什麼不直接用 todo list 就好?
這算是我自己的習慣,todoist 是我每天會開來看有什麼今天得做的事情的 todo list app,拿來放生活瑣事、做完勾掉通常不會回去翻的待辦事項,像是洗衣服、買日常用品等等。todoist 不放偏向「有目標、維持性或比較像 project」的事情,像是自己的 side project、正在閱讀的書籍等等。
嘗試過用 todoist 來管理 side project,但不習慣在 todo list 寫筆記,而且完成勾掉後預設顯示是隱藏、之後不太會想到到 todo list app 翻筆記。後來改用看板管理這類型的事項,發現用得還算順手,因為我自然而然在兩種模式下開啟「待辦清單」,一是有時效性的「我今天得做什麼?」,二是有段空檔時想知道「最近正在進行些什麼?挑個來繼續吧!」,這兩種模式剛好對應到 todoist 跟看板。
Obsidian 使用 dataviewjs query
看板系統我一開始先用 trello,最近用起 obsidian 也就裝了 kanban plugin,因為有換換病跟搬搬病也就把 trello 的東西搬到 obsidian。
我有兩個主要看板,分別是 side project 跟生活中要持續的事,兩個看板都有一個 WIP 清單,表示「正在做」事項。用了幾天想有個統一的地方可以一次看到兩個看板的 WIP 清單內容,於是邊跟 Sonar 聊天邊寫出了下面這段 dataviewjs query:
1 | let pages = dv.pages(); |
就能顯示出多個 kanban 的內容:

須注意的是放這個 script 的 note 不能有 ## WIP
,否則整個 obsidian 一開該 note 就會當掉。我懷疑是因為會 infitie loop,但我沒有證據 aka 還懶得深究。解法簡單粗暴:用一般編輯器打開 obsidian 那個 note,把 ## WIP
改掉即可。
這 script 偏 hard code,在不同前提下需要修改才能使用,像是不叫 WIP 的話 regex 要改、用來替換的 heading 3 字串 slice()
位置也要修改。