Hugo 是一套以 Go 語言撰寫的開源靜態網站產生器,在 GitHub 累積 90,125 顆星標與 8,390 次複製。專案於 2013 年 7 月建立,2026 年 10 月 13 日發布 0.168.0 版本,新增動畫圖片的首幀處理選項、影像幀數方法與多語言轉換 API,同時因改用 Go 1.27.2 建置而納入多項安全性修補。本文整理其版本演進、技術架構、資產管線、維護模式、安裝方式與授權條款。

Hugo 儲存庫 README 開頭,顯示專案標誌、測試狀態徽章,以及「A fast and flexible static site generator built with love by bep, spf13, and friends in Go」的定位說明,下方為 Overview 章節開頭

Hugo 是什麼?

Hugo 是一套以 Go 語言撰寫的靜態網站產生器,2013 年 7 月建立,可在數秒內把內容與樣板編譯成純靜態檔案,無需資料庫,並以 Apache 2.0 授權釋出。

該專案的定位是把內容管理與網站交付拆開。使用者以 Markdown 撰寫內容,用樣板定義版型,Hugo 在本地端完成渲染,輸出結果是一組純 HTML、CSS 與 JavaScript 檔案,可直接放到任何靜態主機、物件儲存或內容傳遞網路上。資料庫、應用伺服器與執行階段依賴都不在部署清單內,因此維運面相對單純。

官方說明指出,這套架構適合企業、政府、非營利、教育、新聞與活動網站,也用於文件站、影像作品集、著陸頁、部落格與個人履歷。開發期間可使用內建的網頁伺服器即時預覽變更,完成後再推送至代管服務,或交由 Git 供應商自動建置與部署。

Hugo 0.168.0 發布了哪些重點功能?

0.168.0 於 2026 年 10 月 13 日發布,新增動畫圖片首幀處理選項、影像幀數方法與多語言轉換 API,並為 js.Build 與 css.Build 加入字元集設定。

官方版本說明列出數項新增能力。影像處理方面,新增 imaging.firstFrameOnly 設定與對應的處理旗標,可只解碼與編碼動畫圖片的第一幀;當目標格式不支援動畫時,系統也會自動只處理首幀,若處理全部幀數會超出 WebAssembly 記憶體上限,則提早回報明確錯誤。同一批變更也為影像資源加入 FrameCount 方法,讓樣板能判斷一張圖片是否為動畫。

多語言支援同樣有進展。site.Language 新增 Translate 與 Format* 方法,樣板可以走訪 site.Languages,再針對每一種語言做翻譯與格式化,減少過去需要自行拼接字串的處理。前端資產方面,js.Build 與 css.Build 兩個函式新增 charset 選項。終端機介面則加入對 OSC 7501 程式狀態協定的基本支援,可在相容的終端機顯示工作、完成、閒置與錯誤狀態。

Hugo 0.168.0 修補了哪些安全性問題?

該版本以 Go 1.27.2 建置,連帶修補樣板跳脫、HTTP/2 連線與記憶體耗用等問題,並升級壓縮函式庫以修正行內腳本跳脫缺陷。

安全性是這次更新的實質重點。版本說明指出,0.168.0 以 Go 1.27.2 建置,該版 Go 包含十五項安全性修正,其中與 Hugo 直接相關的有兩項 html/template 跳脫問題:一項是連續運算式在 JavaScript 樣板字串中未重設上下文追蹤,另一項是 yield 未被辨識為正規表示式的先行關鍵字,兩者都可能導致行內 JavaScript 被不正確地跳脫。由於 Hugo 使用自行維護的樣板套件分支,這兩項修正同樣適用。

其餘修正集中在網路層與檔案系統。多項 net/http 修正涵蓋 HTTP/2 伺服器崩潰與記憶體耗用、連線不同步,以及無上限的 Range 標頭解析,這些問題對 hugo server 與遠端資源取得都有影響;golang.org/x/net 同步升級至 0.61.0。另有一項 os.Root.Mkdir 在 Windows 上可能跟隨連結跳脫根目錄的修正。此外,專案使用的壓縮函式庫 minify 升級至 2.24.19,修正行內腳本中 </script> 未被正確跳脫的問題。版本說明同時提醒,Hugo 現在會忽略主題中定義的 module.replacements,只有專案本身可以定義取代規則。

Hugo 的資產管線與模組系統如何運作?

