Hugo
使用 Go 编写、以快速构建和完整内容管理能力著称的静态站点生成器。
项目概述
Hugo 将 Markdown、模板、数据和资源编译成可直接托管的静态网站。它以单个 Go 可执行文件提供开发服务器、多语言、分类体系、图片处理和资源管线,尤其适合大量内容页面。
Hugo 是采用 Apache-2.0 许可证的开源静态站点生成器,核心使用 Go 编写并以单个可执行文件分发。它读取 Content、Front Matter、模板、数据、翻译和资源,在构建阶段输出 HTML、RSS、Sitemap 及其他格式。Hugo 不要求浏览器端 JavaScript,并通过 Page Bundle、Taxonomy、多语言、Hugo Modules 和 Assets Pipeline 覆盖从个人博客到大型文档站的内容工程需求。
主要特点
Hugo 把高性能构建、结构化内容和成熟发布能力集中在一个独立工具中。
高速静态构建
Go 实现和并行处理使 Hugo 能快速生成大量内容页面,并通过开发服务器与 LiveReload 提供即时反馈。
内容组织与 Page Bundle
Section、Branch Bundle、Leaf Bundle 和 Page Resource 可把文章、图片、附件及子内容组织为清晰层级。
Go 模板系统
使用 html/template、Context、函数、Method、Partial 和 Base Template 构建 Home、Page、Section、Taxonomy 等页面。
Taxonomy 与内容导航
内置 Tag、Category、自定义 Taxonomy、Menu、Pagination、Related Content、RSS 和 Sitemap 等常见内容能力。
Assets Pipeline
Hugo Pipes 可处理 Sass、JavaScript、指纹、压缩与资源组合,Page Resource API 还支持图片缩放、裁切和格式转换。
完整多语言支持
支持单域名或多域名语言站点,可本地化内容、URL、菜单、日期、货币、数字和排序规则。
主题与 Hugo Modules
可通过 Theme、Go Module 和文件挂载复用布局、组件、内容与资源,同时允许项目文件覆盖上游实现。
多种输出格式
除 HTML 外可生成 RSS、JSON、CSV、纯文本或自定义媒体类型,适合 Feed、搜索索引和数据发布。
适用场景
适合页面数量较多、内容层级清晰,并希望快速生成纯静态站点的项目。
大型技术文档
快速构建、Section、菜单、多语言和代码高亮适合产品文档、API 指南和版本化知识库。
博客与新闻网站
发布日期、草稿、过期内容、Taxonomy、Related Content 和 RSS 能覆盖成熟的编辑发布流程。
企业与组织官网
静态部署、主题复用和多语言能力适合品牌站、公共机构网站、活动页面与区域站点。
图片与作品集网站
Page Bundle 和内置图像处理可将原图与内容放在一起,并在构建时生成响应式尺寸和格式。
Headless CMS 发布层
CI 可从 Git 或 CMS 获取内容后运行 Hugo,生成面向高访问量、低运行成本的静态前端。
多语言内容平台
翻译关联、本地化 URL、语言权重和共享 Page Resource 适合需要多地区版本的内容项目。
优点与注意事项
技术选型不仅要看能力,也要理解它带来的团队成本。
主要优点
Hugo 擅长的地方
- 单个可执行文件即可构建和预览,不依赖 Node.js 包安装
- 大规模内容站构建速度快,开发服务器反馈及时
- Page Bundle、Taxonomy、多语言和 Feed 等内容能力成熟
- 图片处理与资源管线内置,常见静态优化无需额外工具
- 默认生成静态文件,不要求客户端 JavaScript 或专用服务器
- Theme 与 Hugo Modules 可复用完整站点能力并支持本地覆盖
需要注意
采用前应考虑的问题
Context、Pipeline、变量作用域和大小写 Method 与 JavaScript 模板差异明显,复杂模板的错误信息也需要经验。
Home、Page、Section、Taxonomy、Term、语言、格式和 Layout 会共同决定最终模板,项目应保持清晰命名约定。
登录、写入、实时协作和个性化通常需要客户端脚本、外部 API、边缘函数或独立后端。
直接复制大量主题模板虽然方便,但会失去上游更新;应优先使用配置、Partial 覆盖和 Modules 管理差异。
远程数据、海量图片转换和复杂模板查询仍会增加时间与内存,应使用缓存、PartialCached 和合理资源策略。
普通 hugo 构建可能保留 public 中的旧文件,CI 应从干净工作区构建或显式管理目标目录,避免发布过期内容。
快速开始
使用当前 CLI 创建项目,配置站点,并通过现代 home 模板渲染文章列表。
bashhugo version
hugo new project my-hugo-site
cd my-hugo-site
mkdir -p layouts/_partialstoml# hugo.toml
baseURL = "https://example.org/"
locale = "zh-cn"
title = "开源项目志"
[params]
description = "记录值得关注的开源软件"html<!-- layouts/home.html -->
<!doctype html>
<html lang="{{ site.Language.LanguageCode }}">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<title>{{ site.Title }}</title>
</head>
<body>
<main>
<h1>{{ site.Title }}</h1>
<p>{{ site.Params.description }}</p>
{{ range site.RegularPages }}
<article>
<h2><a href="{{ .RelPermalink }}">{{ .LinkTitle }}</a></h2>
<p>{{ .Summary }}</p>
</article>
{{ end }}
</main>
</body>
</html>markdown---
title: "Hello Hugo"
date: 2026-07-24
draft: true
tags:
- Hugo
- SSG
---
Hugo 使用 Markdown 和 Go 模板生成静态页面。
这篇文章会在开发模式中显示,发布前请将 draft 改为 false。bash# 将上面的内容保存为 content/posts/hello-hugo.md
hugo server --buildDrafts
# 正式构建到 public 目录
hugo下一步:先理解 Page Kind、Template Lookup、当前上下文“点”和 Page Bundle,再选择主题或大量编写 Partial;升级旧项目时尤其要核对 v0.146 之后的模板体系变化。
类似项目
这些静态站点工具也面向内容发布,但在实现语言、模板模型和客户端组件支持上不同。
Hugo vs Eleventy
Hugo 和 Eleventy 都默认生成零框架运行时的静态页面;Hugo 以 Go 单文件工具和内置内容能力见长,Eleventy 更贴近 JavaScript 生态并允许自由组合多种模板。
| 比较维度 | Hugo | Eleventy |
|---|---|---|
| 核心实现 | Go 编写的独立可执行文件 | JavaScript 编写,通过 Node.js 与 npm 使用 |
| 模板系统 | Go html/template 与 Hugo 函数、Method | Markdown、Liquid、Nunjucks、WebC、JS 等多种语言 |
| 内容模型 | Section、Page Bundle、Taxonomy 和 Page Resource | Data Cascade、Collections、Tags 和 Pagination |
| 内置能力 | 图片、Pipes、多语言、Related、RSS 等较集中 | 核心精简,更多能力通过配置和插件按需组合 |
| 扩展方式 | Theme、Hugo Modules、Shortcode、Partial 和 Mount | JavaScript Config、Plugin、Filter、Shortcode 和模板引擎 |
| 客户端 JavaScript | 默认不需要,由项目自行添加 | 默认不需要,由项目自行添加 |
| 团队学习 | 需要掌握 Go Template 和 Hugo 的内容对象 | JavaScript 团队可直接编写扩展,但需管理模板选择 |
| 更适合 | 超大内容量、多语言和重视构建速度的站点 | 重视模板自由、渐进迁移和 JavaScript 定制的站点 |
如果站点内容规模大、需要成熟多语言和图片管线,并希望用单个工具获得稳定快速构建,Hugo 通常更合适;如果团队主要使用 JavaScript、需要自由选择模板语言或渐进接入旧目录,Eleventy 更容易深度定制。两者都适合静态优先网站,关键差异通常是模板心智模型与扩展生态。
资料核验
版本、维护信息与本页采用的官方资料来源。
本次核验覆盖 Hugo 的核心定位、主要能力、官方入口与开源许可。项目版本持续更新,具体补丁版本、兼容性和迁移要求请在采用前继续核对官方发布记录。
官方仓库未归档,核验时最近可见的代码活动日期为 2026 年 7 月 25 日。该状态表示项目近期仍有公开维护活动,不代表固定发布频率或长期支持承诺。