Hugo? Typst? blog 變更與心路歷程

短暫的 Hexo 時期 (2022-5 ~ 2022-10)

因為作者也是台灣人,做部落格的時候就優先考慮他的工具。其實我對於 hexo 沒有什麼客觀的負評,主要還是偏好問題:

後來用沒多久就跳去 hugo 了。

Hugo 時期 (2022-10 ~ 2026-08)

優點

換過來 hugo 之後用了最久(四年左右),很多地方都很滿意。除前述改進外,還有:

痛點

我很滿意 hugo 的這些優點,所以開開心心地寫了一些技術文章、也會在上面寫一些 latex. 經過一段時間使用,我當時使用的 Hugo + Blowfish 設定,仍有一些地方讓我不太滿意:

萬惡的 mermaid

我更喜歡 Typst 的數學語法

我當時用 Blowfish 的 KaTeX 功能顯示數學公式,所以這裡比較的是 KaTeX 支援的 TeX 數學語法與 Typst 的寫法,不討論完整 LaTeX 文件的 PDF 編譯速度。我用 Typst 寫過一陣子的 PDF,覺得很多地方的語法比較友善。例如:

  1. 中英混合時,我覺得 Typst 的原始碼更好讀:

    𝑥=1其中 𝑥 是節點數量
        $$
        x = 1 \quad \text{其中 } x \text{ 是節點數量}
        $$
    
    $ x = 1 quad "其中 " x " 是節點數量" $
  2. typst 很多數學語法更簡單

    (𝑎𝑏𝑐𝑑)
        $$
        \begin{pmatrix}
        a & b \\
        c & d
        \end{pmatrix}
        $$
    
      $ mat(
      a, b;
      c, d;
    ) $
  3. 我也更偏好 Typst 用函式、參數和資料型別來組合內容的方式。相較於 TeX 的巨集寫法,這種方式更直覺,也比較容易修改。

Typst 時期 (2026-08 ~ 現在)

Typst 生 md 給 Hugo?

最早我想讓 typst 處理我討厭的 mermaid 和用了一陣子的 latex 語法,產生 md 之後再丟給 hugo. 後續就可以串原有的 hugo. 看過大佬 如何在 Hugo 中使用 Typst 编写文章 做了類似的事情。他自己維護一個 hugo fork 來把 typst 文件編譯成 html.

後來發現好像可以連 markdown 都捨棄

研究了一下覺得轉 md, 每一家的 md 規格細節都不太一樣,我也不想自己維護一整套基礎建設,索性直接跳去純 typst 部落格的世界。調查了一下,最後找到 Calepin 這個靜態網站生成器完美解決了我所有痛點!

結論:首頁 speed index 耗時縮短 31% (3.5s → 2.4s)

現在部落格完全不再需要執行期算繪 mermaid 圖 / latex 算式,所有滾動的體驗好很多。

Hugo 網站的 Lighthouse 測試

Hugo 網站的 Lighthouse 結果:效能 98 分,Speed Index 3.5 秒,LCP 1.6 秒。

Typst / Calepin 網站的 Lighthouse 測試

Typst / Calepin 網站的 Lighthouse 結果:效能 99 分,Speed Index 2.4 秒,LCP 1.7 秒。