關於
功能
框架
- 多平台
- Hugo 的單一可執行檔可安裝於 Linux、macOS、Windows 以及更多平台上。
- 多語言
- 將專案本地化至各語言與地區,包括翻譯、圖片、日期、貨幣、數字、百分比與排序規則。Hugo 的多語言框架支援單一主機及多主機配置。
- 輸出格式
- 將網站的每個頁面輸出為一種或多種格式,並根據頁面類型、區段及路徑進行細緻控制。HTML 為預設輸出格式,但您也可以新增 JSON、RSS、CSV 等格式,例如建立 REST API 以存取內容。
- [模板]
- 使用變數、函式與方法來轉換內容、資源與資料成已發佈的頁面。雖然 HTML 模板最為常見,但您可以為任意輸出格式創建模板。
- [主題]
- 使用 Hugo 社群貢獻的數百個主題以減少開發時間與成本。這些主題適用於企業網站、文件專案、圖像作品集、著陸頁、個人與專業部落格、履歷表等。
- 模組
- 創建或導入包含範本、資產、內容、資料、模板、翻譯表、靜態檔案或設定的組合包,以減少開發時間與成本。模組可以作為新網站的基礎,或用於增強現有網站。
- 隱私
- 設定 Hugo 內建模板及短碼的行為,協助遵守地區性隱私法規,包括 GDPR 和 CCPA。
- 安全
- Hugo 的安全模型以模板和設定作者為可信前提,內容作者則不被信任。此模型可生成 HTML 輸出並防範程式碼注入。此外,還有其他保護措施,例如防止對任意應用程式的呼叫、限制特定環境變數的存取、阻止連線至任意遠端資料來源等。
內容撰寫
- 內容格式
- 使用 Markdown、HTML、AsciiDoc、Emacs Org Mode、Pandoc 或 reStructuredText 撰寫內容。Markdown 為預設內容格式,遵循 CommonMark 與 GitHub Flavored Markdown 標準。
- Markdown 屬性
- 為 Markdown 圖片及區塊元素(如引言、程式區塊、標題、水平分隔線、列表、段落與表格)添加 HTML 屬性,例如
class
和 id
。
- Markdown 擴展
- 利用內建 Markdown 擴展功能創建表格、定義列表、註腳、任務清單、插入文字、標記文字、下標、上標等。
- Markdown 渲染掛鉤
- 自定義 Markdown 轉換為 HTML 的方式,用於渲染引言、程式區塊、標題、圖片、鏈接和表格。例如,將每個單獨的圖片渲染為 HTML
figure
元素。
- 圖表
- 使用程式區塊和 Markdown 渲染掛鉤在內容中嵌入圖表。
- 數學運算
- 使用 LaTeX 或 TeX 排版語法在 Markdown 中包含數學方程與表達式。
- 語法高亮
- 使用 Hugo 的內建語法高亮功能為程式碼範例添加語法高亮,預設支援 Markdown 中的程式區塊。語法高亮支援數百種程式語言與多種樣式。
- 短碼
- 使用 Hugo 的內建短碼,或創建自己的短碼來插入複雜內容。例如,使用短碼插入
audio
和 video
元素,從本地或遠端數據源渲染表格,插入其他頁面的片段等。
內容管理
- 內容適配器
- 創建內容適配器,動態新增內容至網站構建。例如,使用內容適配器從遠端數據源(如 JSON、TOML、YAML 或 XML)創建頁面。
- 分類
- 通過分類系統建立頁面之間的簡單或複雜邏輯關係。例如,創建 “作者” 分類並為每頁指派一個或多個作者。分類系統還可提供一個倒排且加權的索引,按相關性排序渲染相關頁面的列表。
- 數據
- 使用本地或遠端數據來源(如 CSV、JSON、TOML、YAML 和 XML)增強內容。例如,創建短碼以從遠端 CSV 文件渲染 HTML 表格。
- 選單
- 使用 Hugo 的選單系統快速存取內容,選單可根據全域配置或按頁面配置自動生成。選單系統也是 Hugo 多語言架構中的關鍵元件。
- [網址管理]
- 透過全域配置或逐頁面設定,將任意頁面設置為任意路徑。
資產管道
- 圖像處理
- 進行圖片轉換、調整大小、裁剪、旋轉、顏色調整、應用濾鏡、覆蓋文字和圖片,並提取 EXIF 數據。
- JavaScript 打包
- 將 TypeScript 和 JSX 轉譯為 JavaScript,進行打包、移除無用程式碼、壓縮、生成原始碼映射並執行 SRI 雜湊。
- Sass 處理
- 將 Sass 轉譯為 CSS,進行打包、移除無用程式碼、壓縮、生成原始碼映射,並與 PostCSS 整合。
- Tailwind CSS 處理
- 將 Tailwind CSS 的實用程式類編譯為標準 CSS,進行打包、移除無用程式碼、最佳化、壓縮,執行 SRI 雜湊,並與 PostCSS 整合。
效能
- 快取
- 減少構建時間與成本,透過全域或上下文快取模板結果。例如,快取資產管道的結果,以避免每次渲染頁面時重複處理。
- 分段
- 將網站分段以減少構建時間與成本。例如,每小時渲染一次首頁與 “新聞區段”,每週渲染一次整個網站。
- 壓縮
- 壓縮 HTML、CSS 與 JavaScript 以減少檔案大小、頻寬消耗及載入時間。