Update ghcr.io/gohugoio/hugo Docker tag to v0.163.2
This MR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| ghcr.io/gohugoio/hugo | image-name | minor | v0.147.9 → v0.163.2 |
⚠️ WarningSome dependencies could not be looked up. Check the Dependency Dashboard for more information.
Release Notes
gohugoio/hugo (ghcr.io/gohugoio/hugo)
v0.163.2
What's Changed
- Continue resolving on ERR_ACCESS_DENIED in Node's resolver
134674f@bep #15041 - markup: Standardize behavior when external converters are missing
147f605@jmooring #14222
v0.163.1
The majority of the fixes in this release are security related (including the upstream fix in 93c8c7d (golang.org/x/image)). Thanks to @vnth4nhnt for finding the issues fixed in a00b5c7 and cf9c8f9 (I will do the CVE work on this later). There has been a uptick in security reports lately, which doesn't mean that Hugo has gotten less secure, this is mostly the work of the new and powerful AI tools using Hugo's restrictive security model as their baseline. Just take a look at Go's recent security issue list to see a demonstration of this.
What's Changed
- build(deps): bump golang.org/x/image from 0.41.0 to 0.42.0
93c8c7d@dependabot[bot] - Fix multi --renderSegments merge behavior
95e5e9f@bep #15024 - security: Normalize integer IPv4 host encodings in http.urls check
a00b5c7@bep - Drop symlinks in os.ReadDir, os.ReadFile, os.Stat and os.FileExists
cf9c8f9@bep #15019 - commands: Fix convert command
2602796@jmooring #15012
v0.163.0
The main topic in this release is improvements to the AVIF image handling that we introduced in v0.162.0. See the docs for details, but:
- We have turned down the default
qualityfor AVIF to 60. Turns out, JPEG/WebP with quality 75 is comparable to AVIF with quality 60. You can now also set quality per image format in your project config (and also per image processed if needed). - We have added a
hintto the AVIF with the same values as forWEBP. Forlossycompression, the photo/picture hints (and the default) encodes with YUV420 chroma subsampling instead of YUV444, keeping 444 for text/icon/drawing. This greatly reduces the memory needed to encode these images.
Improvements
- resources/jsconfig: Remove deprecated baseUrl setting
ff2903a@bep #14991 #14996 - all: Adjust tests for deprecated link and image render hook settings
ca68936@jmooring - all: Run go fix ./...
781fabf@bep - pagesfromdata: Use relative path for content adapter template metrics
1d018ef@anupamojha-eng #14999 - ci: Re-add macos-latest to the test matrix
121bc6c@bep - images: Deprecate Imaging.Compression and move it down to webp and avif configs
cf18b82@bep #14998 - Only support the latest Go version
98ad9b3@bep #14997 - page: Add IsBranch and deprecate IsNode
b89e7fe@bep #11574 - images: Force cache invalidation for AVIF target
e8fefc8@bep #14990 - images: Add a per-format AVIF hint setting
a043d3e@bep #14992 - images: Make AVIF chroma subsampling content-aware via the hint
341f575@bep #14987 - Cap AVIF lossy quality at 99
248241b@bep #14981 - config: Deprecate the glogal imaging quality setting
4e47d95@bep #14979 - images: Make 60 the default quality for AVIF
03b4b54@bep #14979 - livereload: Disconnect from websocket server on pageswap
79be053@bep #14983 - tpl/tplimpl/embedded: Prevent leading newline in sitemap template
0f44046@bep #14977 - images: Recover from memory alloc errors in WASM image processors
4e17421@bep #14985 - images: Add quality setting per image format
b01ecd4@bep #14957 - misc: Remove duplicate words in comments
45c00b7@jmooring #14936 #14950 #14965 - Add some PNG to AVIF golden test cases
28d882a@bep
Dependency Updates
- build(deps): bump github.com/bits-and-blooms/bitset
0d29fc8@dependabot[bot] - build(deps): bump github.com/tetratelabs/wazero
bb57404@dependabot[bot] - build(deps): bump github.com/rogpeppe/go-internal from 1.14.1 to 1.15.0
7d1b1fb@dependabot[bot] - build(deps): bump github.com/getkin/kin-openapi from 0.138.0 to 0.139.0
77a1147@dependabot[bot]
v0.162.1
What's Changed
- modules/npm: Fix false stale warning after npm pack
59f35cd@jmooring #14959 - Revert "tpl/collections: Make dict return nil when no values are provided"
c270975@bep #14958 - tpl/time: Fix locale-specific month abbreviations
ea8b48a@jmooring #14948
v0.162.0
The notable new feature in this release is support for AVIF images (both encoder and decoder). There's a demo site set up that demonstrates the difference between HDR AVIF and SDR JPEG images. Note that that demo is only really interesting if viewed on an HDR capable screen (e.g. Apple Retina).
Security fixes
There are some notable security fixes in this release.
Security fixes in Go
This release upgrades from Go 1.26.1 to 126.3, which brings a set of security fixes. Some relevant for Hugo are:
- XSS in html/template (CVE-2026-39826 & CVE-2026-39823): Two separate vulnerabilities where escaper bypasses in html/template could lead to Cross-Site Scripting (XSS).
- html/template: Fixes an issue where JS template literal contexts were incorrectly tracked across template branches, which could lead to improper content escaping.
Security fixes and hardening in Hugo
The following changes either fix a concrete issue or reduce the default attack surface of hugo builds.
- Disallow
text/htmlcontent files by default (e41a064). A newsecurity.allowContentpolicy gates which content media types may be used for pages under/content.text/htmlis denied by default; sites that rely on hand-authored or adapter-emitted HTML content can opt back in withsecurity.allowContent = ['.*']. - Re-check
security.http.urlson every redirect hop inresources.GetRemote(86fbb0f). - Reject symlinked entries in
resources.Get(f8b5fa0).
We will update this section later with links to CVEs where applicable.
All changes
- hugolib: Fix Page.GitInfo for modules with go.mod in a repo subdirectory
df54219@bep #14942 - Fix typo in CONTRIBUTING.md
4bc7cae@bep - resources: Fix the :counter placeholder
5d51b82@jmooring #14921 - commands: Fix import from Jekyll
81d7762@jmooring #14795 #14906 - Fix prevention of direct symlink reads in resources.Get
f8b5fa0@bep - commands: Fix github-dark chromastyles
88d838a@xndvaz #14831 - Disallow HTML content by default
e41a064@bep - Add image processing support for AVIF
90d9f81@bep #7837 - config: Preserve intentionally empty maps
80e6084@jmooring #14944 - hugolib: Merge existing hugo_stats.json when renderSegments is set
aeb9a5c@bep #14939 - all: Replace RWMutex struct caches with ConcurrentMap
c4bbc28@bep - tpl/tplimpl: Consolidate and improve embedded template integration tests
d8c7021@jmooring #14932 - parser: Drop empty sub maps from hugo config output
ee4f1ac@bep #14855 - markup/highlight: Allow overriding type and code via options
b613365@bep #11872 - Update AI assistance disclosure requirements
d2c821b@bep - hugolib: Use AllTranslated in IsTranslated
4ed7600@bep - tpl: Simplify sitemap template
cbe4339@bep #14912 - tpl: Use AllTranslations in sitemap template
6475d30@bep #14912 #14917 - tpl/collections: Make dict return nil when no values are provided
67aede4@bep - Sync Go template package to 1.26.3
87f194b@bep #14897 - Upgrade to Go 1.26.3
d81e3c2@bep #14897 - ci: Check embedded template formatting with gotmplfmt
7c65a4d@bep - tpl: Run gotmplfmt -w .
d31a927@bep - markup/goldmark/codeblocks: Always split Chroma options into .Options
c36608c@jmooring #14909 - hugolib: Allow empty params front matter
2f361a8@xndvaz #14886 - common/hmaps: Merge slice-valued module config into site config
5559263@jmooring #13869 - tpl: Use GetMatch for both local and global image resources
656fc04@bep #14062 - Revert "markup/tableofcontents: Skip empty TOC levels"
a20cb5b@bep #14898 - tpl/templates: Reject Defer inside partialCached
4d775cb@bep #13492 - common/hexec: Make NODE_PATH a fallback for ESM bare imports
ae7bf74@bep #13987 - config: Allow repeating the root key in /config files
ba5d812@bep #12899 #14882 - Revise test naming guidelines in AGENTS.md
be4a0df@bep - Update AGENTS.md
e4cf565@bep - js: Return error for missing batch imports
9e64953@xndvaz #13737 - resources/images: Keep smart crop target size
f0cfc28@xndvaz #13688 - testing: Use synctest where relevant
16e854a@bep - security: Validate redirects against security.http.urls
86fbb0f@bep #14871 - markup/tableofcontents: Skip empty TOC levels
7d4af7a@xndvaz #7128 - Fall back to hugo.buildDate in hugo.BuildDate() in non-vcs builds
28147cb@bep #14862 - css: Make css.Build's file-loader URLs absolute to web context root
e51e761@bep #14849 - hugolib: Don't warn about lang/kind/path coming from cascade.params
7011239@bep #14848 - markup/goldmark: Unwrap inner HTML for plain code blocks
694906f@cyphercodes #14820 - tpl/tplimpl: Extend page image lookup to include global resources
d27b9c0@ogulcanaydogan #14062 - security: Allow hostnames starting with digits in default http.urls
62cef36@bep #14837 - commands: Improve description of command flags
ff22c62@jmooring #14817 - build(deps): bump golang.org/x/net from 0.54.0 to 0.55.0
4f444c8@dependabot[bot] - build(deps): bump golang.org/x/image from 0.40.0 to 0.41.0
fe6c726@dependabot[bot] - build(deps): bump github.com/getkin/kin-openapi from 0.137.0 to 0.138.0
6a2a038@dependabot[bot] - build(deps): bump github.com/JohannesKaufmann/html-to-markdown/v2
cf1de59@dependabot[bot] - build(deps): bump golang.org/x/image from 0.39.0 to 0.40.0
97f990c@dependabot[bot] - build(deps): bump golang.org/x/tools from 0.44.0 to 0.45.0
b99634e@dependabot[bot] - build(deps): bump github.com/aws/aws-sdk-go-v2/service/s3
fdd977e@dependabot[bot] - build(deps): bump github.com/pelletier/go-toml/v2 from 2.3.0 to 2.3.1
123018d@dependabot[bot] - deps: Upgrade to Chroma v2.24.1
b88fa8c@bep #14839
v0.161.1
What's Changed
- resources: Honor Retry-After header in resources.GetRemote retries
c4eba92@bep #14828 - warpc: Move to parson.c in https://github.com/kgabis/parson
8b40a96@bep #14823 - config/security: Add AllowChildProcess to security.node.permissions
d65af84@bep #14824 - config/security: Restrict default http.urls "@" deny to userinfo
454450a@bep #14825
v0.161.0
This release contains two security hardening fixes:
- We now run the Node tools PostCSS, Babel and TailwindCSS, by default, with the
--permissionflag with the permissions defined in security.node.permissions. This means that you need Node >= 22 installed and thatcss.TailwindCSSnow requires that the Tailwind CSS CLI must be installed as a Node.js package. The standalone executable is no longer supported - We have made the defaults in security.http.urls more restrictive.
But there are some notable new features, as well:
Nested vars support in css.Build and css.Sass
A practical example in css.Build would be to have something like this in hugo.toml:
[params.style]
primary = "#​000000"
background = "#ffffff"
[params.style.dark]
primary = "#ffffff"
background = "#​000000"And in the stylesheet:
@​import "hugo:vars";
@​import "hugo:vars/dark" (prefers-color-scheme: dark);
:root {
color-scheme: light dark;
}Slice-based permalinks config
The permalinks configuration is now much more flexible (the old setup still works). It uses the same target matchers as in the cascade config, meaning you can now do:
permalinks:
- target:
kind: page
path: "/books/**"
pattern: /books/:year/:slug/
- target:
kind: section
path: "/{books,books/**}"
pattern: /libros/:sections[1:]
- target:
kind: page
pattern: /other/:slug/The above example isn't great, but it at least shows the gist of it.
A more flexible scheme for identifiers in filenames
What we had before was e.g. content/mypost.en.md which told Hugo that the content files was in English. With the new setup you could also name the file content/mypost._language_en_.md. This alone doesn't sound very useful, but this allows you to use more prefixes:
| Prefix | Description | Relevant for |
|---|---|---|
| language_ | Language | Content and layout files. |
| role_ | Role | Content and layout files. |
| version_ | Version | Content and layout files. |
| outputformat_ | Output format | Layout files. |
| mediatype_ | Media type | Layout files. |
| kind_ | Page kind | Layout files. |
| layout_ | Layout | Layout files. |
All Changes
- langs/i18n: Fix translation lookup when using language variants
72b85d5@jmooring #7982 - create: Fix non-deterministic conflict detection in hugo new content
6436deb@jmooring #12602 #12786 #14112 #14769 - commands: Fix environment isolation for configuration settings
1eea9fb@jmooring #14763 - Fix filename dimension identifiers (role_X, version_X) to replace mount config
8d6145f@bep #14756 - Fix it so we never auto-fallback to page resources in other roles/versions
9747724@bep #14749 #14752 - css: Support nested hugo:vars/ imports
7622dd8@bep #14705 - github: Update GitHub actions versions
0814059@bep #14810 - hugolib: Do not render aliases if the page is not rendered
8920d56@jmooring #14807 - langs/i18n: Improve default content language fallback
633cc77@jmooring #14243 - helpers: Remove unused code
4c40c6d@bep - common/constants: Remove unused consts
d2594db@bep - common/paths: Remove unused code
ab2de51@bep - tests: Update Ruby setup action to v1.305.0
75f6183@jmooring - langs: Use Language.Locale as primary localization key
1b7495b@jmooring #9109 - config/security: Add "! " negation to Whitelist, harden default http.urls
79f030b@bep #14792 - Harden Node tool execution with --permission flag
a54c398@bep #7287 - tpl/collections: Honor the Eqer interface in where comparisons
f5fce93@bep #14777 - modules: Ignore non-require blocks in go.mod rewrite
4169c1f@bep #14783 - Replace the concurrent map with an identical upstream version
7574e35@bep - Add slice-based permalinks config with PageMatcher target
017a7cd@bep #14744 - commands: Add missing import
e3413d9@bep - Revert "common/hugo: Deprecate extended and extended_withdeploy editions"
b01cc14@bep #14771 - Adjust the SECURITY.md slightly
8ee19ff@bep - resources/page: Add passing test for Issue #14325
0d58e42@jmooring - Add a more flexible filename identifier scheme that also allows setting roles and versions (#14754)
ce2a156@bep #14750 - common/hugo: Deprecate extended and extended_withdeploy editions
a17bdbc@jmooring #14696 - parser/pageparser: Add a parser fuzz test
8f94d65@bep - Replace deprecated .Site.Sites/.Page.Sites with hugo.Sites intests
90d8bf3@bep - agents: Add a note about having the issue ID in test names
bbb42b5@bep - build(deps): bump github.com/getkin/kin-openapi from 0.135.0 to 0.137.0
d4ae662@dependabot[bot] - build(deps): bump github.com/mattn/go-isatty from 0.0.21 to 0.0.22
9ede5fb@dependabot[bot] - build(deps): bump github.com/tdewolff/minify/v2 from 2.24.12 to 2.24.13
833a878@dependabot[bot] - build(deps): bump github.com/magefile/mage from 1.17.1 to 1.17.2
4c03129@dependabot[bot] - deps: Upgrade github.com/bep/imagemeta v0.17.1 => v0.17.2
080970b@bep - build(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudfront (#14789)
896bc89@dependabot[bot] - build(deps): bump github.com/mattn/go-isatty from 0.0.20 to 0.0.21 (#14788)
100dde5@dependabot[bot] - build(deps): bump github.com/bep/mclib (#14787)
bdebb79@dependabot[bot] - build(deps): bump google.golang.org/api from 0.267.0 to 0.276.0
52123ae@dependabot[bot] - build(deps): bump github.com/aws/aws-sdk-go-v2 from 1.41.5 to 1.41.6
38b8afd@dependabot[bot] - build(deps): bump github.com/getkin/kin-openapi from 0.134.0 to 0.135.0 (#14781)
9276660@dependabot[bot] - build(deps): bump github.com/bep/goportabletext from 0.1.0 to 0.2.0 (#14779)
790f408@dependabot[bot] - build(deps): bump golang.org/x/image from 0.38.0 to 0.39.0 (#14780)
de6955b@dependabot[bot] - deps: Upgrade github.com/bep/imagemeta v0.17.0 => v0.17.1 (#14775)
a77bd52@bep #14758 - build(deps): bump golang.org/x/tools from 0.43.0 to 0.44.0
547ab29@dependabot[bot] - build(deps): bump github.com/evanw/esbuild from 0.27.4 to 0.28.0
9a5c7e0@dependabot[bot] - build(deps): bump github.com/aws/aws-sdk-go-v2 from 1.41.1 to 1.41.5
6613b08@dependabot[bot] - build(deps): bump github.com/pelletier/go-toml/v2 from 2.2.4 to 2.3.0
582c26e@dependabot[bot] - build(deps): bump github.com/tdewolff/minify/v2 from 2.24.11 to 2.24.12
a4f2a8a@dependabot[bot]
v0.160.1
What's Changed
- Fix panic when passthrough elements are used in headings
8b00030@bep #14677 - Fix panic on edit of legacy mapped template names that's also a valid path in the new setup
c485516@bep #14740 - Fix RenderShortcodes leaking context markers when indented
161d0d4@bep #12457 - Strip nested page context markers from standalone RenderShortcodes
45e4596@bep #14732 - Rename deprecated cascade._target to cascade.target in tests
58927aa@bep - Fix auto-creation of root sections in multilingual sites
ce009e3@bep #14681 - readme: Fix links
0755872@chicks-net
v0.160.0
Now you can inject CSS vars, e.g. from the configuration, into your stylesheets when building with css.Build. Also, now all the render hooks has a .Position method, now also more accurate and effective.
Bug fixes
- Fix some recently introduced Position issues
4e91e14@bep #14710 - markup/goldmark: Fix double-escaping of ampersands in link URLs
dc9b51d@bep #14715 - tpl: Fix stray quotes from partial decorator in script context
43aad71@bep #14711
Improvements
- all: Replace NewIntegrationTestBuilder with Test/TestE/TestRunning
481baa0@bep - tpl/css: Support @import "hugo:vars" for CSS custom properties in css.Build
5d09b5e@bep #14699 - Improve and extend .Position handling in Goldmark render hooks
303e443@bep #14663 - markup/goldmark: Clean up test
638262c@bep
Dependency Updates
- build(deps): bump github.com/magefile/mage from 1.16.1 to 1.17.1
bf6e35a@dependabot[bot] - build(deps): bump github.com/go-jose/go-jose/v4 from 4.1.3 to 4.1.4
0eda24e@dependabot[bot] - build(deps): bump golang.org/x/image from 0.37.0 to 0.38.0
beb57a6@dependabot[bot]
Documentation
- readme: Revise edition descriptions and installation instructions
9f1f1be@jmooring
v0.159.2
Note that the security fix below is not a potential threat if you either:
- Trust your Markdown content files.
- Have custom render hook template for links and images.
EDIT IN: This release also adds release archives for non-extended-withdeploy builds.
What's Changed
- Fix potential content XSS by escaping dangerous URLs in Markdown links and images
479fe6c@bep - resources/page: Fix shared reader in Source.ValueAsOpenReadSeekCloser
df520e3@jmooring #14684
v0.159.1
The regression fixed in this release isn't new, but it's so subtle that we thought we'd release this sooner rather than later. For some time now, the minifier we use have stripped namespaced attributes in SVGs, which broke dynamic constructs using e.g. AlpineJS' x-bind: namespace (library used by Hugo's documentation site).
To fix this, the upstream library has hadded a keepNamespaces slice option. It was not possible to find a default that would make all happy, so we opted for an option that at least would make AlpineJS sites work out of the box:
[minify.tdewolff.svg]
keepNamespaces = ['', 'x-bind']What's Changed
v0.159.0
This release greatly improves and simplifies management of Node.js/npm dependencies in a multi-module setup. See this page for more information.
Note
- Replace deprecated site.Data with hugo.Data in tests
a8fca59@bep - Replace deprecated excludeFiles and includeFiles with files in tests
182b104@bep - Replace deprecated :filename with :contentbasename in the permalinks test
eb11c3d@bep
Bug fixes
- tpl/tplimpl: Fix Vimeo shortcode test
eaf4c75@jmooring #14649
Improvements
- create: Return error instead of panic when page not found
807cae1@mango766 #14112 - commands: Preserve non-content files in convert output
c4fb61d@xndvaz #4621 - npm: Use workspaces to simplify
hugo mod npm packd88a29e@bep - commands: Close cpu profile file when StartCPUProfile fails
9dd9c76@buley - Remove the AI Watchdog workflow for now
3315a86@bep - Remove 'bep' from MR user logins skip list
3824484@bep - tpl/tplimpl: Comment out the Vimeo simple shortcode tests
7813c5c@bep #14649
Dependency Updates
- build(deps): bump github.com/olekukonko/tablewriter from 1.1.3 to 1.1.4 (#14641)
3ff9b7f@dependabot[bot] - build(deps): bump github.com/yuin/goldmark from 1.7.16 to 1.7.17
be93ccd@dependabot[bot] - build(deps): bump github.com/magefile/mage from 1.15.0 to 1.16.1
2669bca@dependabot[bot] - build(deps): bump golang.org/x/image from 0.36.0 to 0.37.0
753d447@dependabot[bot] - build(deps): bump google.golang.org/grpc from 1.78.0 to 1.79.3
4f39d72@dependabot[bot]
Documentation
v0.158.0
This release adds css.Build, native and very fast bundling/transformation/minifying of CSS resources. Also see the new strings.ReplacePairs, a very fast option if you need to do many string replacements.
Notes
- Upgrade to to Go 1.26.1 (#14597) (note)
1f578f1@bep #14595. This fixes a security issue in Go's template package used by Hugo: https://www.cve.org/CVERecord?id=CVE-2026-27142
Deprecations
The methods and config options are deprecated and will be removed in a future Hugo release.
Also see this article
Language configuration
languageCode→ Uselocaleinstead.languages.<lang>.languageCode→ Uselanguages.<lang>.localeinstead.languages.<lang>.languageName→ Uselanguages.<lang>.labelinstead.languages.<lang>.languageDirection→ Uselanguages.<lang>.directioninstead.
Language methods
.Site.LanguageCode→ Use.Site.Language.Localeinstead..Language.LanguageCode→ Use.Language.Localeinstead..Language.LanguageName→ Use.Language.Labelinstead..Language.LanguageDirection→ Use.Language.Directioninstead.
Bug fixes
- tpl/css: Fix external source maps
e431f90@bep #14620 - hugolib: Fix server no watch
59e0446@jmooring #14615 - resources: Fix context canceled on GetRemote with per-request timeout
842d8f1@bep #14611 - tpl/tplimpl: Prefer early suffixes when media type matches
4eafd9e@bep #13877 #14601 - all: Run go fix ./...
e310822@bep - internal/warpc: Fix SIGSEGV in Close() when dispatcher fails to start
c9b88e4@bep #14536 - Fix index out of range panic in fileEventsContentPaths
f797f84@bep #14573
Improvements
- resources: Re-publish on transformation cache hit
3c980c0@bep #14629 - create/skeletons: Use css.Build in theme skeleton
404ac00@jmooring #14626 - tpl/css: Add a test case for rebuilds on CSS options changes
06fcb72@bep - hugolib: Allow regular pages to cascade to self
9b5f1d4@jmooring #14627 - tpl/css: Allow the user to override single loader entries
623722b@bep #14623 - tpl/css: Make default loader resolution for CSS @import and url() always behave the same
a7cbcf1@bep #14619 - internal/js: Add default mainFields for CSS builds
36cdb2c@jmooring #14614 - Add css.Build
3e3b849@bep #14609 #14613 - resources: Use full path for Exif etc. decoding error/warning messages
c47ec23@bep #12693 - Move to new locales library and upgrade CLDR from v36.1 to v48.1
4652ae4@bep - tpl/strings: Add strings.ReplacePairs function
13a95b9@jmooring #14594 - github: Remove pull_request_template.md
54c8048@bep - testing: Make commands tests pass in Go 1.26.1
157bfdd@bep - refactor: Deprecate language configuration and template methods
d4f2122@jmooring #14269 - Replace Exif with Meta in tests
991d2f9@bep - resources: Improve getImageOps error message
e857777@jmooring #14571 - resources/images: Add IsImageResourceWithMeta etc. tests for bmp and gif
44dc384@bep #14568
Dependency Updates
- deps: Upgrade github.com/evanw/esbuild v0.27.3 => v0.27.4
0e46a97@bep - build(deps): bump github.com/getkin/kin-openapi from 0.133.0 to 0.134.0
c27d9e8@dependabot[bot] - build(deps): bump golang.org/x/tools from 0.42.0 to 0.43.0
098eac5@dependabot[bot] - build(deps): bump gocloud.dev from 0.44.0 to 0.45.0
87f8de8@dependabot[bot] - build(deps): bump golang.org/x/sync from 0.19.0 to 0.20.0
67ef6c6@dependabot[bot] - build(deps): bump golang.org/x/net from 0.50.0 to 0.51.0 (#14569)
b29c2f7@dependabot[bot] - build(deps): bump github.com/tdewolff/minify/v2 from 2.24.9 to 2.24.10 (#14585)
e91d191@dependabot[bot] - build(deps): bump github.com/bep/imagemeta from 0.15.0 to 0.17.0 (#14584)
a8a54bd@dependabot[bot]
v0.157.0
The notable new feature is GitInfo support for Hugo Modules. See this repo for a runnable demo where multiple versions of the same content is mounted into different versions.
Bug fixes
- Fix menu pageRef resolution in multidimensional setups
3dff7c8@bep #14566 - docs: Regen and fix the imaging docshelper output
8e28668@bep #14562 - hugolib: Fix automatic section pages not replaced by sites.complements
a18bec1@bep #14540
Improvements
- Handle GitInfo for modules where Origin is not set when running go list
d98cd4a@bep #14564 - commands: Update link to highlighting style examples
6805997@jmooring #14556 - Add AVIF, HEIF and HEIC partial support (only metadata for now)
49bfb10@bep #14549 - resources/images: Adjust WebP processing defaults
b7203bb@jmooring - Add Page.GitInfo support for content from Git modules
dfece5b@bep #14431 #5533 - Add per-request timeout option to
resources.GetRemote2d691c7@vanbroup - Update AI Watchdog action version in workflow
b96d58a@bep - config: Skip taxonomy entries with empty keys or values
65b4287@bep #14550 - Add guideline for brevity in code and comments
cc338a9@bep - modules: Include JSON error info from go mod download in error messages
3850881@bep #14543
Dependency Updates
- build(deps): bump github.com/tdewolff/minify/v2 from 2.24.8 to 2.24.9
9869e71@dependabot[bot] - build(deps): bump github.com/bep/imagemeta from 0.14.0 to 0.15.0
8f47fe8@dependabot[bot]
v0.156.0
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
See this topic for more info.
Removed
These have all been deprecated at least since v0.136.0 and any usage have been logged as an error for a long time:
Template functions
- data.GetCSV / getCSV (use resources.GetRemote)
- data.GetJSON / getJSON (use resources.GetRemote)
- crypto.FNV32a (use hash.FNV32a)
- resources.Babel (use js.Babel)
- resources.PostCSS (use css.PostCSS)
- resources.ToCSS (use css.Sass)
Page methods:
- .Page.NextPage (use .Page.Next)
- .Page.PrevPage (use .Page.Prev)
Paginator:
- .Paginator.PageSize (use .Paginator.PagerSize)
Site methods:
- .Site.LastChange (use .Site.Lastmod)
- .Site.Author (use .Site.Params.Author)
- .Site.Authors (use .Site.Params.Authors)
- .Site.Social (use .Site.Params.Social)
- .Site.IsMultiLingual (use hugo.IsMultilingual)
- .Sites.First (use .Sites.Default)
Site config:
- paginate (use pagination.pagerSize)
- paginatePath (use pagination.path)
File caches:
- getjson cache
- getcsv cache
Notes
- Remove items deprecated <= v0.136.0 (note)
af5051e@bep - hugolib: Move site.Data to hugo.Data, deprecate Site.AllPages/BuildDrafts/Languages
86aa625@bep #14521 - hugolib: Add Page.Sites to Site.Sites deprecation notice
4148ede@jmooring #14532 - resources/page: Deprecate cascade._target in favor of cascade.target
828ee72@jmooring #14341 - tpl/tplimpl: Throw error when calling gist shortcode
4384f9b@jmooring #14491 - tpl/tplimpl: Throw error when calling twitter/twitter_simple shortcodes
55d136d@jmooring #14488
Bug fixes
- tpl/internal: Replace deprecated parser.ParseDir and doc.New
4a641d1@bep #14513 - commands: Fix --panicOnWarning flag having no effect with module version warnings
3f9d0ad@bep #14524 - paths: Fix handling of _ as a path name
32027e5@khayyamsaleem #14344 - docs: Fix lineNos default value in docs.yaml
498431d@jmooring - hugolib: Fix term title when taxonomy name contains spaces
773664b@bep #13422
Improvements
- hugolib: Simplify sites collection
bba2aed@bep - hugolib: Adjust hugo.Sites.Default
29b8e17@bep #14531 - Move common/hugo/HugoInfo to resources/page
3c82340@bep - hugolib: Add hugo.Sites and .Site.IsDefault(), modify .Site.Sites
ab62320@jmooring #14479 #14481 - output: Remove unused method
8d19f5a@bep #14522 - Update AI assistance guidelines in CONTRIBUTING.md
7729473@bep - tpl/collections: Speed up where and sort performance
47e39af@bep - commands: Skip chmod for files without owner-write permission
7850e7c@jmooring #14507 - tpl/collections: Add some more benchmarks for where and sort
2e5132d@bep - all: Change site to project where appropriate
19ab3f5@jmooring #14504 - markup/highlight: Allow lineNos to be true, false, "inline", or "table"
3158a51@jmooring #13481 - Upgrade to Go 1.26
b358a65@bep - tpl: Move from md5 to xxhash for some in memory keys
8ae5e1a@bep - testscripts/commands: Update 'future' date to far future
e277659@toddy15 #14486
Dependency Updates
- build(deps): bump google.golang.org/api from 0.255.0 to 0.267.0
d8ec0ee@dependabot[bot] - build(deps): bump github.com/bep/textandbinarywriter
21be4af@dependabot[bot] - build(deps): bump github.com/bep/simplecobra from 0.6.1 to 0.7.0
e549016@dependabot[bot] - build(deps): bump github.com/bep/tmc from 0.5.1 to 0.6.0
a392906@dependabot[bot] - build(deps): bump github.com/gohugoio/hugo-goldmark-extensions/extras
86786c9@dependabot[bot] - build(deps): bump github.com/gohugoio/hugo-goldmark-extensions/passthrough
7a7308a@dependabot[bot] - build(deps): bump golang.org/x/tools from 0.41.0 to 0.42.0
2d1d731@dependabot[bot] - build(deps): bump github.com/bep/helpers from 0.6.0 to 0.7.0
b26fbf8@dependabot[bot] - build(deps): bump golang.org/x/image from 0.35.0 to 0.36.0
7358309@dependabot[bot]
Build Setup
- snap: Stop building for ppc64el and s390x
e6f01bb@jmooring #14519 - Reapply "release: Support alpha, beta, and RC releases"
de0c9f3@jmooring #14466
Documentation
- docs: Regenerate docs.yaml
8b7b6af@bep - docker: Add full tar and openssh-client to support GitHub Actions
7137714@jmooring #14502
v0.155.3
What's Changed
- hugolib: Don't render default site redirect for non-primary isHTML output formats
6ac7d08@bep #14482 - server: Fix stuck server global error logging
24eb84f@bep #14469 - build(deps): bump github.com/evanw/esbuild from 0.27.2 to 0.27.3
95a3678@dependabot[bot] - server: Fix panic when the server browser error handler tried to use a config in a state of flux
9045797@bep #14470
v0.155.2
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.
- Fix template change detection for multi-version sites
0f1c7d1@bep #14461 - resources/image: Add some image decode/encode debug logging
6bd2bde@bep #14337 #14460
v0.155.1
What's Changed
- Fix image DecodeConfig regression of WebP images from file cache
b5d43cd@bep #14453 - resources/images: Fix WebP useSharpYuv being ignored
b1e1eed@jmooring #14449 - tpl/tplimpl: Remove failing Twitter tests
f522a72@jmooring
v0.155.0
Some notable new things in this release are:
- 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
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. - 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
Bug fixes
- Fix data race when clearing cache in cachebusters
8a979d5@wjiec - resources/images: Fix comment for Quality field in ImageConfig
fd49df8@bep - Fix panic reported in discourse
c7b35c8@bep #14441 - Fix recently introduced partial rendering bug
8dfcece@bep #14433 - tpl: Fix partial decorator panic when partial returns falsy
f472dd4@simonheimlicher #14419 - resources: Fix race condition in test helper
48566b6@simonheimlicher - Fix cascade draft panic
11f7f39@bep #14409 #14412 - hugolib: Fix multilingual alias generation
5ba03bf@jmooring #14388 - Fix file mount specifity issue within the same module
c1b2e58@bep #14405 - warpc: Fix typed nil return in Start
2c61109@Sam-404-404 #14372 - hugolib: Fix relative alias generation
32334d0@jmooring #14381
Improvements
- Remove disableDate and disableLatLong from MetaConfig
5916b61@bep #14437 - internal/warpc: Make webp C defaults match the Go defaults
7eafef2@bep - testscripts: Move server tests to own folder
00c4228@bep #14439 - testing: Skip some slow tests when not running in CI
5f5b2f3@bep #14438 - magefile: Skip commands test when running mage check locally
ef7a22a@bep - Remove -p 2 parallelism limit for local test runs
9a6bfe2@bep - Add AGENTS.md and CLAUDE.md
0fc63fb@bep - Add == and != operators to range predicates
50973e7@bep - Add modulequeries file cache for module version queries
b441472@bep #14417 - Allow v1,v2 etc. style version names while still supporting full semver in queries
ac2c3fb@bep #14414 - Add range matchers for site matrix vector store filtering
192e3c4@bep #14359 - Misc webp performance work
e569dd5@bep #14370 - Move from github.com/disintegration/gift to github.com/gohugoio/gift
1a94731@bep #14397 - resources/images: Stabilize order of valid sources in error message
8e9e04e@jmooring #14390 - Add XMP and IPTC image metadata support
8e2e60d@bep #13146 - output: Add TestCanonical integration test
2bc54df@bep - Rename common/maps to common/hmaps (#14384)
608ed09@bep - Decode webp.ImageConfig natively
d36a8f5@bep #14371
Dependency Updates
- build(deps): bump golang.org/x/tools from 0.40.0 to 0.41.0
7d45614@dependabot[bot] - build(deps): bump github.com/olekukonko/tablewriter from 1.1.2 to 1.1.3
7f12c09@dependabot[bot] - build(deps): bump github.com/alecthomas/chroma/v2 from 2.23.0 to 2.23.1
dab2c33@dependabot[bot] - build(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudfront
576d55d@dependabot[bot] - build(deps): bump golang.org/x/image from 0.34.0 to 0.35.0
b9400b8@dependabot[bot] - build(deps): bump golang.org/x/mod from 0.31.0 to 0.32.0
ce0c7f4@dependabot[bot] - deps: Upgrade github.com/gohugoio/gift v0.1.0 => v0.2.0
7721411@bep - build(deps): bump github.com/alecthomas/chroma/v2 from 2.22.0 to 2.23.0
1878471@dependabot[bot] - build(deps): bump golang.org/x/net from 0.48.0 to 0.49.0
94f1ede@dependabot[bot] - build(deps): bump github.com/bep/lazycache from 0.8.0 to 0.8.1
ab374e3@dependabot[bot] - deps: Upgrade github.com/alecthomas/chroma v2.21.1 => v2.22.0
1a91330@jmooring #14368
Build Setup
Documentation
- misc: Update image processing description in README.md
b3ea2a5@jmooring - docs: Update docs.yaml
67b5435@jmooring - Make docs helper maxAge JSON output user friendly
5a64551@bep
v0.154.5
What's Changed
- Fix some default site redirect woes
a775488@bep #14357 #14361 - hugolib: Fix newly created shortcodes not found during server rebuild
66ba63c@Hasaber8 #14207 - tpl/tplimpl: Remove trailing slash from void elements
eb06a3c@jmooring
v0.154.4
What's Changed
- tpl: Fix language resolution for markdown shortcodes
ec178ea@BarkinBalci #14098 - For multiple dimensions setups, fix alias handling and multihost publish path
2d80b8a@bep #14354 #14356 - build(deps): bump github.com/goccy/go-yaml from 1.19.1 to 1.19.2
a2b2a5a@dependabot[bot]
Also see the new Page.OutputFormats.Canonical method.
v0.154.3
What's Changed
- build(deps): bump github.com/yuin/goldmark from 1.7.13 to 1.7.16
866b8e5@dependabot[bot]
v0.154.2
What's Changed
- Fix alpha/fuzzy border issue with new webp decoder for images with with transparent background
e9b9b36@bep #14339
v0.154.1
What's Changed
- Add WASM licensing information to README
8f3527f@bep - Fix partial decorator detection in partial with blocks with outer range break or continue
09048aa@bep #14333
v0.154.0
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.
A small and not very useful example:
{{ with partial "b.html" "World" }}Hello {{ . }}{{ end }}
{{ define "_partials/b.html" }}<b>{{ inner . }}</b>{{ end }}The above renders to:
<b>Hello World</b>- The new
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. - Decorators can be deeply nested, see this MR 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 := . }}
{{ if reflect.IsResource $obj }}
{{ if reflect.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 - Revert "resources/page: Fix slugorcontentbasename for section pages"
bf1d20d@bep #14104 #14325
Improvements
- helpers: Limit verbose watch output for better readability
d3b5d47@majiayu000 #14277 - tpl/reflect: Make the IsImageResource implementation less technical
86cd183@bep - internal/warpc: Increase WebP memory limit to 384 MiB
871da33@jmooring #14309 - Update tpl/reflect/reflect.go
1deec99@bep - Add reflect.Is{Page,Site,Resource,ImageResource}
b7bb557@bep #14307 - Allow partials to work as decorators
7c19c19@bep #13193
Dependency Updates
- build(deps): bump github.com/tetratelabs/wazero from 1.10.1 to 1.11.0
2637aa1@dependabot[bot]
v0.153.5
What's Changed
- images: Add compression option to image config and clean up some of the options handling
c6ae33c@bep - config: Fix cascade per language in hugo.toml regression
edeebf0@bep #14321 - images: Fix WebP quality and hint parameters being ignored
ea9675f@simonheimlicher #14316
v0.153.4
What's Changed
v0.153.3
What's Changed
- build(deps): bump github.com/bep/imagemeta from 0.12.0 to 0.12.1
96ac146@dependabot[bot] - Fix error with _content.gotmpl file with index.md siblings
d4c0e44@bep #14299
v0.153.2
What's Changed
- Fix "image: unknown format" error
a8c5d0d@bep #14295 - modules: Remove extended edition check
a94a941@bep #14284 - misc: Update edition comparison and guidance in README.md
385d1a1@jmooring
v0.153.1
[!note] This is a bug fix release. See the main release for a list of new features.
- Handle PNG named *.webp
4085ee9@bep #14288 - Revert deprecation logging for contentDir per language
168bf17@bep #14287 - Fix panic when 404 is backed by a content file
f740d7c@bep #14283 - internal/warpc: Increase WebP memory limit to 256 MiB
5f46da6@jmooring #14282
v0.153.0
[!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,
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. - 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
pkginstallers.
Also:
- The Asciidoctor integration is greatly improved.
- New template funcs urls.PathUnescape and urls.PathEscape.
- openapi3.Unmarshal now support external refs (including remote refs).
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.Sitesto 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:
- The lang option on mounts (https://gohugo.io/configuration/module/#mounts) and segments
(https://gohugo.io/configuration/segments/#segment-definition) is deprecated in favor of the more powerful
sites.matrixoption. - File mount
includeFilesandexcludeFilesare deprecated in favour of the new files filter, which supports negation.
- The lang option on mounts (https://gohugo.io/configuration/module/#mounts) and segments
(https://gohugo.io/configuration/segments/#segment-definition) is deprecated in favor of the more powerful
- 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
- Fix some outdated front matter
b82e496@bep #14271 - Fix server rebuilds on editing content with Chinese terms
e2e64ae@bep #14240 - Fix slow server startup of very big content trees
7a43b92@bep #14211 - github: Fix "no space left on device" issue in CI
b037b93@bep - docs: Fix link to CGO wiki page
5af3112@jordelver - Fix grammatical error in styleguide.md
62c4740@bep - hugolib: Fix recently introduced data race
94a6233@bep #14140 - docshelper: Fix some YAML serialization issues with sites matrix configuration
22d0c17@bep #14132 - resources/page: Fix slugorcontentbasename for section pages
25c7c18@dvdksn #14104 - all: Fix some benchmarks broken by modernize
91eac9e@bep #14107 - all: Run modernize -fix ./...
04650ce@bep #14107
Improvements
- resources/images: Don't trust the file extension when decoding JPEG and PNG images
65d43e1@bep - Add full filename to image processing error messages if possible
65a7666@bep #14278 - tailwindcss: Add referece to skipInlineImportsNotFound when import not found in assets
da5b1fc@bep #14273 - Improve error messages for template failures
0637adb@bep - Improve error handling/messages in Hugo Pipes
0bf6135@bep #14257 #14270 - images: Add a webp test with bg color
573ecb5@bep - Encode and Decode using the libwebp library via WASM with animation support
1b4514e@bep #10030 #8500 #12843 #8879 #12842 - config/allconfig: Correct error message
429e572@jmooring #14259 - tpl: Add missing functions to init files
fa7d37f@jmooring #14249 - github: Add some known humans to the AI whitelist
fae49a2@bep - langs/i18n: Prefer languageCode when picking translation file
6be463b@bep #14204 #14217 - Add entitlements for WebAssembly for macOS Tahoe
9e24b56@bep #14220 - testscripts: Move layouts file to new structure
45b67f6@bep - resources: Skip integration test if Dart Sass is not installed
5e649eb@jmooring - testing: Replace legacy config.toml with hugo.toml in most tests
3073fd5@bep - testing: Port integration tests to new templates structure
b9b304a@bep - github: Correct dependabot => dependabot[bot]
8be30ef@bep - config/privacy: Change GoogleAnalytics.RespectDoNotTrack default to true
565a10c@jmooring #13307 - Add signed and notarized MacOS pkg builds
438f113@bep #14135 - Upgrade to Go 1.25.4
dab5405@bep - tpl/urls: Add PathEscape and PathUnescape functions
1a1b062@jmooring #14209 - Speedup and simplify page assembly for deeper content trees
555dfa2@bep - gemini: Remove styleguide.md (for now)
34b0c15@bep - github: Reenable Gemini, but no auto code review
9dc38e9@bep - github: Partition tests by their root
b592d34@bep - github: Make the clean commands work
18a2afa@bep - github: Also test the root package (left out in previous commit)
0b0c827@bep - github: More disk space saving optimizations
30dc75e@bep - github: Add MR Template
6bc8e6f@jmooring - Adjust benchmark
cda4d75@bep - tpl/openapi: Add support for OpenAPI external file references
84950ed@bep #8067 - github: Skip dependabot for AI Watchdog workflow
a8ed613@bep - github: Remove the 386 test step in GitHub test workflow
b971b7f@bep #14201 - github: Remove test binaries after CI test runs
24210dc@bep - github: Adjust watchdog run logic (now with correct spelling)
0f94274@bep - github: Adjust watchdog run logic (again)
5f9c3a3@bep - github: Adjust watchdog run logic
51d77a6@bep - github: Only run AI Watchdog when the MR is ready for review
d25b619@bep - Update aiwatchdog.yml
4a76d8c@bep - Update aiwatchdog.yml
d837eff@bep - Update aiwatchdog.yml
323e306@bep - github: Add label to AI suspects and do not fail when confident
2047638@bep - github: Adjust AI Watchdog workflow to make it run MRs from forks
38efb70@bep - github: Adjust workflow permissions
bdf8b1a@bep - performance: Misc allocation improvements
f33c1a3@bep - github: Add ai-watchdog workflow and update other workflows' versions
56d7925@bep #14147 - tpl/collections: Improve collections.D
c6b6910@jmooring #14143 - Optimize memory allocations for sites matrix vector stores
ca40254@bep - gemini: Disable auto MR codereviews for now
44b5f13@bep - Update styleguide.md
2c6574e@bep - Add gemini setup files
60c4245@bep - static: Preserve .gitignore and .gitattributes in --cleanDestinationDir
5e6b269@Ahamed1846 #14097 - hugolib: Improve performance of content trees with many sections
26f31ff@bep - Add a site assembly benchmark test for a deeper site structure with more sections and pages
606415e@bep - sitesmatrix: Clary default dimension values
dc2f6ae@bep - Run go mod tidy to clean up go.mod and go.sum
a0944ac@bep - testing: Rewrite all the old style integration tests to txtar style tests
a2469d5@bep - hugolib: Delete some old integration tests
e24b604@bep - testing: Revise usage of b.N and b.Loop() in benchmarks
4c7a78f@bep - Add roles and versions as new dimensions (in addition to language)
264022a@bep #519 #13680 #13663 #13776 #13855 #13648 #13996 #14001 #14031 #13818 #13196 - Update CONTRIBUTING.md
ff0f67e@bep - hreflect: Cache reflect method lookups used in collections.Where and others
e9bda21@bep - all: Simplify the reflect usage
3893e70@bep
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] - build(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudfront
0de8f86@dependabot[bot] - build(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudfront
2b337cd@dependabot[bot] - build(deps): bump golang.org/x/image from 0.32.0 to 0.33.0
cc61d00@dependabot[bot] - build(deps): bump golang.org/x/crypto from 0.43.0 to 0.45.0
8ef2c61@dependabot[bot] - build(deps): bump github.com/tdewolff/minify/v2 from 2.24.5 to 2.24.7
b916880@dependabot[bot] - build(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudfront
2680467@dependabot[bot] - build(deps): bump golang.org/x/tools from 0.38.0 to 0.39.0
8ce80f7@dependabot[bot] - build(deps): bump github.com/tetratelabs/wazero from 1.10.0 to 1.10.1
4baa95b@dependabot[bot] - build(deps): bump github.com/bits-and-blooms/bitset
b81861f@dependabot[bot] - build(deps): bump github.com/olekukonko/tablewriter from 1.1.0 to 1.1.1
15cce89@dependabot[bot] - build(deps): bump golang.org/x/text from 0.30.0 to 0.31.0
187e683@dependabot[bot] - build(deps): bump github.com/evanw/esbuild from 0.25.12 to 0.27.0
432078a@dependabot[bot] - build(deps): bump google.golang.org/api from 0.251.0 to 0.255.0
38608c7@dependabot[bot] - build(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudfront
d75f0dc@dependabot[bot] - build(deps): bump github.com/tetratelabs/wazero from 1.9.0 to 1.10.0
579362e@dependabot[bot] - build(deps): bump github.com/evanw/esbuild from 0.25.11 to 0.25.12
0e8f88f@dependabot[bot]
Build Setup
- release: Skip pushing stable and docs update for pre-releases
c1cc65f@bep - release: Support alpha, beta, and RC releases
6630759@bep - snap: Address snapcraft deprecations
596517a@jmooring
Documentation
- markup/asciidocext: Improve Asciidoctor integration
3d21b06@jmooring #9202 #10183 #10473 #14160 - hugolib/doctree: Simplify lock setup in SimpleThreadSafeTree to reduce read allocation
fee0957@bep - github: Update asciidoctor-diagrams extension and add GoAT
9d80c39@jmooring - markup/asciidocext: Support boolean document attributes
bca171b@jmooring #14138 - github: Allow AsciiDoc content in tests to render Ditaa diagrams
9289aa4@jmooring - commands: newDocsHelper encode integers as ints in generated YAML
0efcb24@GrigoreAlexandru #14122 - github: Allow AsciiDoc content in tests to render diagrams
2c80dee@jmooring
v0.152.2
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
- deps: Update github.com/tdewolff/minify v2.24.4 => v2.24.5
1c8c21e@jmooring #14086 - hugofs: Make node_modules a "special case" mount
809ebe0@bep #14089 - github: Fix typo in stale MR message
08a0679@jordelver
v0.152.1
These fixes are are all related to the YAML library upgrade in v0.152.0.
- Expand the numeric conversions to template funcs/methods
e08278d@bep #14079 - Fix where with uint64
df4f80d@bep #14081 - Fix it so YAML integer types can be used where Go int types are expected
d4c7888@bep #14079 - tpl/compare: Fix compare/sort of uint64s
29e2c2f@bep #14078 - Fix "assignment to entry in nil map" on empty YAML config files
0579afc@bep #14074
v0.152.0
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
- config: Clone language map entries before modifying them
a130770@bep #14072 - Skip flaky test for now
9425b93@bep #14072 - Misc YAML adjustments
bd50c9c@bep #14067 - hugofs: Make sure that non-project module mounts are local paths
a8e0ca9@bep #14069 - langs/i18n: Improve reserved key error message
559a029@jmooring #14061 - langs: Add test case using a "reserved" i18n code
5bad0d5@bep #14061
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
What's Changed
- parser/pageparser: Add a testcase for nested shortcodes of the same name
989454a@bep #14054 - parser/pageparser: Fix shortcode nesting regression
1e91e46@bep #14054
v0.151.1
This release is mostly motivated by some upstream security fixes:
- Upgrade from Go 1.25.1 to Go 1.25.3 which comes with 10 security fixes.
- Go's
net/htmlpackage also has one security patch
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
- tpl: Fix strings/truncate CJK handling
88aea56@oishikazuo #14039 - parser/pagerparser: Fix closing shortcode error handling when repeated
a133393@bep
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
- build(deps): bump github.com/gohugoio/hashstructure from 0.5.0 to 0.6.0
f4c1157@dependabot[bot] - build(deps): bump golang.org/x/image from 0.30.0 to 0.32.0
54075ac@dependabot[bot] - build(deps): bump github.com/evanw/esbuild from 0.25.10 to 0.25.11
8b52303@dependabot[bot] - build(deps): bump golang.org/x/tools from 0.37.0 to 0.38.0
3d45d30@dependabot[bot] - build(deps): bump golang.org/x/mod from 0.28.0 to 0.29.0
095157c@dependabot[bot]
v0.151.0
Some notable new features in Hugo v0.151.0 are:
- New transform.HTMLToMarkdown template function. One possible use case would be to provide LLM friendly content.
- Hugo now reports OSC 9;4 progress when building; progress bars/indicators are supported by terminals such as Ghostty on Macos and Linux, Windows terminal.
- Several new config options for Markdown foot notes.
Note
- transform/livereloadinject: Skip livereload.js injection if no tags found (note)
7fd6762@AndrewChubatiuk
Improvements and bug fixes
- Fix file caching for 404 responses in resources.GetRemote
03b33ec@bep #14019 - markup/goldmark: Enhance footnote extension with backlinkHTML option
b462980@jmooring #11434 - markup/goldmark: Enhance footnote extension with auto-prefixing option
47678d8@jmooring #8045 - Adjust the terminal progress reporter a little
510d98b@bep - Add transform.HTMLToMarkdown
c5dca3b@bep #13946 - Report OSC 9;4 progress when building
ec463c0@bep - tpl: Workaround s390x precision of Atan and Tan
105d3bc@toddy15 - cache/httpcache: Add respectCacheControlNoStoreInResponse and respectCacheControlNoStoreInRequest options
3e46ba5@bep #13990 - common/hreflect: Speed up IsTrutfulValue
4d13035@bep
Dependency Updates
- build(deps): bump google.golang.org/api from 0.248.0 to 0.251.0
584f052@dependabot[bot] - build(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudfront
b76d717@dependabot[bot] - build(deps): bump github.com/aws/aws-sdk-go-v2 from 1.38.1 to 1.39.2
4d2743e@dependabot[bot] - build(deps): bump golang.org/x/tools from 0.36.0 to 0.37.0
c20f70d@dependabot[bot] - build(deps): bump github.com/spf13/afero from 1.14.0 to 1.15.0
1b55621@dependabot[bot] - build(deps): bump github.com/tdewolff/minify/v2 from 2.24.2 to 2.24.3
106c8e6@dependabot[bot] - build(deps): bump github.com/evanw/esbuild from 0.25.9 to 0.25.10
9928122@dependabot[bot] - build(deps): bump golang.org/x/text from 0.28.0 to 0.29.0
9943c1b@dependabot[bot] - build(deps): bump github.com/olekukonko/tablewriter from 1.0.9 to 1.1.0
7667573@dependabot[bot] - build(deps): bump github.com/spf13/cast from 1.9.2 to 1.10.0
d71c07c@dependabot[bot]
v0.150.1
What's Changed
- hugolib: Change duplicate content path warning to an info log
64f4073@jmooring - hugolib: Restore integration test
1140314@jmooring #13991 - commands: Map --minify CLI flag to the correct configuration key
404fd9e@jmooring #13988 - snap: Add desktop plug
b1b0cde@maxkapur - test(deps): Update setup-ruby action to v1.257.0
3eea082@maxkapur
v0.150.0
The big new feature in this relase is the new version config option on Module imports, which allows you to set the requested module version query directly in your Hugo configuration (e.g. hugo.toml). This is a feature that have been requested by many, and I (@bep) was reminded about it by this recent thread, which also outlines a common use case for this: Mounting multiple old versions/branches of API documentation into the project.
What's Changed
- build(deps): bump golang.org/x/mod from 0.27.0 to 0.28.0
d1f6a1d@dependabot[bot] - modules: Add support for direct version module imports in hugo.toml
747cf4a@bep #13964 - resources/page: Fix truncated summary logic
d8774d7@jmooring #13967 #13968 - config/security: Add PROGRAMDATA to the osenv allowlist
3b8947d@jmooring
v0.149.1
The main motivation behind this release is the Go 1.25.1 upgrade, which comes with a security fix. Hugo does not use the feature in question, but we understand that many Hugo users like to have a clean security report.
Note
Note that CSS minification now targets CSS3, removing certain optimizations that were specific to CSS2.
What's Changed
- Remove noindex meta tag from alias.html
25c0f24@lzap - Fix nilpointer on ToC heading
4f2d2b2@bep #11843 - tpl/collections: Require collections.D args to be ints
b8eb45c@bep #13952 - Upgrade to Go 1.25.1
1d90aff@bep #13960 - Fix config env handling for some slice options
e751afa@PikachuTW #13950 - minifiers: Update deprecation handling
a09b8a6@jmooring #11893 #13947 #13948
v0.148.2
What's Changed
- tpl: Add test for recent template selection regression
7ff5ec7@bep #13868 - Revert "hugolib: Honor implicit "page" type during template selection"
3937ab2@bep #13868 - Fix regression with hyphenated codeblock templates, e.g. render-codeblock-go-html-template.html
9c57af1@bep #13864 - commands: Avoid full browser refresh on simple CSS changes
d240a70@bep
v0.148.1
What's Changed
- Fix assignment to entry in nil map
6f42cfb@bep #13853 - deps: Downgrade github.com/niklasfasching/go-org v1.9.0 => v1.8.0
a84beee@bep #13846
v0.148.0
[!NOTE]
There's some minor breaking changes in this release. Please read this thread for more information.
Note
- Fix some uglyURLs issues for home, section and taxonomy kind (note)
b8ba33c@bep #4428 #7497 - Fix branch paths when OutputFormat.Path is configured (note)
f967212@bep #13829
Bug fixes
- resources/page: Allow full datetime prefix in filenames
1b4c423@jmooring #13830
Improvements
- Add Ancestors (plural) method to GitInfo, rename Ancestor field to Parent
3e2f1cd@bep #13839 - Allow creating home pages from content adapters
bba6996@bep - Remove the internal GitInfo type and make Page.GitInf() return a pointer
90d397b@bep #5693 - source: Expose Ancestor in GitInfo
61e6c73@jenbroek #5693 - config: Increase test coverage
266d46d@pixel365 - markup/goldmark: Change link and image render hook enablement to enums
84b3172@jmooring #13535 - hugolib: Honor implicit "page" type during template selection
cfc8d31@jmooring #13826 - deploy: walkLocal worker pool for performance
dd6e2c8@davidejones
Dependency Updates
- build(deps): bump github.com/evanw/esbuild from 0.25.5 to 0.25.6
0a5b870@dependabot[bot] - build(deps): bump github.com/olekukonko/tablewriter from 1.0.7 to 1.0.8
94e2c27@dependabot[bot] - build(deps): bump github.com/niklasfasching/go-org from 1.8.0 to 1.9.0
e77b2ad@dependabot[bot] - build(deps): bump github.com/alecthomas/chroma/v2 from 2.18.0 to 2.19.0
9487acf@dependabot[bot] - build(deps): bump golang.org/x/tools from 0.32.0 to 0.34.0
1e9a0b9@dependabot[bot]
Configuration
- Branch creation
- At any time (no schedule defined)
- Automerge
- At any time (no schedule defined)
- If you want to rebase/retry this MR, check this box
This MR has been generated by Mend Renovate.