You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This release brings significant speedups of collections.Where and collections.Sort – but this is mostly a "spring cleaning" release, to make the API cleaner and simpler to understand/document.
Deprecated
Site.AllPages is Deprecated
Site.BuildDrafts is Deprecated
Site.Languages is Deprecated
Site.Data is deprecated, use hugo.Data
Page.Sites and Site.Sites is Deprecated, use hugo.Sites
Note that the bug fix below is for the two new dimensions introduced in v0.153.0 (version and role), multiple languages worked fine. Also, changes to the first version and role also worked, which had me head-scratching for a while. Oh, well, enjoy.
Improvements to how versions are handled: We now support version (and also for the other dimension) range queries (e.g. >= v1.0.0), and we now cache Go module version queries, which makes mounting multiple versions of the same GitHub repo with different version much more practical and enjoyable, se this site and config for an annotated example.
We finally have XMP and IPTC image metadata support, in addition to EXIF, see #13146
Page aliases now works in multidimensional sites (e.g. multiple languages), and it is now much easier to create e.g. Netlify _redirects files that works in such setups.
There are several performance related WebP improvements in this release.
Also, image processing in general (e.g. resize operations) should be considerably more effective.
Breaking change
Prior to v0.155.0, alias paths beginning with a slash (/) were treated as server-relative. In v0.155.0 and later, they are now site-relative. This change only affects multilingual single-host projects that used alias paths beginning with a slash (/) to cross language boundaries. See details.
Note
Make Page.Aliases more useful in multidimensional setups (note) ee91c70@bep#14402
Bug fixes
Fix data race when clearing cache in cachebusters 8a979d5@wjiec
resources/images: Fix comment for Quality field in ImageConfig fd49df8@bep
Hugo v0.154.0 is the 14th release this year (not counting patch releases) and introduces partial decorators, or “partials with a twist.” This is a very powerful construct that I, @bep, have always wanted to have in Hugo, but I could never wrap my head around an implementation. Until now.
The new inner keyword can be used zero or more times in a partial template, typically with different data (e.g. pages in a range), and its presence signals a reversal of the execution -- the callee becomes the caller.
Decorators can be deeply nested, see this PR for an example.
This release also brings some new utility funcs in the reflect package to identify the core types in Hugo. For example, to identify an processable image hasn't been trivial, now it is:
{{$obj := . }}{{ifreflect.IsResource $obj}}{{ifreflect.IsImageResource $obj}}
// It has width/height and we can process it.
{{else}}
// Just link to it.
{{end}}{{end}}
Bug fixes
tpl/collections: Fix apply to work with built-in funcs like len 5c7fad2@bep#13418
[!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.
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).
renovatebot
changed the title
chore(deps): update dependency aqua:gohugoio/hugo/hugo-extended to v0.147.6
chore(deps): update dependency aqua:gohugoio/hugo/hugo-extended to v0.147.7
Jun 1, 2025
renovatebot
changed the title
chore(deps): update dependency aqua:gohugoio/hugo/hugo-extended to v0.147.7
chore(deps): update dependency aqua:gohugoio/hugo/hugo-extended to v0.147.8
Jun 8, 2025
renovatebot
changed the title
chore(deps): update dependency aqua:gohugoio/hugo/hugo-extended to v0.147.8
chore(deps): update dependency aqua:gohugoio/hugo/hugo-extended to v0.147.9
Jul 5, 2025
renovatebot
changed the title
chore(deps): update dependency aqua:gohugoio/hugo/hugo-extended to v0.147.9
chore(deps): update dependency aqua:gohugoio/hugo/hugo-extended to v0.148.1
Jul 12, 2025
renovatebot
changed the title
chore(deps): update dependency aqua:gohugoio/hugo/hugo-extended to v0.148.1
chore(deps): update dependency aqua:gohugoio/hugo/hugo-extended to v0.148.2
Jul 30, 2025
renovatebot
changed the title
chore(deps): update dependency aqua:gohugoio/hugo/hugo-extended to v0.148.2
chore(deps): update dependency aqua:gohugoio/hugo/hugo-extended to v0.149.0
Sep 1, 2025
renovatebot
changed the title
chore(deps): update dependency aqua:gohugoio/hugo/hugo-extended to v0.149.0
chore(deps): update dependency aqua:gohugoio/hugo/hugo-extended to v0.149.1
Sep 5, 2025
renovatebot
changed the title
chore(deps): update dependency aqua:gohugoio/hugo/hugo-extended to v0.149.1
chore(deps): update dependency aqua:gohugoio/hugo/hugo-extended to v0.150.0
Sep 9, 2025
renovatebot
changed the title
chore(deps): update dependency aqua:gohugoio/hugo/hugo-extended to v0.150.0
chore(deps): update dependency aqua:gohugoio/hugo/hugo-extended to v0.150.1
Sep 26, 2025
renovatebot
changed the title
chore(deps): update dependency aqua:gohugoio/hugo/hugo-extended to v0.150.1
chore(deps): update dependency aqua:gohugoio/hugo/hugo-extended to v0.151.0
Oct 2, 2025
renovatebot
changed the title
chore(deps): update dependency aqua:gohugoio/hugo/hugo-extended to v0.151.0
chore(deps): update dependency aqua:gohugoio/hugo/hugo-extended to v0.151.1
Oct 15, 2025
renovatebot
changed the title
chore(deps): update dependency aqua:gohugoio/hugo/hugo-extended to v0.151.1
chore(deps): update dependency aqua:gohugoio/hugo/hugo-extended to v0.151.2
Oct 17, 2025
renovatebot
changed the title
chore(deps): update dependency aqua:gohugoio/hugo/hugo-extended to v0.151.2
chore(deps): update dependency aqua:gohugoio/hugo/hugo-extended to v0.152.2
Oct 25, 2025
renovatebot
changed the title
chore(deps): update dependency aqua:gohugoio/hugo/hugo-extended to v0.152.2
chore(deps): update dependency aqua:gohugoio/hugo/hugo-extended to v0.153.0
Dec 19, 2025
renovatebot
changed the title
chore(deps): update dependency aqua:gohugoio/hugo/hugo-extended to v0.153.0
chore(deps): update dependency aqua:gohugoio/hugo/hugo-extended to v0.153.1
Dec 21, 2025
renovatebot
changed the title
chore(deps): update dependency aqua:gohugoio/hugo/hugo-extended to v0.153.1
chore(deps): update dependency aqua:gohugoio/hugo/hugo-extended to v0.153.2
Dec 23, 2025
renovatebot
changed the title
chore(deps): update dependency aqua:gohugoio/hugo/hugo-extended to v0.153.2
chore(deps): update dependency aqua:gohugoio/hugo/hugo-extended to v0.153.3
Dec 27, 2025
renovatebot
changed the title
chore(deps): update dependency aqua:gohugoio/hugo/hugo-extended to v0.153.3
chore(deps): update dependency aqua:gohugoio/hugo/hugo-extended to v0.153.4
Dec 29, 2025
renovatebot
changed the title
chore(deps): update dependency aqua:gohugoio/hugo/hugo-extended to v0.153.4
chore(deps): update dependency aqua:gohugoio/hugo/hugo-extended to v0.153.5
Dec 30, 2025
renovatebot
changed the title
chore(deps): update dependency aqua:gohugoio/hugo/hugo-extended to v0.153.5
chore(deps): update dependency aqua:gohugoio/hugo/hugo-extended to v0.154.1
Jan 1, 2026
renovatebot
changed the title
chore(deps): update dependency aqua:gohugoio/hugo/hugo-extended to v0.154.1
chore(deps): update dependency aqua:gohugoio/hugo/hugo-extended to v0.154.2
Jan 3, 2026
renovatebot
changed the title
chore(deps): update dependency aqua:gohugoio/hugo/hugo-extended to v0.154.2
chore(deps): update dependency aqua:gohugoio/hugo/hugo-extended to v0.154.3
Jan 7, 2026
renovatebot
changed the title
chore(deps): update dependency aqua:gohugoio/hugo/hugo-extended to v0.154.3
chore(deps): update dependency aqua:gohugoio/hugo/hugo-extended to v0.154.4
Jan 11, 2026
renovatebot
changed the title
chore(deps): update dependency aqua:gohugoio/hugo/hugo-extended to v0.154.4
chore(deps): update dependency aqua:gohugoio/hugo/hugo-extended to v0.154.5
Jan 12, 2026
renovatebot
changed the title
chore(deps): update dependency aqua:gohugoio/hugo/hugo-extended to v0.154.5
chore(deps): update dependency aqua:gohugoio/hugo/hugo-extended to v0.155.0
Jan 29, 2026
renovatebot
changed the title
chore(deps): update dependency aqua:gohugoio/hugo/hugo-extended to v0.155.0
chore(deps): update dependency aqua:gohugoio/hugo/hugo-extended to v0.155.1
Jan 31, 2026
renovatebot
changed the title
chore(deps): update dependency aqua:gohugoio/hugo/hugo-extended to v0.155.1
chore(deps): update dependency aqua:gohugoio/hugo/hugo-extended to v0.155.2
Feb 3, 2026
renovatebot
changed the title
chore(deps): update dependency aqua:gohugoio/hugo/hugo-extended to v0.155.2
chore(deps): update dependency aqua:gohugoio/hugo/hugo-extended to v0.155.3
Feb 9, 2026
renovatebot
changed the title
chore(deps): update dependency aqua:gohugoio/hugo/hugo-extended to v0.155.3
chore(deps): update dependency aqua:gohugoio/hugo/hugo-extended to v0.156.0
Feb 19, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
0.147.4→0.156.0Release Notes
gohugoio/hugo (aqua:gohugoio/hugo/hugo-extended)
v0.156.0Compare Source
This release brings significant speedups of collections.Where and collections.Sort – but this is mostly a "spring cleaning" release, to make the API cleaner and simpler to understand/document.
Deprecated
See this topic for more info.
Removed
These have all been deprecated at least since
v0.136.0and any usage have been logged as an error for a long time:Template functions
Page methods:
Paginator:
Site methods:
Site config:
File caches:
Notes
af5051e@bep86aa625@bep #145214148ede@jmooring #14532828ee72@jmooring #143414384f9b@jmooring #1449155d136d@jmooring #14488Bug fixes
4a641d1@bep #145133f9d0ad@bep #1452432027e5@khayyamsaleem #14344498431d@jmooring773664b@bep #13422Improvements
bba2aed@bep29b8e17@bep #145313c82340@bepab62320@jmooring #14479 #144818d19f5a@bep #145227729473@bep47e39af@bep7850e7c@jmooring #145072e5132d@bep19ab3f5@jmooring #145043158a51@jmooring #13481b358a65@bep8ae5e1a@bepe277659@toddy15 #14486Dependency Updates
d8ec0ee@dependabot[bot]21be4af@dependabot[bot]e549016@dependabot[bot]a392906@dependabot[bot]86786c9@dependabot[bot]7a7308a@dependabot[bot]2d1d731@dependabot[bot]b26fbf8@dependabot[bot]7358309@dependabot[bot]Build Setup
e6f01bb@jmooring #14519de0c9f3@jmooring #14466Documentation
8b7b6af@bep7137714@jmooring #14502v0.155.3Compare Source
What's Changed
6ac7d08@bep #1448224eb84f@bep #1446995a3678@dependabot[bot]9045797@bep #14470v0.155.2Compare Source
Note that the bug fix below is for the two new dimensions introduced in
v0.153.0(version and role), multiple languages worked fine. Also, changes to the first version and role also worked, which had me head-scratching for a while. Oh, well, enjoy.0f1c7d1@bep #144616bd2bde@bep #14337 #14460v0.155.1Compare Source
What's Changed
b5d43cd@bep #14453b1e1eed@jmooring #14449f522a72@jmooringv0.155.0Compare Source
Some notable new things in this release are:
>= v1.0.0), and we now cache Go module version queries, which makes mounting multiple versions of the same GitHub repo with different version much more practical and enjoyable, se this site and config for an annotated example.aliasesnow works in multidimensional sites (e.g. multiple languages), and it is now much easier to create e.g. Netlify_redirectsfiles that works in such setups.Breaking change
Prior to v0.155.0, alias paths beginning with a slash (
/) were treated as server-relative. In v0.155.0 and later, they are now site-relative. This change only affects multilingual single-host projects that used alias paths beginning with a slash (/) to cross language boundaries. See details.Note
ee91c70@bep #14402Bug fixes
8a979d5@wjiecfd49df8@bepc7b35c8@bep #144418dfcece@bep #14433f472dd4@simonheimlicher #1441948566b6@simonheimlicher11f7f39@bep #14409 #144125ba03bf@jmooring #14388c1b2e58@bep #144052c61109@Sam-404-404 #1437232334d0@jmooring #14381Improvements
5916b61@bep #144377eafef2@bep00c4228@bep #144395f5b2f3@bep #14438ef7a22a@bep9a6bfe2@bep0fc63fb@bep50973e7@bepb441472@bep #14417ac2c3fb@bep #14414192e3c4@bep #14359e569dd5@bep #143701a94731@bep #143978e9e04e@jmooring #143908e2e60d@bep #131462bc54df@bep608ed09@bepd36a8f5@bep #14371Dependency Updates
7d45614@dependabot[bot]7f12c09@dependabot[bot]dab2c33@dependabot[bot]576d55d@dependabot[bot]b9400b8@dependabot[bot]ce0c7f4@dependabot[bot]7721411@bep1878471@dependabot[bot]94f1ede@dependabot[bot]ab374e3@dependabot[bot]1a91330@jmooring #14368Build Setup
e66a33d@bep #14448Documentation
b3ea2a5@jmooring67b5435@jmooring5a64551@bepv0.154.5Compare Source
What's Changed
a775488@bep #14357 #1436166ba63c@Hasaber8 #14207eb06a3c@jmooringv0.154.4Compare Source
What's Changed
ec178ea@BarkinBalci #140982d80b8a@bep #14354 #14356a2b2a5a@dependabot[bot]Also see the new Page.OutputFormats.Canonical method.
v0.154.3Compare Source
What's Changed
866b8e5@dependabot[bot]v0.154.2Compare Source
What's Changed
e9b9b36@bep #14339v0.154.1Compare Source
What's Changed
8f3527f@bep09048aa@bep #14333v0.154.0Compare Source
Hugo
v0.154.0is the 14th release this year (not counting patch releases) and introduces partial decorators, or “partials with a twist.” This is a very powerful construct that I, @bep, have always wanted to have in Hugo, but I could never wrap my head around an implementation. Until now.A small and not very useful example:
The above renders to:
innerkeyword can be used zero or more times in a partial template, typically with different data (e.g. pages in a range), and its presence signals a reversal of the execution -- the callee becomes the caller.This release also brings some new utility funcs in the reflect package to identify the core types in Hugo. For example, to identify an processable image hasn't been trivial, now it is:
Bug fixes
5c7fad2@bep #13418bf1d20d@bep #14104 #14325Improvements
d3b5d47@majiayu000 #1427786cd183@bep871da33@jmooring #143091deec99@bepb7bb557@bep #143077c19c19@bep #13193Dependency Updates
2637aa1@dependabot[bot]v0.153.5Compare Source
What's Changed
c6ae33c@bepedeebf0@bep #14321ea9675f@simonheimlicher #14316v0.153.4Compare Source
What's Changed
96777d9@bep #14310v0.153.3Compare Source
What's Changed
96ac146@dependabot[bot]d4c0e44@bep #14299v0.153.2Compare Source
What's Changed
a8c5d0d@bep #14295a94a941@bep #14284385d1a1@jmooringv0.153.1Compare Source
4085ee9@bep #14288168bf17@bep #14287f740d7c@bep #142835f46da6@jmooring #14282v0.153.0Compare Source
This is a good one! Hugo
v0.153.0comes with a powerful new multidimensional content model (languages, versions and roles) and completely overhauls WebP image support, and much more:complementsallows 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.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.pkginstallers.Also:
Notes
9937a5d@bep #14261.Site.Sitesto make it consistent with.Site.Languages.(https://gohugo.io/configuration/segments/#segment-definition) is deprecated in favor of the more powerful
sites.matrixoption.
includeFilesandexcludeFilesare deprecated in favour of the new files filter, which supports negation.complex sites matrix.
Bug fixes
b82e496@bep #14271e2e64ae@bep #142407a43b92@bep #14211b037b93@bep5af3112@jordelver62c4740@bep94a6233@bep #1414022d0c17@bep #1413225c7c18@dvdksn #1410491eac9e@bep #1410704650ce@bep #14107Improvements
65d43e1@bep65a7666@bep #14278da5b1fc@bep #142730637adb@bep0bf6135@bep #14257 #14270573ecb5@bep1b4514e@bep #10030 #8500 #12843 #8879 #12842429e572@jmooring #14259fa7d37f@jmooring #14249fae49a2@bep6be463b@bep #14204 #142179e24b56@bep #1422045b67f6@bep5e649eb@jmooring3073fd5@bepb9b304a@bep8be30ef@bep565a10c@jmooring #13307438f113@bep #14135dab5405@bep1a1b062@jmooring #14209555dfa2@bep34b0c15@bep9dc38e9@bepb592d34@bep18a2afa@bep0b0c827@bep30dc75e@bep6bc8e6f@jmooringcda4d75@bep84950ed@bep #8067a8ed613@bepb971b7f@bep #1420124210dc@bep0f94274@bep5f9c3a3@bep51d77a6@bepd25b619@bep4a76d8c@bepd837eff@bep323e306@bep2047638@bep38efb70@bepbdf8b1a@bepf33c1a3@bep56d7925@bep #14147c6b6910@jmooring #14143ca40254@bep44b5f13@bep2c6574e@bep60c4245@bep5e6b269@Ahamed1846 #1409726f31ff@bep606415e@bepdc2f6ae@bepa0944ac@bepa2469d5@bepe24b604@bep4c7a78f@bep264022a@bep #519 #13680 #13663 #13776 #13855 #13648 #13996 #14001 #14031 #13818 #13196ff0f67e@bepe9bda21@bep3893e70@bepDependency Updates
39649dc@dependabot[bot]614fb16@dependabot[bot]33542d3@dependabot[bot]588d20b@bep #14266b337302@dependabot[bot]e6a3f1d[@​Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.