點燈坊

失くすものさえない今が強くなるチャンスよ

Hugo 優缺點比較

Sam Xiao's Avatar 2024-01-18

儘管每年都有新的 SSG 問世,但 Hugo 仍然是很多人的首選,本文分析 Hugo 的優缺點,可視每個人的需求決定適不適合 Hugo。

Version

Hugo 0.121.1

優點

安裝容易

Hugo 直接提供各平台的 binary 版本,不必如 Ruby、 Node.js 或 Python 為環境版本傷腦筋,目前也原生支援 Apple M1 系列 CPU。

編譯速度快

SSG 會面臨的終極問題都是隨著 markdown 檔案增加,編譯速度會斷崖式下滑,尤其 JavaScript SSG 都有此問題,Hugo 則充分發揮 Go 速度優勢。

官方支援

JavaScript SSG 會以眾多的 plugin 或 package 組合而成,但 Hugo 則傾向於由官方直接支援,若你不喜歡 JavaScript 需搭配一堆 plugin 與 package 拖慢速度,則 Hugo 這種 single binary 很適合你。

缺點

Go Template

Hugo 不使用前端常用的 Vue 或 React,而是自家的 Go Template,這也造成一定的學習門檻,很多人因此而卻步,但這也是 Hugo 編譯速度超快的原因之一。

JavaScript 整合

Hugo 畢竟使用 Go 開發,與 JavaScript 生態系的整合問題比較多,典型的就是 Hugo 與 TailwindCSS 搭配問題,直到最近才由 Hugo 官方解決,若要搭配一些較新的 JavaScript package 或 tooling,可能會遇到一些未知的問題。

Plugin 支援

由於 Hugo 傾向於由官方解決,不像 JavaScript SSG 可以掛上各式各樣 plugin 支援,因此很多功能必須自行處理,或等 Hugo 官方解決,因此靈活性沒 JavaScript SSG 佳。

Conclusion

  • 很多人認為要先學會 Go 才能駕馭 Hugo, 這完全是錯誤觀念,進而改選擇 JavaScript SSG,事實上只有 Go Template 稍微帶有 Go 風格而已,其他部分仍是 HTML / JavaScript / CSS
  • Hugo 雖然使用 Go Template,但仍然可搭配 Petite-vue 或 Alpine 這類 JavaScript Template 一起使用
  • Hugo 是 CLI 也是 framework,且已經發展多年趨於穩定,目前改版大多只是為了支援 JavaScript 日新月異的生態系統而已,因此可安心用於 Production