Skip to content

chore(deps): update dependency hugo to v0.166.0 - #853

Open
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/hugo-0.x
Open

renovate[bot] wants to merge 1 commit into
mainfrom
renovate/hugo-0.x

Conversation

@renovate

@renovate renovate Bot commented May 1, 2026

Copy link
Copy Markdown
Contributor

ℹ️ Note

This PR body was truncated due to platform limits.

This PR contains the following updates:

Package Update Change
hugo minor 0.160.10.166.0

Release Notes

gohugoio/hugo (hugo)

v0.166.0

Compare Source

This release is mostly about hardening and bug fixes, but there are some notable changes:

  • .Render now takes an optional context argument: {{ .Render "view" $ctx }}, mirroring the partial API. This makes it possible to pass e.g. a dict to a content view. See #​15077.
  • The return keyword in templates has been reimplemented. It now works in any template (not just partials) and can be used anywhere, e.g. inside if or range blocks. See #​15212.
  • New resources.Publish template function and IndexOf method on Pages.
  • related config: new tokenize option for index values, and index creation is faster.
  • Several security fixes; see the notes below.

Note

Glob patterns

The glob library used for e.g. module mounts (includeFiles, excludeFiles), cascade targets, segments, deployment matchers and noVendor has been upgraded to v1.0.0. This is a complete rewrite of the matching engine that fixes a long list of correctness bugs, but it also means that some patterns may behave differently:

  • Malformed patterns (e.g. an unclosed {, an empty [] class) now fail with a syntax error instead of being silently accepted.
  • ** matches any sequence of characters including separators, but it is not the **/ "globstar" of shells: **/x requires the literal / and does not match x, and a/**/b does not match a/b. Use {**/,}x if you need both.
  • \ is the escape character, so a literal backslash must be written as \\.

If a pattern that used to match no longer does (or vice versa), it was most likely relying on a bug in the old engine.

Security
  • text/org content is now denied by default, as Org mode's export blocks and @@html:...@@ snippets pass raw HTML through unescaped, making it the same XSS sink as text/html. Sites with Org content can opt back in via security.allowContent.
  • Remote fetches (resources.GetRemote etc.) now validate the resolved address at dial time and reject loopback, private, link-local, CGNAT and similar ranges. This only applies under the default security.http.urls allowlist; if you have customized it, you have opted into your own hosts and the check stands down. Proxies from HTTP_PROXY/HTTPS_PROXY hide the destination address from this check and are now ignored unless you set security.http.proxyFromEnvironment = true.
  • Node.js tools (PostCSS, Tailwind CSS etc.) now fail before invocation if a symlink inside the project resolves outside the allowed read/write roots. If you have a legitimate link, add its target to security.node.permissions.allowRead.
  • Mount roots that are themselves symlinks (e.g. themes/mytheme/assets -> /somewhere/else) are now dropped. This closes a gap in the themes/ confinement; absolute mount source values are still allowed.
Other
  • {{ return <value> }} outside a partial is now an error; it was previously silently ignored.
  • A page without an explicit slug whose title contains a / (e.g. Watch/listen to this) now gets a single URL segment (.../watch-listen-to-this/) instead of a nested one (.../watch/listen-to-this/). Taxonomy and term pages are not affected.
  • Hugo is now built with Go 1.27.
KaTeX

When upgrading to Hugo v0.166.0, sites using transform.ToMath with the output option set to html or htmlAndMathml must update the KaTeX stylesheet referenced in their template(s) to version 0.18.4 or higher. Using older CSS versions like 0.16.21 will cause certain mathematical or chemical expressions to render incorrectly.

Example update:

- <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.16.21/dist/katex.min.css">
+ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.18.4/dist/katex.min.css">

See these examples:

Bug fixes

Improvements

Dependency Updates

v0.165.0

Compare Source

The two main new things is the new css.ChromaStyles template func and the new importContext option demonstrated below.

{{ $light := css.ChromaStyles (dict "targetPath" "css/components/chroma-light.css" "style" "github" "mode" "light") }}
{{ $dark := css.ChromaStyles (dict "targetPath" "css/components/chroma-dark.css" "style" "github" "mode" "dark") }}
{{ $opts := dict "minify" true "importContext" (slice $light $dark) }}
{{ $css := resources.Get "css/main.css" | css.Build $opts }}

The importContext is relevant for css.Build, js.Build, css.Sass, and css.PostCSS. and it allows you to make resources (e.g. built from resources.FromString) resolvable in e.g. CSS @import statements.

Note

Bug fixes

Improvements

Dependency Updates

Documentation

v0.164.0

Compare Source

Notable new features in this release are:

Notes

Changes

Dependency Updates

v0.163.3

Compare Source

What's Changed

v0.163.2

Compare Source

What's Changed

v0.163.1

Compare Source

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

v0.163.0

Compare Source

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 quality for 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 hint to the AVIF with the same values as for WEBP. For lossy compression, 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

Dependency Updates

v0.162.1

Compare Source

What's Changed

v0.162.0

Compare Source

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/html content files by default (e41a064). A new security.allowContent policy gates which content media types may be used for pages under /content. text/html is denied by default; sites that rely on hand-authored or adapter-emitted HTML content can opt back in with security.allowContent = ['.*'].
  • Re-check security.http.urls on every redirect hop in resources.GetRemote (86fbb0f).
  • Reject symlinked entries in resources.Get (f8b5fa0).

We will update this section later with links to CVEs where applicable.

All changes

Important

✂ PR body was truncated to here.


Configuration

📅 Schedule: (in timezone Australia/Melbourne)

  • Branch creation
    • Only on Sunday and Saturday (* * * * 0,6)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Enabled.

Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate renovate Bot added the dependencies Issues related to dependency updates label May 1, 2026
@renovate
renovate Bot enabled auto-merge May 1, 2026 19:55
@changeset-bot

changeset-bot Bot commented May 1, 2026

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: 0b0af1f

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@renovate
renovate Bot force-pushed the renovate/hugo-0.x branch 6 times, most recently from 2bb35d1 to 323b5e7 Compare May 15, 2026 17:07
@renovate
renovate Bot force-pushed the renovate/hugo-0.x branch 3 times, most recently from 7e8a4fb to d36ca17 Compare May 22, 2026 18:49
@renovate
renovate Bot force-pushed the renovate/hugo-0.x branch 3 times, most recently from da0bef5 to ae85e3d Compare May 29, 2026 15:12
@renovate renovate Bot changed the title chore(deps): update dependency hugo to v0.161.1 chore(deps): update dependency hugo to v0.162.1 May 29, 2026
@renovate
renovate Bot force-pushed the renovate/hugo-0.x branch 5 times, most recently from ee40753 to e002caf Compare June 6, 2026 01:43
@renovate
renovate Bot force-pushed the renovate/hugo-0.x branch 3 times, most recently from f5b2f65 to ea21e51 Compare June 12, 2026 16:36
@renovate renovate Bot changed the title chore(deps): update dependency hugo to v0.162.1 chore(deps): update dependency hugo to v0.163.1 Jun 12, 2026
@renovate
renovate Bot force-pushed the renovate/hugo-0.x branch 5 times, most recently from b1134ee to e1a057b Compare June 13, 2026 22:38
@renovate
renovate Bot force-pushed the renovate/hugo-0.x branch from db94b86 to 5d07d1d Compare June 27, 2026 06:41
@renovate
renovate Bot force-pushed the renovate/hugo-0.x branch from 5d07d1d to 67e656f Compare July 10, 2026 16:52
@renovate renovate Bot changed the title chore(deps): update dependency hugo to v0.163.3 chore(deps): update dependency hugo to v0.164.0 Jul 10, 2026
@renovate
renovate Bot force-pushed the renovate/hugo-0.x branch 10 times, most recently from d10fd42 to 04de4bb Compare July 18, 2026 08:29
@renovate
renovate Bot force-pushed the renovate/hugo-0.x branch from 04de4bb to c2c1c0b Compare August 14, 2026 17:34
@renovate renovate Bot changed the title chore(deps): update dependency hugo to v0.164.0 chore(deps): update dependency hugo to v0.165.0 Aug 14, 2026
@renovate
renovate Bot force-pushed the renovate/hugo-0.x branch 12 times, most recently from 1275067 to 3bd1aa1 Compare August 28, 2026 18:10
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
@renovate
renovate Bot force-pushed the renovate/hugo-0.x branch from 3bd1aa1 to 0b0af1f Compare September 11, 2026 16:02
@renovate renovate Bot changed the title chore(deps): update dependency hugo to v0.165.0 chore(deps): update dependency hugo to v0.166.0 Sep 11, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Issues related to dependency updates

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants