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 跟看板。另外看板可以讓我知道 side project 整體做過些什麼、打算做什麼、正在做什麼,能比較全面的看到整個 project。
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() 位置也要修改。