Hugo 內建 CSS、影像、JavaScript、Sass 與 Tailwind 處理管線,可完成打包、壓縮、轉譯與子資源完整性雜湊,並透過模組系統共享內容與樣板。

資產管線是這套工具與單純樣板引擎的分界線。官方說明列出五類處理能力:CSS 管線可打包、轉換、壓縮、產生原始碼對應並整合 PostCSS 與子資源完整性雜湊;影像管線可轉檔、縮放、裁切、旋轉、調色、套用濾鏡、疊加文字與擷取中介資料;JavaScript 管線可把 TypeScript 與 JSX 轉譯成瀏覽器可執行的程式碼,並支援打包、樹狀搖晃、壓縮與雜湊。

Sass 與 Tailwind 各有一條對應管線,同樣具備打包、壓縮、最佳化與雜湊能力。這代表前端資產不需要額外掛上另一套建置工具,即可在網站產生階段完成處理。

Hugo Modules 則處理跨專案的重用問題。使用者可透過公開或私有 Git 儲存庫,共享內容、資產、資料、翻譯、主題、樣板與設定,把主題與共用元件當成版控依賴管理。對同時維護多個站台的團隊而言,這比複製貼上更接近軟體工程的做法。

90,125Stars
8,390Forks
10,026累積提交
933貢獻者(含匿名)
Go主要語言
Apache 2.0授權條款

Hugo 儲存庫首頁頂部,顯示專案名稱「gohugoio/hugo」、說明「The world's fastest framework for building websites.」、約 90.1k 星標與 8.4k 複製數,右側為 About 區塊與主題標籤

Hugo 近期的版本演進有哪些重點?

近四個版本集中強化樣板彈性與安全邊界:加入相對 partial 引用、分支頁 slug、精確數值比較,並收緊 Sass 與 ESBuild 的檔案讀取範圍。

0.166.0 於 2026 年 9 月發布,.Render 方法開始接受選填的上下文參數,讓內容視圖也能接收字典資料;樣板中的 return 關鍵字重新實作,不再局限於 partial,可用於任何樣板與 if、range 區塊內。同版新增 resources.Publish 函式與 Pages 的 IndexOf 方法,關聯內容設定則加入索引值的 tokenize 選項並加快索引建立。

0.167.0 於 9 月 28 日發布,重點有兩項。相對 partial 引用允許以 ./ 或 ../ 開頭的名稱,相對於呼叫端 partial 所在目錄解析,讓整棵 partial 目錄可以整包搬移;分支頁面則開始支援 slug 前端資料,並向下串接,對多語言站台特別實用。設定面新增 build.cleanDestinationDir 搭配保留檔案與目錄的樣式,Hugo 也可在沒有設定檔的情況下完成建置。

安全邊界同樣在這一版收緊。過去由 Sass 編譯器自行解析、可能跟隨符號連結讀取專案外檔案的匯入,改由 Hugo 依 security.allowRead 白名單檢查;由 ESBuild 解析的資產匯入也比照辦理。主題中指向模組上層的符號連結目錄、以及標題 ID 寫入目錄錨點時未跳脫的問題,一併修正。較早的 0.153.0 起,內嵌 LibSass 已進入淘汰程序,官方建議改用 Dart Sass 轉譯器。

Hugo 儲存庫的版本發布頁面,依時間列出 v0.168.0 於 2026 年 10 月 13 日發布,以及 v0.167.0、v0.166.0、v0.165.0、v0.164.0 等版本與發布日期

Hugo 的維護模式與生態現況如何?

專案由建立者 bep 主導,單人累積提交超過 5,900 次,社群提交總數逾一萬次,貢獻者名單超過九百人,未結議題維持在兩百餘個。

貢獻結構相當集中。提交紀錄顯示,專案建立者 bep 累積 5,902 次提交,長期合作者 spf13 為 466 次,維護者 jmooring 為 417 次;其後為 anthonyfok、moorereason、digitalcraftsman 與 noahcampbell。GitHub 的匿名貢獻者統計涵蓋 933 位曾留下提交的參與者,累積提交數達 10,026 次,未結議題約 203 個,觀察者 1,084 位。

版本發行節奏約每月一版,屬於穩定維護而非追趕熱潮的專案。0.164.0 於 2026 年 7 月發布,0.165.0 於 8 月,0.166.0 於 9 月,0.167.0 於 9 月底,0.168.0 於 10 月中,中間穿插依賴更新與安全性修正。商業面則由 JetBrains 與 CloudCannon 等專案贊助者支持,官方網站、文件與社群論壇由專案團隊維護。

