From 5dd0ba00f79d5888c8d6d05d3327a74d15073a7b Mon Sep 17 00:00:00 2001 From: Joe Mooring Date: Thu, 13 Feb 2025 07:30:14 -0800 Subject: [PATCH] Update README.md - Include section about editions - Bump minimum required Go version for building from source - Include instructions for building the extended/deploy edition - Update dependency list --- README.md | 93 ++++++++++++++++++++++++++++++++++++------------------- 1 file changed, 62 insertions(+), 31 deletions(-) diff --git a/README.md b/README.md index 913130b5d94..ee0a5d5a166 100644 --- a/README.md +++ b/README.md @@ -34,6 +34,7 @@ A fast and flexible static site generator built with love by [bep], [spf13], and [![Go Report Card](https://goreportcard.com/badge/github.com/gohugoio/hugo)](https://goreportcard.com/report/github.com/gohugoio/hugo) [Website] | [Installation] | [Documentation] | [Support] | [Contributing] | Mastodon + ## Overview Hugo is a [static site generator] written in [Go], optimized for speed and designed for flexibility. With its advanced templating system and fast asset pipelines, Hugo renders a complete site in seconds, often less. @@ -69,6 +70,23 @@ See the [features] section of the documentation for a comprehensive summary of H The complete IDE crafted for professional Go developers.

+## Editions + +Hugo is available in three editions: standard, extended, and extended/deploy. While the standard edition provides core functionality, the extended and extended/deploy editions offer advanced features. + +Feature|extended edition|extended/deploy edition +:--|:-:|:-: +Encode to the WebP format when [processing images]. You can decode WebP images with any edition.|:heavy_check_mark:|:heavy_check_mark: +[Transpile Sass to CSS] using the embedded LibSass transpiler. You can use the [Dart Sass] transpiler with any edition.|:heavy_check_mark:|:heavy_check_mark: +Deploy your site directly to a Google Cloud Storage bucket, an AWS S3 bucket, or an Azure Storage container. See [details].|:x:|:heavy_check_mark: + +[dart sass]: /functions/css/sass/#dart-sass +[processing images]: /content-management/image-processing/ +[transpile sass to css]: /functions/css/sass/ +[details]: /hosting-and-deployment/hugo-deploy/ + +Unless your specific deployment needs require the extended/deploy edition, we recommend the extended edition. + ## Installation Install Hugo from a [prebuilt binary], package manager, or package repository. Please see the installation instructions for your operating system: @@ -80,15 +98,11 @@ Install Hugo from a [prebuilt binary], package manager, or package repository. P ## Build from source -Hugo is available in two editions: standard and extended. With the extended edition you can: - -- Encode to the WebP format when processing images. You can decode WebP images with either edition. -- Transpile Sass to CSS using the embedded LibSass transpiler. The extended edition is not required to use the Dart Sass transpiler. - Prerequisites to build Hugo from source: -- Standard edition: Go 1.20 or later -- Extended edition: Go 1.20 or later, and GCC +- Standard edition: Go 1.23.0 or later +- Extended edition: Go 1.23.0 or later, and GCC +- Extended/deploy edition: Go 1.23.0 or later, and GCC Build the standard edition: @@ -102,6 +116,12 @@ Build the extended edition: CGO_ENABLED=1 go install -tags extended github.com/gohugoio/hugo@latest ``` +Build the extended/deploy edition: + +```text +CGO_ENABLED=1 go install -tags extended,withdeploy github.com/gohugoio/hugo@latest +``` + ## Star History [![Star History Chart](https://api.star-history.com/svg?repos=gohugoio/hugo&type=Timeline)](https://star-history.com/#gohugoio/hugo&Timeline) @@ -149,7 +169,9 @@ Hugo stands on the shoulders of great open source libraries. Run `hugo env --log ```text github.com/BurntSushi/locker="v0.0.0-20171006230638-a6e239ea1c69" -github.com/alecthomas/chroma/v2="v2.14.0" +github.com/PuerkitoBio/goquery="v1.10.1" +github.com/alecthomas/chroma/v2="v2.15.0" +github.com/andybalholm/cascadia="v1.3.3" github.com/armon/go-radix="v1.0.1-0.20221118154546-54df44f2176c" github.com/bep/clocks="v0.5.0" github.com/bep/debounce="v1.2.0" @@ -158,73 +180,78 @@ github.com/bep/goat="v0.5.0" github.com/bep/godartsass/v2="v2.3.2" github.com/bep/golibsass="v1.2.0" github.com/bep/gowebp="v0.3.0" -github.com/bep/imagemeta="v0.8.3" +github.com/bep/imagemeta="v0.8.4" github.com/bep/lazycache="v0.7.0" github.com/bep/logg="v0.4.0" github.com/bep/mclib="v1.20400.20402" github.com/bep/overlayfs="v0.9.2" -github.com/bep/simplecobra="v0.4.0" +github.com/bep/simplecobra="v0.5.0" github.com/bep/tmc="v0.5.1" github.com/cespare/xxhash/v2="v2.3.0" github.com/clbanning/mxj/v2="v2.7.0" github.com/cli/safeexec="v1.0.1" github.com/cpuguy83/go-md2man/v2="v2.0.4" github.com/disintegration/gift="v1.2.1" -github.com/dlclark/regexp2="v1.11.0" -github.com/evanw/esbuild="v0.24.0" +github.com/dlclark/regexp2="v1.11.5" +github.com/dop251/goja="v0.0.0-20250125213203-5ef83b82af17" +github.com/evanw/esbuild="v0.24.2" github.com/fatih/color="v1.18.0" github.com/frankban/quicktest="v1.14.6" github.com/fsnotify/fsnotify="v1.8.0" -github.com/getkin/kin-openapi="v0.123.0" +github.com/getkin/kin-openapi="v0.129.0" github.com/ghodss/yaml="v1.0.0" -github.com/go-openapi/jsonpointer="v0.20.2" -github.com/go-openapi/swag="v0.22.8" +github.com/go-openapi/jsonpointer="v0.21.0" +github.com/go-openapi/swag="v0.23.0" +github.com/go-sourcemap/sourcemap="v2.1.4+incompatible" github.com/gobuffalo/flect="v1.0.3" github.com/gobwas/glob="v0.2.3" github.com/gohugoio/go-i18n/v2="v2.1.3-0.20230805085216-e63c13218d0e" -github.com/gohugoio/hashstructure="v0.1.0" +github.com/gohugoio/hashstructure="v0.5.0" github.com/gohugoio/httpcache="v0.7.0" github.com/gohugoio/hugo-goldmark-extensions/extras="v0.2.0" github.com/gohugoio/hugo-goldmark-extensions/passthrough="v0.3.0" github.com/gohugoio/locales="v0.14.0" github.com/gohugoio/localescompressed="v1.0.1" +github.com/golang/freetype="v0.0.0-20170609003504-e2365dfdc4a0" github.com/google/go-cmp="v0.6.0" +github.com/google/pprof="v0.0.0-20250208200701-d0013a598941" 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/invopop/yaml="v0.2.0" 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/lucasb-eyer/go-colorful="v1.2.0" 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.9" +github.com/mazznoer/csscolorparser="v0.1.5" 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.7.0" +github.com/oasdiff/yaml3="v0.0.0-20241210130736-a94c01f36349" +github.com/oasdiff/yaml="v0.0.0-20241210131133-6b86fb107d80" github.com/olekukonko/tablewriter="v0.0.5" github.com/pbnjay/memory="v0.0.0-20210728143218-7b4eea64cf58" github.com/pelletier/go-toml/v2="v2.2.3" 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/rivo/uniseg="v0.4.7" github.com/rogpeppe/go-internal="v1.13.1" github.com/russross/blackfriday/v2="v2.1.0" -github.com/sass/dart-sass/compiler="1.81.0" -github.com/sass/dart-sass/implementation="1.81.0" -github.com/sass/dart-sass/protocol="3.1.0" github.com/sass/libsass="3.6.6" github.com/spf13/afero="v1.11.0" github.com/spf13/cast="v1.7.1" github.com/spf13/cobra="v1.8.1" github.com/spf13/fsync="v0.10.1" -github.com/spf13/pflag="v1.0.5" +github.com/spf13/pflag="v1.0.6" github.com/tdewolff/minify/v2="v2.20.37" github.com/tdewolff/parse/v2="v2.7.15" github.com/tetratelabs/wazero="v1.8.2" @@ -232,18 +259,22 @@ github.com/webmproject/libwebp="v1.3.2" github.com/yuin/goldmark-emoji="v1.0.4" github.com/yuin/goldmark="v1.7.8" go.uber.org/automaxprocs="v1.5.3" -golang.org/x/crypto="v0.31.0" -golang.org/x/exp="v0.0.0-20221031165847-c99f073a8326" -golang.org/x/image="v0.22.0" -golang.org/x/mod="v0.22.0" -golang.org/x/net="v0.33.0" -golang.org/x/sync="v0.10.0" -golang.org/x/sys="v0.28.0" -golang.org/x/text="v0.21.0" -golang.org/x/tools="v0.28.0" -google.golang.org/protobuf="v1.35.2" +golang.org/x/crypto="v0.33.0" +golang.org/x/exp="v0.0.0-20250210185358-939b2ce775ac" +golang.org/x/image="v0.24.0" +golang.org/x/mod="v0.23.0" +golang.org/x/net="v0.35.0" +golang.org/x/sync="v0.11.0" +golang.org/x/sys="v0.30.0" +golang.org/x/text="v0.22.0" +golang.org/x/tools="v0.30.0" +golang.org/x/xerrors="v0.0.0-20240903120638-7835f813f4da" +gonum.org/v1/plot="v0.15.0" +google.golang.org/protobuf="v1.36.5" gopkg.in/yaml.v2="v2.4.0" gopkg.in/yaml.v3="v3.0.1" +oss.terrastruct.com/d2="v0.6.9" +oss.terrastruct.com/util-go="v0.0.0-20241005222610-44c011a04896" rsc.io/qr="v0.2.0" software.sslmate.com/src/go-pkcs12="v0.2.0" ```