一 vault 多 DG
一次用一套 digitalgarden plugin
-
給不同的 DG 取一個不同於
dg
的簡單縮寫代號,假設為xxx
(以 Imazingrace 為例,代號為ima
) -
複製(duplicate)既有的
.obsidian/plugins/digitalgarden
-
開啟 digitalgarden 複本裡的
main.js
,把:dg-publish
都改為xxx-publish
dg-home
有 2 處改為xxx-home
(有一個dg-home-link
的這個不要改,其他 2 處改掉就行了)
-
把既有的
.obsidian/plugins/digitalgarden
移到他處保管
(我是移到.obsidian/plugins/.digitalgardens
) -
重開 Obs
-
用 oleeskild/digitalgarden
Deploy
到新的 GitHub repo -
設定 Digital Garden plugin 用的新
repo
、Base URL
、siteName
、baseTheme
-
確定哪個 Obs 筆記頁面要當新的 DG 的首頁,設好
xxx-home
及xxx-publish
,然後即可 publish! -
【可選】可以做一個 xxx-favicon.svg 設為 favicon
(好像還是要用 generator 做,格式才會對?或者也不一定?我本來放在
.obsidian/plugins/digitalgarden
裡但抓不到,後來放 Obs 根目錄就抓得到了)
多套 digitalgarden plugin 並存
?!
20230414 我剛才大著膽子,想到我若要製作 digitalgarden plugin 的複本,原本想說是不是要大改 main.js
,但剛福至心靈,想到把 manifest.json
裡的 id
改掉,這樣 Obs 可能就會識別為另一個 plugin 了?
於是就做了一個複本 plugin,資料夾名稱及 id
都用 digitalgarden-ima
,另外也給它取了不同的 name
以資識別,然後就重開了 Obs……第三方外掛程式裡就出現了不同名的另一個 digitalgarden plugin!
- → 啟用 → 設定選項就是另一套了!
- 左邊 ribbon 區也多了另一個按鈕,點開來,吃的也是另一組 front matter 所抓到的筆記!
- Command Palette 裡也有另一套指令!可以分別執行而不衝突!!!推送到不同的 DG 去了!!!♥
這樣的話,因為我自己有改過 main.js
,很有可能未來被官版更新蓋掉 ∴我可能需要把官版的 plugin 放回來,然後把官版 plugin fork 成我要改的內容,再裝進這個 vault 裡,這樣以後官版 plugin 更新之後,我可以把 upstream 的變更拉過來 merge!
- 更正:因為官版 plugin 專案是原始碼,不是編譯過的
main.js
,所以我把 Obs 裡的 plugin 資料夾自己弄到本機弄個 repo,再開不同的 branch 吧 - 【實做】
- 剛好官版有
2.43.1
,比我的2.41.1
新 → 嘗試更新到master
,然後 pull request 到ima
,手動解決一下 conflict 後產生一個中介 branch,再 merge 到ima
,剩下的 merge 幾乎都沒什麼問題 👍 這樣這個資料夾就可以複製回 Obs vault 使用了 - 記得,有更新 vault 裡的任何 digitalgarden plugin 的話,最好都要重新打開 Obs,以免因為 plugin 未更新而誤用錯誤的設定與 DG 互動,釀成悲劇
- 後來我又繼續修改
main.js
,增加了 3 處 IMA 的識別,才分得出不同的 Publication Center- 甚至,在識別的字串中,增加屬於 IMA 的 icon 💻
- 剛好官版有
20241202 為了開私人 DG(用 Vípǐn,叫 VIP 好了 🤣),所以把 AIU 也獨立出去,以後官版留空不要讓它輕易覆蓋任何自版
- 原 plugin 資料夾改名加後綴
-aiu
Git fork branchaiu
- 安裝官版(今天是 2.57.2),然後更新到 Git branch
official
中 - 更新
aiu
- 線上 merge 太累了不用
- Meld 比較
main.js
也一堆不同,超累 - 改為拿官版
main.js
、manifest.json
手動改該改的 - CSS 不用改
- 上述 3 檔丟進
aiu
中