14 KiB
Note
本文档由 WeHub 基于上游 README 翻译整理,属于社区翻译,非官方中文文档。
English · 原始项目 · 上游 README
原作者、版权与许可证归属以原始项目及本仓库 LICENSE 文件为准。
一款由 bep、spf13 和 friends 使用 Go 语言倾心构建的快速、灵活的静态站点生成器(static site generator)。
[Website(官网)][] | [Installation(安装)][] | [Documentation(文档)][] | [Support(支持)][] | [Contributing(贡献)][] | Mastodon
概述
Hugo 是一款使用 Go 语言编写的静态站点生成器,针对速度进行了优化,并兼顾灵活性设计。凭借其先进的模板系统和快速的资源管道(asset pipelines),Hugo 能在数秒内(通常更短)渲染一个完整的站点。
得益于其灵活的框架、多语言支持和强大的分类系统(taxonomy system),Hugo 被广泛用于创建:
- 企业、政府、非营利、教育、新闻、活动和项目站点
- 文档站点
- 图片作品集
- 落地页(Landing pages)
- 商业、专业和个人博客
- 简历和履历
在开发过程中,使用 Hugo 内置的 Web 服务器即可即时查看内容、结构、行为和展示的变化。然后将站点部署到你的主机上,或将更改推送到你的 Git 服务提供商以实现自动构建和部署。
Hugo 的快速资源管道包括:
- CSS 处理 – 打包、转换(transform)、压缩(minify)、生成 source maps、执行 SRI 哈希(SRI hashing),并与 PostCSS 集成。
- 图片处理 – 转换、调整尺寸、裁剪、旋转、调整颜色、应用滤镜、叠加文字和图片,以及提取元数据。
- JavaScript 打包 – 将 TypeScript 和 JSX 转译为 JavaScript,打包、摇树优化(tree shake)、压缩、生成 source maps,并执行 SRI 哈希。
- Sass 处理 – 将 Sass 转译为 CSS,打包、摇树优化、压缩、生成 source maps、执行 SRI 哈希,并与 PostCSS 集成。
- Tailwind CSS 处理 – 将 Tailwind CSS 实用类(utility classes)编译为标准 CSS,打包、摇树优化、优化、压缩、执行 SRI 哈希,并与 PostCSS 集成。
借助 Hugo Modules,你可以通过公共或私有的 Git 仓库与其他项目共享内容、资源、数据、翻译、主题、模板和配置。
请参阅文档的 features 部分,了解 Hugo 功能的全面概述。
赞助商
版本
Hugo 提供多个版本。除非你需要额外功能,否则请使用标准版(standard edition)。
| 功能 | standard | deploy | extended | extended/deploy |
|---|---|---|---|---|
| 核心功能 | ✔️ | ✔️ | ✔️ | ✔️ |
| 直接云端部署 (1) | ❌ | ✔️ | ❌ | ✔️ |
| LibSass 支持 (2) | ❌ | ❌ | ✔️ | ✔️ |
(1) 将你的站点直接部署到 Google Cloud Storage 存储桶、AWS S3 存储桶或 Azure Storage 容器。详见 details。
(2) 通过内嵌的 LibSass 将 Sass 转译为 CSS。请注意,内嵌 LibSass 自 v0.153.0 起已弃用,并将在未来版本中移除。请改用 Dart Sass 转译器,该转译器兼容所有版本。
安装
从预编译二进制文件、包管理器或包仓库安装 Hugo。请参阅适用于你操作系统的安装说明:
从源码构建
要从源码构建 Hugo,你必须安装:
标准版(Standard edition)
构建并安装标准版:
CGO_ENABLED=0 go install github.com/gohugoio/hugo@latest
部署版(Deploy edition)
构建并安装部署版:
CGO_ENABLED=0 go install -tags withdeploy github.com/gohugoio/hugo@latest
扩展版(Extended edition)
构建并安装扩展版,首先安装 C 编译器,如 GCC 或 Clang,然后运行以下命令。
CGO_ENABLED=1 go install -tags extended github.com/gohugoio/hugo@latest
扩展/部署版(Extended/deploy edition)
构建并安装扩展/部署版,首先安装 C 编译器,如 GCC 或 Clang,然后运行以下命令。
CGO_ENABLED=1 go install -tags extended,withdeploy github.com/gohugoio/hugo@latest
Star 历史
文档
Hugo 的文档包含安装说明、快速入门指南、概念说明、参考信息和示例。
请将文档相关的问题和 Pull Request 提交到文档仓库。
支持
请不要使用 issue 队列提问或进行故障排查。除非你确定你的问题是软件缺陷,否则请使用论坛。
Hugo 的论坛是一个活跃的用户和开发者社区,大家在这里回答问题、分享知识并提供示例。快速搜索超过 20,000 个主题往往就能回答你的问题。在提出第一个问题之前,请务必阅读有关请求帮助的说明。
贡献
你可以通过以下方式为 Hugo 项目做出贡献:
请将文档相关的问题和 Pull Request 提交到文档仓库。
如果你有改进或新功能的点子,请在[论坛][]的"Feature"分类中创建一个新话题。这将帮助你:
- 确认该功能是否已存在
- 评估兴趣度
- 完善概念
如果兴趣足够,再[撰写提案][]。在项目负责人接受提案之前,请勿提交拉取请求。
关于 Hugo 贡献的完整指南,请参阅贡献指南。
许可证
Hugo 源代码的许可证见 LICENSE。
我们还以二进制/WASM 形式捆绑了一些库:
依赖
Hugo 站在众多优秀开源库的肩膀上。运行 hugo env --logLevel info 可查看依赖列表。
查看当前依赖
github.com/BurntSushi/locker="v0.0.0-20171006230638-a6e239ea1c69"
github.com/JohannesKaufmann/dom="v0.2.0"
github.com/JohannesKaufmann/html-to-markdown/v2="v2.5.0"
github.com/alecthomas/chroma/v2="v2.21.1"
github.com/aymerick/douceur="v0.2.0"
github.com/bep/clocks="v0.5.0"
github.com/bep/debounce="v1.2.0"
github.com/bep/gitmap="v1.9.0"
github.com/bep/goat="v0.5.0"
github.com/bep/godartsass/v2="v2.5.0"
github.com/bep/golibsass="v1.2.0"
github.com/bep/goportabletext="v0.1.0"
github.com/bep/helpers="v0.6.0"
github.com/bep/imagemeta="v0.12.0"
github.com/bep/lazycache="v0.8.0"
github.com/bep/logg="v0.4.0"
github.com/bep/mclib="v1.20400.20402"
github.com/bep/overlayfs="v0.10.0"
github.com/bep/simplecobra="v0.6.1"
github.com/bep/textandbinarywriter="v0.0.0-20251212174530-cd9f0732f60f"
github.com/bep/tmc="v0.5.1"
github.com/bits-and-blooms/bitset="v1.24.4"
github.com/cespare/xxhash/v2="v2.3.0"
github.com/clbanning/mxj/v2="v2.7.0"
github.com/clipperhouse/displaywidth="v0.6.0"
github.com/clipperhouse/stringish="v0.1.1"
github.com/clipperhouse/uax29/v2="v2.3.0"
github.com/cpuguy83/go-md2man/v2="v2.0.6"
github.com/disintegration/gift="v1.2.1"
github.com/dlclark/regexp2="v1.11.5"
github.com/evanw/esbuild="v0.27.2"
github.com/fatih/color="v1.18.0"
github.com/frankban/quicktest="v1.14.6"
github.com/fsnotify/fsnotify="v1.9.0"
github.com/getkin/kin-openapi="v0.133.0"
github.com/go-openapi/jsonpointer="v0.21.0"
github.com/go-openapi/swag="v0.23.0"
github.com/gobuffalo/flect="v1.0.3"
github.com/gobwas/glob="v0.2.3"
github.com/goccy/go-yaml="v1.19.1"
github.com/gohugoio/go-i18n/v2="v2.1.3-0.20251018145728-cfcc22d823c6"
github.com/gohugoio/go-radix="v1.2.0"
github.com/gohugoio/hashstructure="v0.6.0"
github.com/gohugoio/httpcache="v0.8.0"
github.com/gohugoio/hugo-goldmark-extensions/extras="v0.5.0"
github.com/gohugoio/hugo-goldmark-extensions/passthrough="v0.3.1"
github.com/gohugoio/locales="v0.14.0"
github.com/gohugoio/localescompressed="v1.0.1"
github.com/google/go-cmp="v0.7.0"
github.com/gorilla/css="v1.0.1"
github.com/gorilla/websocket="v1.5.3"
github.com/hairyhenderson/go-codeowners="v0.7.0"
github.com/hashicorp/golang-lru/v2="v2.0.7"
github.com/jdkato/prose="v1.2.1"
github.com/josharian/intern="v1.0.0"
github.com/kr/pretty="v0.3.1"
github.com/kr/text="v0.2.0"
github.com/kyokomi/emoji/v2="v2.2.13"
github.com/mailru/easyjson="v0.7.7"
github.com/makeworld-the-better-one/dither/v2="v2.4.0"
github.com/marekm4/color-extractor="v1.2.1"
github.com/mattn/go-colorable="v0.1.13"
github.com/mattn/go-isatty="v0.0.20"
github.com/mattn/go-runewidth="v0.0.19"
github.com/microcosm-cc/bluemonday="v1.0.27"
github.com/mitchellh/mapstructure="v1.5.1-0.20231216201459-8508981c8b6c"
github.com/mohae/deepcopy="v0.0.0-20170929034955-c48cc78d4826"
github.com/muesli/smartcrop="v0.3.0"
github.com/niklasfasching/go-org="v1.9.1"
github.com/oasdiff/yaml3="v0.0.0-20250309153720-d2182401db90"
github.com/oasdiff/yaml="v0.0.0-20250309154309-f31be36b4037"
github.com/olekukonko/cat="v0.0.0-20250911104152-50322a0618f6"
github.com/olekukonko/errors="v1.1.0"
github.com/olekukonko/ll="v0.1.3"
github.com/olekukonko/tablewriter="v1.1.2"
github.com/pbnjay/memory="v0.0.0-20210728143218-7b4eea64cf58"
github.com/pelletier/go-toml/v2="v2.2.4"
github.com/perimeterx/marshmallow="v1.1.5"
github.com/pkg/browser="v0.0.0-20240102092130-5ac0b6a4141c"
github.com/pkg/errors="v0.9.1"
github.com/rogpeppe/go-internal="v1.14.1"
github.com/russross/blackfriday/v2="v2.1.0"
github.com/sass/dart-sass/compiler="1.97.1"
github.com/sass/dart-sass/implementation="1.97.1"
github.com/sass/dart-sass/protocol="3.2.0"
github.com/spf13/afero="v1.15.0"
github.com/spf13/cast="v1.10.0"
github.com/spf13/cobra="v1.10.2"
github.com/spf13/fsync="v0.10.1"
github.com/spf13/pflag="v1.0.9"
github.com/tdewolff/minify/v2="v2.24.8"
github.com/tdewolff/parse/v2="v2.8.5"
github.com/tetratelabs/wazero="v1.10.1"
github.com/webmproject/libwebp="v1.6.0"
github.com/woodsbury/decimal128="v1.3.0"
github.com/yuin/goldmark-emoji="v1.0.6"
github.com/yuin/goldmark="v1.7.13"
go.uber.org/automaxprocs="v1.5.3"
go.yaml.in/yaml/v3="v3.0.4"
golang.org/x/crypto="v0.46.0"
golang.org/x/image="v0.34.0"
golang.org/x/mod="v0.31.0"
golang.org/x/net="v0.48.0"
golang.org/x/sync="v0.19.0"
golang.org/x/sys="v0.39.0"
golang.org/x/text="v0.32.0"
golang.org/x/tools="v0.40.0"
google.golang.org/protobuf="v1.36.10"
gopkg.in/yaml.v3="v3.0.1"
rsc.io/qr="v0.2.0"
software.sslmate.com/src/go-pkcs12="v0.2.0"