Skip to content

Releases: gohugoio/hugo

v0.153.2

22 Dec 18:25
@bep bep

Choose a tag to compare

What's Changed

v0.153.1

20 Dec 15:42
@bep bep

Choose a tag to compare

Note

This is a bug fix release. See the main release for a list of new features.

v0.153.0

19 Dec 11:46
@bep bep

Choose a tag to compare

Note

There is a newer bug fix release available here.

This is a good one! Hugo v0.153.0 comes with a powerful new multidimensional content model (languages, versions and roles) and completely overhauls WebP image support, and much more:

  • For the new multidimensional content model, start reading sites matrix and sites complements. The matrix is what gets written to disk, complements allows e.g. a site in Swedish to fill in missing gaps in the site in Norwegian's page and resource collections. Also see the new Rotate method, that allows you to rotate the content tree in a given dimension.
  • For WebP we now build a WASM version of libwebp (v1.6.0) and run it in the Wazero runtime. We use this for both encoding and decoding. This solves an old and annoying issue with Go's stdlib's decoder, with loss of contrast and muted colors in some photos, but it also means that you don't need the extended version of Hugo to handle WebP images. And, drum roll, we now also support animated WebP, including converting to and from animated GIFs.
  • For MacOS, we now build signed and notarised pkg installers.

Also:

Notes

  • tpl/css: Deprecate libsass in favor of dartsass (note) 9937a5d @bep #14261
  • Build Order: Hugo builds sites based on the sorted dimensions (see below). In earlier versions, we built the sites starting with the default content language. This change is also reflected in the sort order of .Site.Sites to make it consistent with .Site.Languages.
  • Sort Order: The dimensions are sorted as follows, which affects build order and complement selection:
    • languages: By weight, then by name.
    • versions: By weight, then by semantic versioning (descending).
    • roles: By weight, then by name.
  • Deprecations:
  • Logging: We no longer log warnings about potential duplicate content paths, as this becomes impractical to reason about with a
    complex sites matrix.

Bug fixes

Improvements

Dependency Updates

  • build(deps): bump github.com/goccy/go-yaml from 1.19.0 to 1.19.1 39649dc @dependabot[bot]
  • build(deps): bump github.com/alecthomas/chroma/v2 from 2.21.0 to 2.21.1 614fb16 @dependabot[bot]
  • build(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudfront 33542d3 @dependabot[bot]
  • deps: Upgrade github.com/alecthomas/chroma/v2 v2.20.0 => v2.21.0 588d20b @bep #14266
  • build(deps): bump github.com/aws/aws-sdk-go-v2 from 1.40.1 to 1.41.0 b337302 @dependabot[bot]
  • build(deps): bump github.com/evanw/esbuild from 0.27.1 to 0.27.2 e6a3f1d @dependabot[bot]
  • build(deps): bump golang.org/x/image from 0.33.0 to 0.34.0 364d237 @dependabot[bot]
  • build(deps): bump golang.org/x/tools from 0.39.0 to 0.40.0 079f3eb @dependabot[bot]
  • build(deps): bump github.com/tdewolff/minify/v2 from 2.24.7 to 2.24.8 4e6f2b6 @dependabot[bot]
  • build(deps): bump gocloud.dev from 0.43.0 to 0.44.0 dff5e16 @dependabot[bot]
  • build(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudfront c82a035 @dependabot[bot]
  • build(deps): bump github.com/evanw/esbuild from 0.27.0 to 0.27.1 86b01ed @dependabot[bot]
  • build(deps): bump github.com/aws/aws-sdk-go-v2 from 1.40.0 to 1.40.1 9e7182e @dependabot[bot]
  • build(deps): bump github.com/spf13/cobra from 1.9.1 to 1.10.2 cf3ad62 @dependabot[bot]
  • build(deps): bump github.com/goccy/go-yaml from 1.18.0 to 1.19.0 bf42138 @dependabot[bot]
  • build(deps): bump github.com/olekukonko/tablewriter from 1.1.1 to 1.1.2 57fecb6 @dependabot[bot]
  • build(deps): bump github.com/JohannesKaufmann/html-to-markdown/v2 6d0ab6a @dependabot[bot]
  • b...
Read more

v0.152.2

24 Oct 15:47
@bep bep

Choose a tag to compare

In v0.152.0 we tightened the source validation for file mounts. We always said that project mounts can mount with absolute file/directorynames, modules/themes are restricted to relative. In v0.152.0 we narrowed module/themes mounts to be local, which made the setup in the bug report listed below fail:

[[module.mounts]]
source = '../../node_modules/bootstrap'
target = 'assets/vendor/bootstrap'

One part of this is security. But the construct above is usually very odd (the project uses files in a theme/module, not the other way around) and not very portable. But the example above demonstrates a valid exception, that we now have added support for in a portable way. The above example now works as it did before v0.152.0, but going forward you can also write:

[[module.mounts]]
source = 'node_modules/bootstrap'
target = 'assets/vendor/bootstrap'

We now have the node_modules as a special case: For themes/modules we first check if the mounted source exists locally, if not we try relative to the project root.

What's Changed

v0.152.1

22 Oct 19:27
@bep bep

Choose a tag to compare

These fixes are are all related to the YAML library upgrade in v0.152.0.

v0.152.0

21 Oct 16:54
@bep bep

Choose a tag to compare

The big new thing and the motivation behind this release is the upgrade to a more modern YAML library in @goccy 's github.com/goccy/go-yaml. It's been a surprisingly long and winding road to get here. Note that this upgrade comes with some minor breaking changes, most notably that the old YAML 1.1 spec listed a set of strings that, when unquoted, were treated as boolean true or false. So if you're using any of the values in the table below as booleans, you need to adjust your YAML, but I suspect that fixing this very surprising behavior will fix more issues than it introduces. A big new thing with this new YAML library is the support for YAML anchors and aliases which helps to reduce duplication in e.g. your configuration. There are some examples in Hugo's release build configuration and in the Hugo's CI release setup.

Values Old meaning New meaning
yes, Yes, YES, y, Y, on, On, ON true (bool) yes, Yes, YES, y, Y, on, On, ON (string)
no, No, NO, n, N, off, Off, OFF false (bool) no, No, NO, n, N, off, Off, OFF (string)

Note

Improvements

Dependency Updates

  • deps: Upgrade github.com/gohugoio/go-i18n/v2 184b10e @bep
  • build(deps): bump github.com/tdewolff/minify/v2 from 2.24.3 to 2.24.4 9e344bb @dependabot[bot]

Build Setup

v0.151.2

16 Oct 17:26
@bep bep

Choose a tag to compare

What's Changed

v0.151.1

15 Oct 15:24
@bep bep

Choose a tag to compare

This release is mostly motivated by some upstream security fixes:

I, @bep, have inspected the above issues, and none of them seem to be relevant for Hugo, but we understand that many want to have a clean security report.

Bug fixes

Improvements

  • Upgrade Go to 1.25.3 e2fb0b0 @bep
  • create/skeletons: Wrap section and home lists with section tags 29cf874 @imomaliev
  • markup/goldmark: Align blockquote default output with Goldmark 1b4dd43 @jmooring #14046
  • parser/pageparser: Store shortcode names as unique.Handle[string] to save memory allocations 4414ef7 @bep
  • testscripts: Make test assertion less specific 9197deb @bep

Dependency Updates

v0.151.0

02 Oct 13:54
@bep bep

Choose a tag to compare

Some notable new features in Hugo v0.151.0 are:

Note

Improvements and bug fixes

Dependency Updates

v0.150.1

25 Sep 11:44
@bep bep

Choose a tag to compare

What's Changed