Hugo 如何安裝並開始建置網站?

可從預編譯二進位檔、作業系統套件管理員或原始碼三條路徑安裝;從原始碼建置需要 Go 1.27.0 以上版本,建立站台後執行 hugo server 即可開始本機預覽。

官方提供三條安裝路徑:直接下載預編譯二進位檔、透過作業系統的套件管理員或套件庫安裝,或自行從原始碼建置。從原始碼建置需要 Git 與 Go 1.27.0 以上版本。專案依功能切成四個版本:標準版包含核心功能;deploy 版可直接部署到 Google Cloud Storage、AWS S3 或 Azure 儲存容器;extended 版保有 LibSass 支援,需要 C 編譯器;extended 與 deploy 兼具的版本則同時包含兩者。官方建議除非需要額外功能,否則採用標準版即可。

# 標準版(從原始碼)
CGO_ENABLED=0 go install github.com/gohugoio/hugo@latest

# 建立站台與內容,啟動本機預覽
hugo new site myblog
hugo new content posts/first-post.md
hugo server

Hugo 常見問題有哪些?

以下整理 Hugo 是否需要資料庫、建置速度為何被強調、多語言支援方式、與其他靜態網站產生器的差異,以及商業使用時的授權考量等常見疑問。

Hugo 需要資料庫或後端伺服器嗎?

不需要。輸出結果是純靜態檔案,部署時只要一個能提供檔案的服務即可。這個特性同時帶來兩面效果:維運成本與被攻擊面都大幅降低,但即時使用者互動、會員系統或伺服器端渲染必須外掛其他服務處理,或改用帶執行階段的框架。

Hugo 的建置速度為何常被強調?

核心以 Go 撰寫並採用並行處理,官方描述為可在數秒內完成整站渲染。對內容數量持續成長的站台而言,建置時間直接影響部署頻率與編輯體驗;當文章累積到數千篇時,這個差距會比初期更明顯。

Hugo 支援多語言網站嗎?

支援。專案內建多語言架構與分類法系統,0.167.0 起分支頁面的 slug 也向下串接,可以為不同語言版本指定在地化路徑;0.168.0 進一步為 site.Language 加入翻譯與格式化方法,減少手動拼接字串的需求。

Hugo 與其他靜態網站產生器有何差異?

差異主要在語言與資產處理的完整度。Hugo 以單一 Go 二進位檔執行,安裝時不需要額外的執行階段;CSS、影像、JavaScript、Sass 與 Tailwind 管線都已內建。若團隊的技術棧以 JavaScript 為主、需要大量自訂伺服器邏輯,採用生態系更貼近的方案可能更順手。

Hugo 的授權條款允許商業使用嗎?

允許。專案以 Apache 2.0 授權釋出,可用於商業專案、修改與再散布,需保留版權與授權聲明。真正的限制通常來自使用者自行引入的主題與外掛,選用前應逐一確認其授權條款。

出處連結有哪些?

本文資訊整理自 Hugo 的 GitHub 儲存庫、官方文件與版本發布紀錄,涵蓋版本說明、安裝指引、模組系統與授權條款。

  • GitHub 儲存庫:https://github.com/gohugoio/hugo
  • 官方網站與文件:https://gohugo.io
  • 版本發布紀錄:https://github.com/gohugoio/hugo/releases
  • 功能總覽:https://gohugo.io/about/features/
  • 安裝指引:https://gohugo.io/installation/

總結:Hugo 適合什麼團隊?

適合重視建置速度、低維運成本與靜態交付的內容網站與文件站;若需要即時使用者互動或伺服器端渲染,則須另尋方案。

Hugo 的價值在於把交付形式固定下來:內容與樣板在本地端編譯成靜態檔案,主機只需提供檔案,安全性與維運負擔隨之下降。90,125 顆星標、逾一萬次提交與九百多位貢獻者,反映的是一套被長期維運的基礎工具,而不是依賴單一商業模式支撐的專案。

0.168.0 的內容也說明其維護取向。新功能集中在影像與多語言這類實際會用到的細節,同期卻同時帶入十五項上游客戶端與網路層修正,並收緊主題讀取檔案的權限邊界。對已經把網站交給靜態架構的團隊而言,這類偏重安全與相容性的更新節奏,比功能堆疊更具參考價值。