懶人做工具遷移

比起寫部落格文章,我輩更熱衷於整理部落格的工具。往往文章寫沒幾篇,工具換了好幾套。

就像本站的風格又換了。沒錯,我又換了一次工具。這次改用 hugo

hugo 跟 hexo 相同,都是 static sige generator,從 markdown 檔案生出 html。但我實在沒辦法喜歡 Node.js 生態系,隨便一個小工具就要裝許多東西到 node_modules 底下。

環境裝好了不會有什麼大問題,但是換電腦的時候就有點風險,屆時可能因為各種原因使得 dependencies 無法裝齊,連帶工具不能用,不能產生靜態檔。備份整個 node_modules 可能是個解法,但是又覺得哪裡不對勁。

AI 幫我 Migrate 到 Hugo#

hugo 使用 Go,一個 binary 就搞定。像我會在 Linux 跟 Mac OS X 之間切換,要是真的想備份。兩個 binary 就搞定,大概擺十年都不會壞。

寫的文章都是 md 檔案,理論上很輕鬆就能從 hexo 遷移到 hugo。但實際上還處理滿多小細節,包括 theme 的選用與客製化,slug 的設定,assets 檔案的取用。光是後兩者就會影響到檔案的擺放方式,以及文章的 metadata header。

要處理這些東西,沒什麼技術難度。官方文件讀懂之後,老實地手動修正就好。幾乎都是勞力活,但是想到就會頭皮發麻,只能繼續屈就 Node.js。

不過這段時間 coding agent 進化這麼多,當然就要叫 AI 去做。叫 AI 寫 script 幫我所有文章的 header,客製化 theme,增加 archives 頁面,以前要花好幾天處理的事情,現在一個下午就全部整理完,弄出我想要的成果。

這種 migration 的雜事,有 AI 真好。

其實,我一開始沒有打算要改 Blog 系統

從 MkDocs 到 zensical#

我自己的筆記系統,從 pmwiki,到 gitit,換到了 MkDocs。雖然 MkDocs 是 python 寫成,但是能用 container 包起來,用了幾年也是相安無事,理論上應該要能長長久久。

但是最近發現 Material for MkDocs 會噴 warning,因為不支援 MkDocs 2.0。主要是因為 MkDocs 2.0 會讓 Material for MkDocs 很難繼續做事,所以未來會進入維護模式。

於此同時,Material for MkDocs 的團隊自己弄了一套 Zensical,用 Rust 寫成。雖然現在因為一些相容性的關係,還要跟 python 綁在一起。但是 Zensical 有打算要變成 pure Rust,屆時也是一個 binary 就全部搞定。

一開始只是想要讓 Warning 不見,突然就開始工具遷移,要從 MkDocs 換過去 Zensical。雖然 AI Agent 有機會全部自動做完,但我按耐不住客家精神,還是逐步指揮,節省 token 用量的前提進行 migration。

大概花了一個小時左右,做完個人 wiki 筆記的遷移。

接著處理 dot files#

有一就有二。順利弄完 zensical,接下來就想到 dot files。

我一直都有用 dotbot 管理 dotfiles,方便是方便,但它的設計用到 git submodule,要做完 bootstrap 才能正常使用這個工具。看到 git submodule 我就心情不好,對我來說,這種工具就是要 offline 沒網路也能好好工作,尤其在新電腦上面,各種怪狀況都有,更是不能假設網路一定正常,此時 dotfiles 裝不好就本末倒置了。

雖然 dotbot 功能不少,但我真正在用的,也只有一小部分的功能。

於是花了 20 分鐘專心寫 spec,很快 AI 就生出一個滿足我所有需求,完全不需要任何 3rd party library 的 single python file,乾淨又簡單,以後缺什麽功能就直接叫 AI 改,改單檔的 python 對 AI 來說太簡單了。

於是就改了 blog 系統#

既然有一又有二,無三不成禮。wiki 跟 dotfils 都換成了 single binary 就能搞定的方案,當然就會手癢,想要把 Blog 也整理一下,盡量擺脫這種需要裝一大堆相依性的工具。

寫筆記、寫文章、管理 dotfiles,這三件事情對我很重要,是我管理知識跟掌握系統的重要事項。折騰了兩天,現在把我會用到的工具收斂到少數幾個 single binary,有種剛刷完牙的清爽感。

AI 寫小工具好方便#

以前寫 script 都要花上很多時間,現在這種反覆的任務,很輕鬆就能要 AI 寫個一次性的 script,用完即丟。真是方便到覺得自己很不環保

雖然寫 script 小工具的能力變得不值錢了,但是,覺得生活品質(?)有顯著提升呢!