Files
2026-07-13 09:02:22 +00:00

14 KiB
Raw Permalink Blame History

Note

本文档由 WeHub 基于上游 README 翻译整理,属于社区翻译,非官方中文文档。
English · 原始项目 · 上游 README
原作者、版权与许可证归属以原始项目及本仓库 LICENSE 文件为准。

Hugo

一款由 bepspf13friends 使用 Go 语言倾心构建的快速、灵活的静态站点生成器(static site generator)。


GoDoc Linux、MacOS 和 Windows 上的测试 Go Report Card

[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 功能的全面概述。

赞助商

 

专为专业 Go 开发者打造的完整 IDE。     CloudCannon

版本

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,你必须安装:

  1. Git
  2. Go 1.26.0 或更高版本

标准版(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 编译器,如 GCCClang,然后运行以下命令。

CGO_ENABLED=1 go install -tags extended github.com/gohugoio/hugo@latest

扩展/部署版(Extended/deploy edition

构建并安装扩展/部署版,首先安装 C 编译器,如 GCCClang,然后运行以下命令。

CGO_ENABLED=1 go install -tags extended,withdeploy github.com/gohugoio/hugo@latest

Star 历史

Star History Chart

文档

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"