chore(deps): update dependency gohugoio/hugo to v0.165.0 #169
No reviewers
Labels
No labels
No milestone
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
shivering-isles/infrastructure-gitops!169
Loading…
Reference in a new issue
No description provided.
Delete branch "renovate/gohugoio-hugo-0.x"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
This PR contains the following updates:
v0.111.3→v0.165.0Release Notes
gohugoio/hugo (gohugoio/hugo)
v0.165.0Compare Source
The two main new things is the new
css.ChromaStylestemplate func and the newimportContextoption demonstrated below.The
importContextis relevant forcss.Build,js.Build,css.Sass, andcss.PostCSS. and it allows you to make resources (e.g. built fromresources.FromString) resolvable in e.g. CSS@importstatements.Note
8a55df7@bep #15178 #15171Bug fixes
f772998@bep #151892ffaf1f@bepa808f6e@bep #151746bf1524@bep #15130f961093@jmooring #15121984358f@jmooring #15114Improvements
995a215@bep #15189 #15189f88f0a9@bep #1516952c9bd7@bep44da086@bep #1517333d1f2c@bep #1516764da6d7@bep #1516170db201@bep #151038a468df@bep615e45d@bep #15112a243a61@Soundcreates7d90277@bep861ede6@bep #15101f228c87@bep7df45f6@bep89b8c32@jmooring #15116Dependency Updates
0bb337b@dependabot[bot]03dc917@dependabot[bot]c829b73@dependabot[bot]94f3908@dependabot[bot]75fcc75@dependabot[bot]b5fa03d@dependabot[bot]9da472d@dependabot[bot]635532a@dependabot[bot]9c71f60@dependabot[bot]420527f@dependabot[bot]7fe786e@dependabot[bot]03b244f@dependabot[bot]9611813@dependabot[bot]e35b7f0@dependabot[bot]0796fa7@dependabot[bot]1b701b7@dependabot[bot]a32d70b@dependabot[bot]948cfb9@dependabot[bot]8930802@dependabot[bot]Documentation
dd3f273@bep #15190d1f191c@jmooringv0.164.0Compare Source
Notable new features in this release are:
Notes
29ed932@bep #15086Changes
5a5f4a5@bepd83ce27@bep #15056c6acc24@bep #534929ed932@bep #15086671897a@bejaratommy #11794499794d@sjh9714 #1507865c8217@bepdfb35dc@bep #15072a5ec542@bep #15068 #15060e46d37a@jmooring #15057fe06735@jmooring #15052128fb17@jmooring #15062Dependency Updates
921db7b@dependabot[bot]786ce71@dependabot[bot]5ad2846@dependabot[bot]36ad9f5@dependabot[bot]7c0a0bc@dependabot[bot]a879ebf@dependabot[bot]332d5ec@dependabot[bot]212cc11@dependabot[bot]884439b@bep #15033790a8aa@bep #15017v0.163.3Compare Source
What's Changed
ce1a7e0@bep thanks to @k0ngj1 for reporting this issue.70a9068@bep9d66d51@jmooring #15039 #15040 #15043f013346@jmooring #15046v0.163.2Compare Source
What's Changed
134674f@bep #15041147f605@jmooring #14222v0.163.1Compare 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 ina00b5c7andcf9c8f9(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
93c8c7d@dependabot[bot]95e5e9f@bep #15024a00b5c7@bepcf9c8f9@bep #150192602796@jmooring #15012v0.163.0Compare 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: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).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
ff2903a@bep #14991 #14996ca68936@jmooring781fabf@bep1d018ef@anupamojha-eng #14999121bc6c@bepcf18b82@bep #1499898ad9b3@bep #14997b89e7fe@bep #11574e8fefc8@bep #14990a043d3e@bep #14992341f575@bep #14987248241b@bep #149814e47d95@bep #1497903b4b54@bep #1497979be053@bep #149830f44046@bep #149774e17421@bep #14985b01ecd4@bep #1495745c00b7@jmooring #14936 #14950 #1496528d882a@bepDependency Updates
0d29fc8@dependabot[bot]bb57404@dependabot[bot]7d1b1fb@dependabot[bot]77a1147@dependabot[bot]v0.162.1Compare Source
What's Changed
59f35cd@jmooring #14959c270975@bep #14958ea8b48a@jmooring #14948v0.162.0Compare 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:
Security fixes and hardening in Hugo
The following changes either fix a concrete issue or reduce the default attack surface of
hugobuilds.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 = ['.*'].security.http.urlson every redirect hop inresources.GetRemote(86fbb0f).resources.Get(f8b5fa0).We will update this section later with links to CVEs where applicable.
All changes
df54219@bep #149424bc7cae@bep5d51b82@jmooring #1492181d7762@jmooring #14795 #14906f8b5fa0@bep88d838a@xndvaz #14831e41a064@bep90d9f81@bep #783780e6084@jmooring #14944aeb9a5c@bep #14939c4bbc28@bepd8c7021@jmooring #14932ee4f1ac@bep #14855b613365@bep #11872d2c821b@bep4ed7600@bepcbe4339@bep #149126475d30@bep #14912 #1491767aede4@bep87f194b@bep #14897d81e3c2@bep #148977c65a4d@bepd31a927@bepc36608c@jmooring #149092f361a8@xndvaz #148865559263@jmooring #13869656fc04@bep #14062a20cb5b@bep #148984d775cb@bep #13492ae7bf74@bep #13987ba5d812@bep #12899 #14882be4a0df@bepe4cf565@bep9e64953@xndvaz #13737f0cfc28@xndvaz #1368816e854a@bep86fbb0f@bep #148717d4af7a@xndvaz #712828147cb@bep #14862e51e761@bep #148497011239@bep #14848694906f@cyphercodes #14820d27b9c0@ogulcanaydogan #1406262cef36@bep #14837ff22c62@jmooring #148174f444c8@dependabot[bot]fe6c726@dependabot[bot]6a2a038@dependabot[bot]cf1de59@dependabot[bot]97f990c@dependabot[bot]b99634e@dependabot[bot]fdd977e@dependabot[bot]123018d@dependabot[bot]b88fa8c@bep #14839v0.161.1Compare Source
What's Changed
c4eba92@bep #148288b40a96@bep #14823d65af84@bep #14824454450a@bep #14825v0.161.0Compare Source
This release contains two security hardening fixes:
--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 supportedBut there are some notable new features, as well:
Nested vars support in css.Build and css.Sass
A practical example in
css.Buildwould be to have something like this inhugo.toml:And in the stylesheet:
Slice-based permalinks config
The
permalinksconfiguration is now much more flexible (the old setup still works). It uses the same target matchers as in thecascadeconfig, meaning you can now do: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.mdwhich told Hugo that the content files was in English. With the new setup you could also name the filecontent/mypost._language_en_.md. This alone doesn't sound very useful, but this allows you to use more prefixes:All Changes
72b85d5@jmooring #79826436deb@jmooring #12602 #12786 #14112 #147691eea9fb@jmooring #147638d6145f@bep #147569747724@bep #14749 #147527622dd8@bep #147050814059@bep #148108920d56@jmooring #14807633cc77@jmooring #142434c40c6d@bepd2594db@bepab2de51@bep75f6183@jmooring1b7495b@jmooring #910979f030b@bep #14792a54c398@bep #7287f5fce93@bep #147774169c1f@bep #147837574e35@bep017a7cd@bep #14744e3413d9@bepb01cc14@bep #147718ee19ff@bep0d58e42@jmooringce2a156@bep #14750a17bdbc@jmooring #146968f94d65@bep90d8bf3@bepbbb42b5@bepd4ae662@dependabot[bot]9ede5fb@dependabot[bot]833a878@dependabot[bot]4c03129@dependabot[bot]080970b@bep896bc89@dependabot[bot]100dde5@dependabot[bot]bdebb79@dependabot[bot]52123ae@dependabot[bot]38b8afd@dependabot[bot]9276660@dependabot[bot]790f408@dependabot[bot]de6955b@dependabot[bot]a77bd52@bep #14758547ab29@dependabot[bot]9a5c7e0@dependabot[bot]6613b08@dependabot[bot]582c26e@dependabot[bot]a4f2a8a@dependabot[bot]v0.160.1Compare Source
What's Changed
8b00030@bep #14677c485516@bep #14740161d0d4@bep #1245745e4596@bep #1473258927aa@bepce009e3@bep #146810755872@chicks-netv0.160.0Compare Source
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
4e91e14@bep #14710dc9b51d@bep #1471543aad71@bep #14711Improvements
481baa0@bep5d09b5e@bep #14699303e443@bep #14663638262c@bepDependency Updates
bf6e35a@dependabot[bot]0eda24e@dependabot[bot]beb57a6@dependabot[bot]Documentation
9f1f1be@jmooringv0.159.2Compare Source
Note that the security fix below is not a potential threat if you either:
EDIT IN: This release also adds release archives for non-extended-withdeploy builds.
What's Changed
479fe6c@bepdf520e3@jmooring #14684v0.159.1Compare Source
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
keepNamespacesslice 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:What's Changed
42289d7@bep #14669v0.159.0Compare Source
This release greatly improves and simplifies management of Node.js/npm dependencies in a multi-module setup. See this page for more information.
Note
a8fca59@bep182b104@bepeb11c3d@bepBug fixes
eaf4c75@jmooring #14649Improvements
807cae1@mango766 #14112c4fb61d@xndvaz #4621hugo mod npm packd88a29e@bep9dd9c76@buley3315a86@bep3824484@bep7813c5c@bep #14649Dependency Updates
3ff9b7f@dependabot[bot]be93ccd@dependabot[bot]2669bca@dependabot[bot]753d447@dependabot[bot]4f39d72@dependabot[bot]Documentation
d2043cf@bep4f3c398@bepv0.158.0Compare Source
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
1f578f1@bep #14595. This fixes a security issue in Go's template package used by Hugo: https://www.cve.org/CVERecord?id=CVE-2026-27142Deprecations
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
e431f90@bep #1462059e0446@jmooring #14615842d8f1@bep #146114eafd9e@bep #13877 #14601e310822@bepc9b88e4@bep #14536f797f84@bep #14573Improvements
3c980c0@bep #14629404ac00@jmooring #1462606fcb72@bep9b5f1d4@jmooring #14627623722b@bep #14623a7cbcf1@bep #1461936cdb2c@jmooring #146143e3b849@bep #14609 #14613c47ec23@bep #126934652ae4@bep13a95b9@jmooring #1459454c8048@bep157bfdd@bepd4f2122@jmooring #14269991d2f9@bepe857777@jmooring #1457144dc384@bep #14568Dependency Updates
0e46a97@bepc27d9e8@dependabot[bot]098eac5@dependabot[bot]87f8de8@dependabot[bot]67ef6c6@dependabot[bot]b29c2f7@dependabot[bot]e91d191@dependabot[bot]a8a54bd@dependabot[bot]v0.157.0Compare Source
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
3dff7c8@bep #145668e28668@bep #14562a18bec1@bep #14540Improvements
d98cd4a@bep #145646805997@jmooring #1455649bfb10@bep #14549b7203bb@jmooringdfece5b@bep #14431 #5533resources.GetRemote2d691c7@vanbroupb96d58a@bep65b4287@bep #14550cc338a9@bep3850881@bep #14543Dependency Updates
9869e71@dependabot[bot]8f47fe8@dependabot[bot]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@dependabot[bot]364d237@dependabot[bot]079f3eb@dependabot[bot]4e6f2b6@dependabot[bot]dff5e16@dependabot[bot]c82a035@dependabot[bot]86b01ed@dependabot[bot]9e7182e@dependabot[bot]cf3ad62@dependabot[bot]bf42138@dependabot[bot]57fecb6@dependabot[bot]6d0ab6a@dependabot[bot]0de8f86@dependabot[bot]2b337cd@dependabot[bot]cc61d00@dependabot[bot]8ef2c61@dependabot[bot]b916880@dependabot[bot]2680467@dependabot[bot]8ce80f7@dependabot[bot]4baa95b@dependabot[bot]b81861f@dependabot[bot]15cce89@dependabot[bot]187e683@dependabot[bot]432078a@dependabot[bot]38608c7@dependabot[bot]d75f0dc@dependabot[bot]579362e@dependabot[bot]0e8f88f@dependabot[bot]Build Setup
c1cc65f@bep6630759@bep596517a@jmooringDocumentation
3d21b06@jmooring #9202 #10183 #10473 #14160fee0957@bep9d80c39@jmooringbca171b@jmooring #141389289aa4@jmooring0efcb24@GrigoreAlexandru #141222c80dee@jmooringv0.152.2Compare Source
In
v0.152.0we 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. Inv0.152.0we narrowed module/themes mounts to be local, which made the setup in the bug report listed below fail: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:We now have the
node_modulesas 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
1c8c21e@jmooring #14086809ebe0@bep #1408908a0679@jordelverv0.152.1Compare Source
These fixes are are all related to the YAML library upgrade in v0.152.0.
e08278d@bep #14079df4f80d@bep #14081d4c7888@bep #1407929e2c2f@bep #140780579afc@bep #14074v0.152.0Compare Source
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
trueorfalse. 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.yes,Yes,YES,y,Y,on,On,ONtrue(bool)yes,Yes,YES,y,Y,on,On,ON(string)no,No,NO,n,N,off,Off,OFFfalse(bool)no,No,NO,n,N,off,Off,OFF(string)Note
a3d9548@bep #8822 #13043 #14053Improvements
a130770@bep #140729425b93@bep #14072bd50c9c@bep #14067a8e0ca9@bep #14069559a029@jmooring #140615bad0d5@bep #14061Dependency Updates
184b10e@bep9e344bb@dependabot[bot]Build Setup
d51adca@bepv0.151.2Compare Source
What's Changed
989454a@bep #140541e91e46@bep #14054v0.151.1Compare Source
This release is mostly motivated by some upstream security fixes:
net/htmlpackage also has one security patchI, @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
88aea56@oishikazuo #14039a133393@bepImprovements
e2fb0b0@bep29cf874@imomaliev1b4dd43@jmooring #140464414ef7@bep9197deb@bepDependency Updates
f4c1157@dependabot[bot]54075ac@dependabot[bot]8b52303@dependabot[bot]3d45d30@dependabot[bot]095157c@dependabot[bot]v0.151.0Compare Source
Some notable new features in Hugo v0.151.0 are:
Note
7fd6762@AndrewChubatiukImprovements and bug fixes
03b33ec@bep #14019b462980@jmooring #1143447678d8@jmooring #8045510d98b@bepc5dca3b@bep #13946ec463c0@bep105d3bc@toddy153e46ba5@bep #139904d13035@bepDependency Updates
584f052@dependabot[bot]b76d717@dependabot[bot]4d2743e@dependabot[bot]c20f70d@dependabot[bot]1b55621@dependabot[bot]106c8e6@dependabot[bot]9928122@dependabot[bot]9943c1b@dependabot[bot]7667573@dependabot[bot]d71c07c@dependabot[bot]v0.150.1Compare Source
What's Changed
64f4073@jmooring1140314@jmooring #13991404fd9e@jmooring #13988b1b0cde@maxkapur3eea082@maxkapurv0.150.0Compare Source
The big new feature in this relase is the new
versionconfig 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
d1f6a1d@dependabot[bot]747cf4a@bep #13964d8774d7@jmooring #13967 #139683b8947d@jmooringv0.149.1Compare Source
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
25c0f24@lzap4f2d2b2@bep #11843b8eb45c@bep #139521d90aff@bep #13960e751afa@PikachuTW #13950a09b8a6@jmooring #11893 #13947 #13948v0.149.0Compare Source
Hugo
v0.149.0comes with bug fixes and a set of new features/improvements, notably::sectionslugand:sectionslugs, especially useful in multilingual Hugo projects.--omitClassCommentsflag onhugo gen chromastylesformatoption in transform.UnmarshalNote
80e973e@bepBug fixes
bb4e66c@justuswilhelm #1259913b43e6@bep #1392587e100e@bepImprovements
84b5123@bep1ba8087@bep61ec7a2@bepc289fca@bepecdef2b@minxinyi12ace3a@DustinFischer #13788c14fddd@bep #13924 #13931186934f@bepbff4ddd@cuiweixie348aae9@Nigel239261482cf@jmooring #126055fdcc09@jmooring #134012216028@n1xx1 #13889ecc3dd1@n1xx1 #13887de4a7f1@bepDependency Updates
45ec2f8@dependabot[bot]84dd495@dependabot[bot]327bbc6@dependabot[bot]2447138@dependabot[bot]cfc38ec@bep #1391722e579e@dependabot[bot]b886615@dependabot[bot]885cd29@dependabot[bot]debf3c5@dependabot[bot]1649f31@dependabot[bot]ccd6a4b@dependabot[bot]6dc1a17@dependabot[bot]806d484@dependabot[bot]04ee1b9@dependabot[bot]7a86fe9@dependabot[bot]f5245a7@dependabot[bot]5029676@jmooring #13846Documentation
2912415@jmooring01b0eda@bepv0.148.2Compare Source
What's Changed
7ff5ec7@bep #138683937ab2@bep #138689c57af1@bep #13864d240a70@bepv0.148.1Compare Source
What's Changed
6f42cfb@bep #13853a84beee@bep #13846v0.148.0Compare Source
Note
b8ba33c@bep #4428 #7497f967212@bep #13829Bug fixes
1b4c423@jmooring #13830Improvements
3e2f1cd@bep #13839bba6996@bep90d397b@bep #569361e6c73@jenbroek #5693266d46d@pixel36584b3172@jmooring #13535cfc8d31@jmooring #13826dd6e2c8@davidejonesDependency Updates
0a5b870@dependabot[bot]94e2c27@dependabot[bot]e77b2ad@dependabot[bot]9487acf@dependabot[bot]1e9a0b9@dependabot[bot]v0.147.9Compare Source
Improvements and fixes
6a4a3ab@bep #1380636f6f98@bep #1381018a9ca7@jmooring #13351b6c8dfa@jmooring #138034217fee@jmooring #82094ef5720@bepDependency Updates
621ea42@dependabot[bot]34e8378@dependabot[bot]4d3ebe4@dependabot[bot]b5c0383@jmooringv0.147.8Compare Source
The primary motivation behind this release is to get the Docker package security patched and up to date.
Improvements
8e61f1f@bep #13783f37412a@bep #1378001241d5@jmooring #1353832eb1a8@bepDependency Updates
21a4a9a@dependabot[bot]7a4a479@dependabot[bot]54065b7@dependabot[bot]e333836@dependabot[bot]cc7bfee@dependabot[bot]v0.147.7Compare Source
Bug fixes
5273a88@bep #13767766a2e7@bep #13748843ffeb@jmooring #13755Improvements
6334948@bep #13735bff5d19@pixel365da370d3@pixel3656bd328c@bepDependency Updates
7525963@dependabot[bot]0df9f35@dependabot[bot]302e6a7@dependabot[bot]202fe0d@dependabot[bot]13e1617@bepv0.147.6Compare Source
What's Changed
e57dcd3@deiningeaf5ace@bep #137439ad26b6@bep #13740f471936@bep #13727013c8cf@jmooring #13729v0.147.5Compare Source
We have gotten some requests about updating the minifier library we use, so here you go @myitcv and others. I'm probably going to regret doing that particular upgrade on a Thursday, but so be it.
What's Changed
0c7b1a3@bep #13723970b887@dependabot[bot]v0.147.4Compare Source
What's Changed
a03a245@bep #137195a81a3a@bep #136996131782@bep #136986142bc7@bep #13715v0.147.3Compare Source
Mostly bug fixes here, but also a new template func to get a really big number. You can read about why that is useful in the documentation.
8142699@jmooring #13700bc98e7a@bep #13707c745a3e@bep #136929d1d8c8@jmooring #1370184d7a10@jmooring #13687325a0db@jmooring #13693v0.147.2Compare Source
What's Changed
363ab48@bep #1368980f0595@bep #13684b39b249@bep #13681v0.147.1Compare Source
Bug fixes
be93d52@bep #13672a1cb15e@bep #13648Improvements
5fec782@bep #13672 #13668673a4d0@jmooring #1256431db7ed@jmooring #13655Dependency Updates
620fc87@dependabot[bot]8b2124e@dependabot[bot]927d1ec@dependabot[bot]v0.147.0Compare Source
This release comes with a new
alignyoption (shoutout to @pranshugaba for the implementation) for images.Text that, in combination withalignxmakes it simple to e.g. center the text on top of image in both axis. But the main reason this release comes now and not later, is the improvements/fixes to the order Hugo applies the default configuration to some keys. This is inherited from how we did this before we rewrote the configuration handling, and it made the merging of configuration from modules/themes into the config root harder and less flexible than it had to be. Me, @bep, looking into this, was triggered by this forum topic. Having many sites share a common configuration is very useful. With this release, you can simply get what the thread starter asks for by doing something à la:See the documentation for details.
Bug fixes
07983e0@bep #136515c49140@jmooring #13650179aea1@bep #13643 #136466a0e042@coliffImprovements
75b219d@jmooringad4f63c@bep5320231@bep #134142fce0ba@pranshugabaDependency Updates
1bd7ac7@dependabot[bot]41cb880@dependabot[bot]v0.146.7Compare Source
Bug fixes
4967308@bep #136326d69dc8@bep #136364eb0e42@bep #136215e62cc6@bep #13630Improvements
db72a1f@jmooring #88591408c15@bep #13627Dependency Updates
ad78761@dependabot[bot]9c65b9e@dependabot[bot]be3b147@dependabot[bot]v0.146.6Compare Source
What's Changed
088cd2f@bep #13628v0.146.5Compare Source
What's Changed
64cf008@dependabot[bot]d61b9fc@bep #13612v0.146.4Compare Source
What's Changed
65c94c7@bep #13601e8e8ce1@bep #13600cf9e690@bep #136058a2830f@bep #136041e0287f@bep #13599v0.146.3Compare Source
What's Changed
30b9c19@bep #13588c871062@bep #13595v0.146.2Compare Source
What's Changed
d1c3944@bep #135931074e01@bep #13584c19f1f2@bep #135879221cbc@bep #13583v0.146.1Compare Source
This fixes a regression introduced in v0.146.0 released earlier today.
3b9f2a7@bep #13579v0.146.0Compare Source
The big new thing in this release is a fully refreshed template system – simpler and much better. We're working on the updated documentation for this, but see this issue for some more information. We have gone to great lengths to make this as backwards compatible as possible, but make sure you test your site before going live with this new version. This version also comes with a full dependency refresh and some useful new template funcs:
Bug fixes
6f14dbe@jmooring #13531Improvements
383dd82@bep #13577208a0de@bep #13571d4c6dd1@bep #1357124ac6a9@jmooring #13489 #135441e00842@jmooring83cfdd7@bep #13541 #13545 #13515 #7964 #13365 #12988 #4891812ea0b@bep07cbe57@jmooring #13548c15ebce@jmooring #135308d2379b@bepa6bd677@jmooring #13516f34cdc3@thevilledev52561d5@bepd28c84a@khayyamsaleem #13471b9add1c@jmooring #1344593df176@jmooring #13475eebea9e@willfaught3f2e1c0@bep #134653a11d22@hannesbraunDependency Updates
18d2d2f@dependabot[bot]cd3e349@dependabot[bot]8cd799a@dependabot[bot]af0602c@dependabot[bot]650fe6c@dependabot[bot]d63491b@dependabot[bot]e6e18e9@dependabot[bot]43af3bc@dependabot[bot]10b5543@jmooring26d986f@dependabot[bot]ebc0693@dependabot[bot]7ca6bb0@dependabot[bot]bddd2f9@dependabot[bot]1c69135@dependabot[bot]17db4ed@dependabot[bot]3968f91@dependabot[bot]e9bd237@dependabot[bot]f4f21f5@dependabot[bot]61c39ae@dependabot[bot]2037137@bep #13484d78d4cf@dependabot[bot]f9aae15@dependabot[bot]b068671@dependabot[bot]93d9c05@dependabot[bot]Documentation
a98ec3b@jmooringv0.145.0Compare Source
The notable new feature is the new transform.PortableText function that makes it possible to use the Sanity CMS with Hugo.
Bug fixes
4094a1e@coliff521911a@bepab9e545@martey381c0da@bep #13443227e429@bepc3d435a@bep #13420Improvements
c498d0f@bep2f4e666@coliff04f21b4@bepd0ce942@jmooringDependency Updates
6927e6f@bep #13449b7ae24b@dependabot[bot]1a4851f@dependabot[bot]d1f2330@dependabot[bot]Documentation
e5eecbd@margauBuild Setup
4fd7f32@jmooringv0.144.2Compare Source
What's Changed
c3d435a@bep #13420v0.144.1Compare Source
What's Changed
494e88a@bep #13416v0.144.0Compare Source
Go 1.24 upgrade, several performance improvements, new :contentbasename and :slugorcontentbasename permalink tokens, enable KaTeX
mhchemextension for transform.ToMath, full dependency refresh, newdropoption for js.Build, new auth module option useful for private module repositories, autoID support for definition terms, newconfigurationTypesconfiguration option, and more. For more details, see this topic.Note
24cc255@bep #13405 #13410Bug fixes
85c1727@bep641403f@bep #13406c1f4228@p-westone865d59@bep #13344Improvements
5de3913@jmooring7b7a0f3@bep #11722cb7a433@hacdias #11722157d370@bep #13403 #11566503dcf6@jmooring2c77719@bep #13385fd38aee@bep #13384d25f7ec@bep #1336234dcac5@jmooringee43860@jmooringfd8b0fb@bep #133819b5f786@bep #12484e6feb9e@bep #13373f02da7f@theSuessc2fb221@bep #12274a352e69@jmooring #133571dd27be@bepeb7a5aa@bep #13355029d1e0@bepDependency Updates
a2ca956@dependabot[bot]367fe52@dependabot[bot]9c2f8ec@dependabot[bot]bd77944@dependabot[bot]2e835d0@dependabot[bot]d89b9d8@dependabot[bot]8721a35@dependabot[bot]c054e18@dependabot[bot]5e4ffa0@dependabot[bot]0cdcc2b@dependabot[bot]a591c44@dependabot[bot]2d86a05@dependabot[bot]22ee091@dependabot[bot]b50ab04@dependabot[bot]b772f0e@dependabot[bot]d58c019@dependabot[bot]Documentation
5dd0ba0@jmooringf0c1852@jmooring #13360v0.143.1Compare Source
What's Changed
760c13a@bep #133323bd73d2@alexandear7104de8@jmooring #13333835579b@bepv0.143.0Compare Source
This is mostly a bug fix release, ironing out some quirks with the partial server rebuilds etc., but notable is also the new responseHeaders option on
resources.GetRemotethat allows you to extract headers from the server’s response.Bug fixes
db28695@bep #13316329b234@bep #132546c68142@bep #13316cd7dc7a@bep #13014bb7b3d3@bep #12465f704d75@chalinImprovements
778f0d9@bep13b208e@alex-shpak33b46d8@jmooring #13320e08d9af@jmooring #13302c939c33@guilhas07873a5cd@jmooringf42a4b6@jmooring #13211a563783@bep68586c8@bep #1252151bb2fe@bep #132047f0f50b@bep #1259477a8e34@jmooringv0.142.0Compare Source
This is is mostly a bug fix release. It's a minor and not a patch release because of the image file cache issue fixes (see #13273 #13272). Fixing this required us to break the hashes for many of the generated images so we used this opportunity to simplify how we generate these hashes/image filenames.
Bug fixes
6aa72ac@bep #13286 #132924b0c194@flyn-org8de4ffb@jmooring #132791f5a15a@bep #13273 #13272Improvements
637995b@bepf1de5d2@bep #132788897113@nfriedliv0.141.0Compare Source
This release adds try, a new general mechanism for handling errors within templates, a new images.Mask image filter, a new images.QR function, a new
alignxoption to control horizontal alignment in images.Text, and more.Note
dde9d9d@bep #132390918e08@bep #132167699336@bep #13242Bug fixes
8b52626@jdbaldry60c24fc@bepc5a63a3@bep #1322861d3d20@bep #13236cfa0801@bep #13221d913f46@bep #13209Improvements
1fad383@bep1191467@jmooring #132144113707@bep #132655bb1564@bepde7137c@bep956f915@bepa2a4166@bep39f582f@bep2501de7@bep06cc867@bep #1324471fae99@trickkiste #132448af0474@jmooring892b491@bepb13d0a6@jmooring #13230d9594a9@bep4a5cc2d@jlskuz #108499cad8d3@bep2a7bb1c@bep5f2adad@bep4ea94c4@jmooring #132055d2cbee@bep #9737723e3f4@bep2db43f8@jmooring #9885Dependency Updates
a2edf04@bepf024a50@dependabot[bot]80704bc@dependabot[bot]b7b49fb@dependabot[bot]a837976@dependabot[bot]Documentation
88ecc3b@bep4462861@bepBuild Setup
3682027@jmooringv0.140.2Compare Source
The timing of this release comes from the security fix in
golang.org/x/net'shtml.Parsefunction. This is used in two places in Hugo:It's a little bit of a stretch to see how this could be exploited in Hugo, but we understand that many want a clean security report. See this issue for details.
What's Changed
hugo gen chromastylesalongside css83cec78@diwasrimal4e52be8@dependabot[bot]7888ac5@jmooring #13201eb1dbe0@jmooring #1319977824d7@bep #13164ec0caae@bep845b888@bepv0.140.1Compare Source
Some bug fixes in the (most likely) last Hugo release of the year. Of some technical interest to some, I can mention that I, @bep, have reworked hugoreleaser to use YAML (with anchors/aliases) instead of TOML for the release configuration. Have a look at the end result.
What's Changed
e229f4b@tebriel0202539@bep #131834a5e940@bep #1318148a7aee@bep #131666c583e3@jmooring #131715d64b49@dependabot[bot]b3f3294@jmooring #13161v0.140.0Compare Source
The big new feature in this release is js.Batch – this enables JavaScript bundle groups (e.g. scripts per section) with global code splitting and flexible hooks/runners setup.
Bug fixes
a5e5be2@bep #12963565c30e@bep #1315148dd6a9@jmooring #13152744b856@bepa32c889@jmooring5ab38de@bep #131233437340@jmooring #12913 #13119Improvements
5c80cb0@bep7de5317@bep4cbd4ef@bep852d868@jmooring1e34e5b@jmooring641d261@jmooring #13131a834bb9@bep4f130f6@racehd9dfa112@bep #13074ec1933f@bep #1313675ad9cd@bep #13133e293e7c@bep #12626 #7499 #9978 #12879 #13113 #131166be2530@bep #13130989b299@bepDependency Updates
157d864@dependabot[bot]947e4e6@dependabot[bot]5f89786@dependabot[bot]7b69218@dependabot[bot]v0.139.5Compare Source
This is a release created for technical reasons, see #13147
It's the same as https://github.com/gohugoio/hugo/releases/tag/v0.139.4 -- go there for release archives.
v0.139.4Compare Source
This release contains a security fix. See this Security Advisory for details. Note that this is only relevant if you don't trust your content (e.g. Markdown) files.
What's Changed
54398f8@jmooringb8c15f2@bepd0dc518@alexandearb529859@jmooring #13107v0.139.3Compare Source
What's Changed
c1dc35d@bep #13093dea158c@bep7e130e3@dependabot[bot]88b7868@dependabot[bot]fc3d1cb@thirdkeywordv0.139.2Compare Source
Note that this is the second patch release today. See v0.139.1. We had to do this release to get the Hugo Docs build running.
What's Changed
0ab8189@bep #13084v0.139.1Compare Source
What's Changed
aa3dd19@bep #130825a50eee@bep #130828d017a6@bep #13076v0.139.0Compare Source
This release is mostly about removing code that has been deprecated for a long time. This has been shown as an
ERRORin the build log and failed the build for at least the last 6 minor Hugo versions, in most cases much longer.But this is also a full dependency refresh, and there are also some new stuff. For one, we added a
-Oflag tohugo serverto open up the site in your browser after start. This is now my (@bep) shortcut to start the server:Note
1fd845e@bepad43d13@bepBug fixes
8d92042@bep #13065d4de780@bep #13051e79ee0d@deiningImprovements
e917401@bep #130633b6eaf9@bep #130455e3133a@bepac6962d@bep #1304023d21b0@KN4CK3Rce9cf88@bep #130378aba6dc@bepa7df536@bep #130212b97a2a@jmooring #13023Dependency Updates
eb29814@dependabot[bot]61e2ce2@dependabot[bot]2d503f8@dependabot[bot]3a6b2e6@dependabot[bot]6bde8ab@bep2c54c32@dependabot[bot]7a2f04e@dependabot[bot]7921777@dependabot[bot]33e964d@dependabot[bot]588c901@bep #1295846e1705@dependabot[bot]cb6580d@dependabot[bot]Documentation
66dd6ec@bep58a3c91@bepBuild Setup
f7fc6cc@bep #13029v0.138.0Compare Source
What's Changed
95e2d5b@bep #130192c3efc8@bep #13016v0.137.1Compare Source
What's Changed
ca4fc58@bep4faaaf9@bep #1301394b46c3@bep #130092b0b3b8@bep #13012801035b@jmooring #13010v0.137.0Compare Source
Note that we have no longer build the deploy feature in the standard and extended archives. If you need that, download archives with
withdeployin the filename. See instalation for details. You can read #12994 for more on the motivation behind this, but for one, it shaves off about 40% of the binary size.Bug fixes
30d9aea@bep #130041f23b49@bep #12854 #12998e10915f@bepImprovements
fcdc454@bep #12912 #130076cf23bf@bep #1299762a96ce@bep #12997889308d@jmooring #1296172352f2@jmooring89bd025@bep #12994 #12994Dependency Updates
e3304db@bep62567d3@bepDocumentation
5fc1639@jmooring1ec6fa3@bepv0.136.5Compare Source
Fix stuck server error issues
cb6e27b@bep #11378v0.136.4Compare Source
What's Changed
5bbe95f@jmooring #12977v0.136.3Compare Source
What's Changed
88d598a@dvdksn #12971 #12970352be5b@bepd37606d@jmooring #12962f5e54d9@bep42f37b4@bep #12964v0.136.2Compare Source
What's Changed
b5852d0@dvdksn #12956 #12957 #12960v0.136.1Compare Source
What's Changed
e4ad0c5@bep #12954a2f666b@bep #12948b1b3bbc@jmooring #12945v0.136.0Compare Source
Note that we have much improved the Dockerfile and image this release. But this also means a slightly different way of setting it up. Improved documentation will come soon, but see
41f69a7#12920 #12885 #12921.Bug fixes
ea633dd@akkuman #12926Improvements
6e1c5b6@bep #12918e7d0757@n1xx1 #129186b5e117@Hasaber8 #1289721366e0@bep #1292657151a5@jmooring #126665bb22b6@jvns #122694a79956@dvdksn0398458@chalin5b0b663@jmooring3f68309@jmooring #12906ab03588@jmooring #128980450d69@bep #113911158e63@jmooring #12886d1ba52f@jmooringDependency Updates
4985be1@dependabot[bot]db653a8@dependabot[bot]05bbd2c@dependabot[bot]9b63552@dependabot[bot]3223a65@dependabot[bot]bc6fc47@dependabot[bot]ffb41d1@dependabot[bot]Documentation
5db27b1@bepb7d62d7@bepv0.135.0Compare Source
This is a small release, the main motivation was to finally ... drum roll ... get a tagged Hugo Docker image published. Big thanks to @bmanth60 for the tip that solved this issue.
Improvements
4c02a52@jmooring #10717da72ac2@bep #128800ea796d@jmooringDependency Updates
12c9ce3@dependabot[bot]47b0555@dependabot[bot]e56ea40@dependabot[bot]578442f@dependabot[bot]1e690c0@khayyamsaleem #12827Build Setup
0d390d7@bep #12753v0.134.3Compare Source
e07028c@bep22a9f3f@bep #11458e363964@bep #11458c260cb2@David-Else #12677e079145@bep5b442b3@jmooring #128512bc2765@jmooring #1284928f621d@bepv0.134.2Compare Source
What's Changed
3d6baed@bep #12837v0.134.1Compare Source
What's Changed
66a3a11@bep #128288f2eac0@bep #12822v0.134.0Compare Source
Hugo v0.134.0 brings render hooks for tables, ContentWithoutSummary, scoped content render and Obsidian style callout alerts.
ContentWithoutSummary and scoped content render
This release finally brings a
Page.ContentWithoutSummarymethod. This has been a long sought after method where the use case is obvious: render the summary with a more button that renders the ... content without summary. To enable this we have reimplemented the content summary handling in Hugo. This consolidates the 3 summary types (auto,manualandfrontmatter) – they are now all HTML. This is a slightly breaking change (manualwas plain text before), but the new behaviour should be much less confusing and easier to handle in the templates. If you want plain text, pipe it intoplainify:{{ .Summary | plainify }}.Before this release there was one instance of
.Contentfor a given page, it was e.g. not possible to render a page's content slightly different (e.g. different heading levels) on the list pages or the home page. This release enables that with a newPage.Markupwith an optionalscopeargument.In the list template you would do something like this:
You can think of the custom scope
listas a cache key: Multiple invocations on the same page with the same scope will give the same return value. You can now pass down some data or configuration to in.Page.Storeto the templates that render this markup (shortcodes, render hooks), or you can use the new globalhugo.Context.MarkupScopefunction made for this purpose:Render hooks for tables
This has been a long sought after feature. Now you can have full control over how you render your Markdown tables with table render hooks.
Obsidian style callout alerts
Hugo
v0.133.0added blockquote render hooks with GitHub styled alerts. We have since then gotten some feedback about extended alert syntax in Obsidian, and in Hugov0.134.0we now support both.Bug fixes
96afea4@bep8fb9335@deining1ecd059@jmooring #12797Improvements
504a231@bepe651d29@bep #12805 #128014691248@bep6d97ee7@bepf738669@bep #9316 #12811b63f24a@jmooringa3684c8@jmooring #742853a8de2@chalin3760926@bep #8680 #12761 #12778 #716371246d@bepDependency Updates
2b5c335@bep #1264912a28ef@dependabot[bot]4ded32d@dependabot[bot]Documentation
ae38158@offgrid88v0.133.1Compare Source
Bug fixes
5f667f8@bep #127957792392@jmooringe1becf1@bep #12793v0.133.0Compare Source
What's Changed
01008ba@bep #1277653c0ddf@dependabot[bot]133eeaf@bep2168c5b@bep #12763v0.132.2Compare Source
What's Changed
d72607a@bep #127678323526@bep #127655220d37@0xB10Cb2d4f67@bepa99716b@bep #1275398aa536@bep #127539231a7f@bep #12753v0.132.1Compare Source
What's Changed
77304a3@bep #12753bef9214@bep #12756v0.132.0Compare Source
Server-side math rendering using KaTeX with Markdown render hooks support, blockquote Markdown render hooks with GitHub style alerts syntax support, and more.
Bug fixes
e1e1baa@bep #12748fbfccb3@bep #1273369455fa@bepImprovements
2192cf7@bepe422635@bep891aa00@bep #12745 #12746946e6af@bep #873233c0938@bep #119270c3a1c7@bepceed812@bepdbff48e@bep665ac94@bep #125904c162de@bepc6227f1@bep #1192710891f3@bep #12718c07e94f@bepDependency Updates
5d84f64@bep #127411781b18@dependabot[bot]d6d9ddd@dependabot[bot]8f8d12a@dependabot[bot] #12718Documentation
ef2e30e@bepBuild Setup
b08de70@morremeyer #10760v0.131.0Compare Source
Note that if you use Hugo's image processing, your processed images will get new (shorter!) file names when you build your site with this release. We have upgraded a third party hashing library to fix some rare but potential hash collisions, and since this would change some of the image hashes, we thought we might as well do some other related changes: We now use xxHash to create the image file hashes (very fast!) and we have removed the verbose processing information, making the filenames much shorter.
This release is also a full dependency refresh and it comes with one notable and very useful new feature. It is now possible to use
permalinkstokens in the front matterurl. See the documentation for more info. Thanks to @n1xx1 for the implementation.Note
2babd64@bepBug fixes
944fcc2@bep #12712Improvements
914fa13@n1xx151f09b1@n1xx1a5db76f@bepurl566fe7b@n1xx1 #97149257301@bep071f8b4@bepae9d5e7@bep216a69a@bep #12688 #12656e67886c@bepd5eda13@bep8b5d796@bep78db8ae@bep #116443140e0b@bepDependency Updates
be64358@dependabot[bot]20e4dd2@dependabot[bot]f411499@dependabot[bot]47fee83@dependabot[bot]99665ef@dependabot[bot]eb2eeee@dependabot[bot]bea5a46@bepf1a7f3d@dependabot[bot]08243be@dependabot[bot]0490a8a@dependabot[bot]d795cac@bep78c9a18@bep79aa2ab@bepc9d7577@bep #116449989404@bepb81ba2a@bepafdd87d@bepv0.130.0Compare Source
What's Changed
9d2b5f9@raoulb Documentation72ff937@bep #10855 #8586 #8996 Documentationv0.129.0Compare Source
This release brings a rewrite of the logic around browser refreshes when running
hugo server. We have seen some situations where asset changes (e.g. image/CSS/JS) has not been refreshed reliably in all browsers, even with the developer console open and the cache disabled. We suspect this comes from a recent browser bug (typically: Works fine in Safari, does not refresh in Chrome). The strategy we've been using when a change triggers multiple changes (e.g. both HTML and CSS) is to do one "browser force refresh", which in LiveReload ends up as awindow.location.reload(). With this release we:livereload.Start the server with:
And you should see how Hugo handles browser updates when you change content/templates etc.
A related tip; start the server with
Hugo will navigate to the content file you're changing and log it in the console.
Also new in this release a new xxHash hashing function that is much faster than any of the other hashing functions in Hugo, especially for larger inputs.
Note
We have upgraded the integration with Git used to load GitInfo to be part of Hugo's Security Policy. We have added
gitto the default whitelist, but if you have a custom security policy, you may have to update that.Bug fixes
cc2d19e@bep #12648251a23e@bep #12625Improvements
4d8bfa7@bepf0ed91c@bep #12655094f746@bep #12643fb8909d@bep #126430ee2610@PeskyPotato #10905644d554@bep #12635Dependency Updates
7be0377@bep #8627439f07e@bepce5a2ce@bep0f42d97@bepv0.128.2Compare Source
What's Changed
8cf96f2@bep #12638v0.128.1Compare Source
What's Changed
7b6dafc@bep #12438a95fe50@CyrusYip932ab4c@jmooringv0.128.0Compare Source
This release brings TailwindCSS v4 (alpha) support. For more info about the TailwindCSS 4 integration, see this repo. Also notable is the new templates.Defer template func and the dramatically improved performance of
$page.GetTermsfor bigger sites.Bug fixes
c880faa@bep #126218731d88@bep #12617ad6d91c@bep #126007ee36b3@razonyangImprovements
e1317dd@bep #12618 #12620eddcd2b@bep #1261816e4662@bep6cd0784@bep #8086 #125891c85830@bep #12486d5542ed@depp #12607478a910@bep #126108efc75b@jmooring #1259757165d4@jmooring9c3143c@bep #125729f22bc4@bepcba2de6@jmooring #125789c4e14e@bep #125721cdd3d0@bep #12575Dependency Updates
79da24a@jmooringb187c06@jmooring8cf94ae@jmooring #12580b57306d@bep #12575Build Setup
1687a9a@bep #12378Documentation
3b72446@bepb46d101@bepv0.127.0Compare Source
This release brings proper HTTP caching and live reloading of remote resources fetched with resources.GetRemote, especially useful when used with content adapters.
Note that this isn't enabled out of the box, so if you need this, you need to add some configuration. The demo below is configured as:
https://github.com/gohugoio/hugo/assets/394382/85ecc217-3342-4ed2-ae8a-ed357a658b64
What's Changed
447108f@bep #12502 #118912b05a50@bep #12502 #12570v0.126.3Compare Source
917199a@bep #12561c8dac67@jmooring #125130068f03@razonyang0221ddb@bep #12556v0.126.2Compare Source
Bug fixes
1464091@bep #12538519f41d@bep #12544b893a09@jmooring #12514Improvements
2c88e45@bepeaa42a8@bep #12530245928a@bep #125077f30617@jmooring #12525931e096@jmooring #12520548dc21@jmooring #125196b00661@bep #12511v0.126.1Compare Source
What's Changed
39cf906@bep #124971aacfce@bep #12493v0.126.0Compare Source
This release brings, drum roll, a long-awaited Hugo feature that has had many names. At one point we named it pages from data. You can read all about it in the documentation where it's titled Content Adapters.
Also worth mentioning are the new Extras Goldmark Extensions, which allows you to enable Markdown syntax for inserted text, mark text, subscript and superscript. A big thanks to @bowman2001 for the implementation.
Improvements
74ab839@jmooring #1243392290aa@jmooring #124326dbbe6d@jmooring #12490e2d66e3@bep #12427 #12485 #6310 #507455dea41@jmooring #1247987ab7f7@jmooring #124806dfeb9f@jmooring #12468ca9a77e@jmooringDependency Updates
ee26e69@dependabot[bot]6e83d00@dependabot[bot]Documentation
2661402@bepBuild Setup
d02f062@bep #12451 #6290v0.125.7Compare Source
Note that this release is only relevant if you use Hugo's
openapi3.Unmarshaltemplate function.What's Changed
3c6260f@bepv0.125.6Compare Source
What's Changed
bb59a7e@bep #12395 #12456503d209@bep #1245868e9532@dependabot[bot]9cd7db6@bepc892e75@bepv0.125.5Compare Source
What's Changed
7be7f89@bep #12449c8e400b@bep #123849dd6870@bep #12436v0.125.4Compare Source
What Changed
7203a95@bep #12296fb51b69@jmooring #12418fe84cc2@Habbiebabcb33@bep #122886b86797@bep #12415fb08439@dependabot[bot]v0.125.3Compare Source
This release fixes a security issue reported by @ejona86 (see #12411) that could allow XSS injection from Markdown content files if one of the internal link or image render hook templates added in Hugo 0.123.0 are enabled. You typically control and trust the content files, but according to Hugo's security model, we state that "template and configuration authors (you) are trusted, but the data you send in is not."
509ab08@bep15a4b9b@bep10a8448@jmooring #12396722c486@ejona86f40f50e@bep #12407v0.125.2Compare Source
What's Changed
06d2489@bep #12399004b694@bepda6112f@jmooring #12393faf9fed@bep11aa893@jmooring #12387v0.125.1Compare Source
What's Changed
0c188fd@bep #12383bbc6888@bep #12381v0.125.0Compare Source
Some of the notable new features in this release:
.RenderShortcodein a shortcode, typically used to resolve links and page resources relative to an includedPage.Luminanceto$image.Color, allowing for sorting by relative luminance.e197c7b@bep #10450This release is built with Go 1.22.2 (#12351) which comes with a fix for security issue CVE-2023-45288. We don't see how that could be exploited in Hugo, but we do appreciate that people want a clean security report.
Bug fixes
fa60a2f@bep #123626049ba9@jmooring #123699323376@bepbf0b140@grimreaper17765a7@coliff2664052@curegit488b21d@bep #12306983b8d5@bep #1232038e05bd@bep #1230927414d4@availhangImprovements
e197c7b@bep #10450df11327@bep #123568e50ccf@bepbfc3122@bep00ae8e8@bepe423e56@bep09eb822@jmooring #12359a6e8439@jmooring #1231638f68cd@bepa67650b@scop2a060b3@bep #1235192de862@bep7907935@testwill02d5ec1@dependabot[bot]4500b0e@sorenisanerd #4926 #8232 #123427bf1abf@jmooring8a0ea12@jmooring #3694 #9213 #10520 #10575 #105766f07e59@seiyab2da4ec5@jmooring #8296 #8698 #8991 #9818 #9866 #106476624979@jmooring #123306738a3e@jmooring #653 #122822f7df4b@jmooring #11867f0a26cf@jmooring #3918 #1169274ce5dc@jmooring #757054a8f0c@jmooring #10412 #12310ebfca61@jmooring #11802 #10093e191774@jmooring #12297Dependency Updates
fe63de3@dependabot[bot]a18e2bc@dependabot[bot]97df6be@dependabot[bot]e9b8bec@dependabot[bot]888cc1e@dependabot[bot]060cce0@dependabot[bot]5608ba1@dependabot[bot]2fedca6@dependabot[bot]07873b7@dependabot[bot]Documentation
df9f2fb@bep74e9129@bep #12375c837f36@jmooring #12291v0.124.1Compare Source
What's Changed
758a876@bep #1212919937a2@bep #12165c1ea22a@anthonyfok0750a9e@bep #12275v0.124.0Compare Source
The new feature in this release is a new segments configuration section and a new
--renderSegmentsflag/config key. This release also updates to Go 1.22.1 that fixes a security issue in the template package that Hugo uses (CVE-2023-45289, see golang/go#65697). We don't see how this could be exploited in Hugo, but we appreciate that Hugo users want to have a clean security report.Bug fixes
f1d7559@bep #122633935faa@jmooring #1226678178d0@coliff68d92ef@bep #12261b40f3c7@bep #1225407b2e53@bep #122309ca1de0@bep #121959668759@bep #122369e9b1f1@bep #12214Improvements
1f1c62e@bep #10106558f74f@bepd4d49e0@jmooring #1222857206e7@bep #1225048a0fea@jmooring #12244 #12245dc6a292@jmooring #122324f92f94@jmooring #12224f038a51@jmooringDependency Updates
ba03114@bepb1f8676@dependabot[bot]b4bff61@dependabot[bot]d2cebee@dependabot[bot]be914ff@myitcv #11862e626750@dependabot[bot]Documentation
76ef3f4@bep0ccb6cd@bepBuild Setup
d24ffdd@jmooring #12219v0.123.8Compare Source
ada3fce@deininga4b1747@bep #121904d5e173@bep #121904271b6b@bep #121980567a3e@bep #12193134e7d1@lyind #7169 #11783 #120221f48b71@razonyang05e23bd@jmooring #122067afac3f@bep #12188632ad74@jmooring #12203v0.123.7Compare Source
What's Changed
2b2f2b7@bep #121750d6e593@bep #121787023cf0@bep #121829dfa9e7@bep #121833f217fd@jmooring #12177v0.123.6Compare Source
What's Changed
fce8d82@bep #121724a502f7@bep #12133be1dbba@bep #12132v0.123.5Compare Source
What's Changed
6a8b25e@bep #12169a322282@bep #121416bc0d74@bep #121632186903@dependabot[bot]v0.123.4Compare Source
1736ef7@bep #12151f27e578@bep #12146049dd1d@bep #12144189b723@bep #1213780e6934@jmooring #12134d310595@bep #12142d4be164@dependabot[bot]v0.123.3Compare Source
Bug fixes
f521336@bep #1212003b88c6@bep #12129bf14d0c@bepc4fe45f@bep #12119554aa58@baltpeter #1211836bf3cb@jmooring #9793 #12115v0.123.2Compare Source
What's Changed
db3bb62@bep #12105f5fd7ec@razonyang16406d9@bep #12103e757849@bep #12101b8ab5c9@bep #12092cf7023c@bep #12094fd0185a@bep #12096v0.123.1Compare Source
eceeb19@bep #12082621194a@bep #12072a118cb4@bep #12071c9f7ebf@jmooring #1208448eec2a@bep #12076v0.123.0Compare Source
The work title for the
v0.123.0release has been "the million pages release", introducing a new memory limit that allows for a streaming build, shifting large objects out of memory when not in use. This release is also a rewrite of the Hugo core, fixing lots of long-lived bugs and adding some other exciting improvements (see below). There are some breaking changes that have been announced for a long time. Most sites will not be affected by this, but we recommend that you test your site with the new Hugo version before you set it up to build to production. Many people have contributed to this release, but a special shoutout goes to @bep and @jmooring, but also to @TiGR and @McShelby for their help testing and reporting bugs.A list of notable new features:
HUGO_MEMORYLIMIT(in gigabytes) allowing for much larger data/page sets and/or running on lower specced PCs. This is backed by a partitioned LRU cache used throughout Hugo. A cache that gets dynamically resized in low memory situations, allowing Go's Garbage Collector to free the memory. Note that for regular sized Hugo sites, the performance should be about the same as before.[params]concept to front matter, see docsBug fixes
5ada27b@bep #12058afe5b6d@bep #12054168d375@colifffc6aabe@bep #120554835f9e@bep #118889679443@bep #1204868f67c9@bep #12043f1491c9@bep #12039639073e@bep #120170672b5c@coliffe309f82@rosanocaba6ba@bep #12020a65622a@bep #12000146aedd@bep #120012873324@bep #119744174a78@bep #119595dd06b4@jmooringd8f0e30@bepd8c2734@bep34d63c8@bep80595bb@bep #11944ec22bb3@alrsImprovements
5dbc29d@bep #120655bdda0b@bep #1204143ea2cd@datosh #1073421d9057@jmooring #8598f4575e5@jmooring0851c17@bep #120139571246@bep #120100257eb5@bep #12009bd0200d@bepa80c302@bep9df7b29@bep #11993c37bf19@bep609d798@bep #11988 #11973 #1198853f2043@bep7f82461@jmooringb72f909@bep3a665dd@jmooring46575ba@bep #11979058f230@bep #11977a66480f@bep #11970e33a632@bepd0788b9@jmooring #11971034fbef@bep #119708d42a79@bepf5ec75d@bep6cb3bda@jmooring963cecc@jmooringb6def61@jmooring1891d5e@bep #11949156f08d@bepa1c6498@frankywahl6c3b6ba@bep #11953bd66d30@bep #11946309d61b@bep #119475b7cb25@bep #11933afee781@bep #119414e84f57@bep #9189f31a6db@bep #11544a795acb@bep982d951@bep6dedb4e@bep #11055292626e@bep60d954c@razonyang63e0a92@bepce7daa6@Kandulanaveennaidu2a03294@bep50dc327@bep7285e74@bep #11455 #11455 #11549 #10169 #10364 #10482 #10630 #10656 #10694 #10918 #11262 #11439 #11453 #11457 #11466 #11540 #11551 #11556 #11654 #11661 #11663 #11664 #11669 #11671 #11807 #11808 #11809 #11815 #11840 #11853 #11860 #11883 #11904 #7388 #7425 #7436 #7544 #7882 #7960 #8255 #8307 #8863 #8927 #9192 #9324Dependency Updates
f54ba6f@dependabot[bot]4019b17@dependabot[bot]4a53fd5@dependabot[bot]2d1681d@dependabot[bot]301bafa@dependabot[bot]58d7f83@dependabot[bot]54ad51e@dependabot[bot]bd1bcc0@dependabot[bot]b332f24@dependabot[bot]d8e1e82@bep4d98b0e@dependabot[bot]15b9976@dependabot[bot]Documentation
60b176c@bep068ccde@bep7cb447a@bep5161544@bep7caa5b3@bepfc7de71@bep #11925Build Setup
6f59d96@jmooringv0.122.0Compare Source
The big new thing in Hugo 0.122.0 is LaTeX or TeX typsetting directly from Markdown using standard syntax. Thanks to @j2kun and @jmooring for making this happen.
Bug fixes
87bf2b9@tastapod #11600f281ef8@tastapod #11600Improvements
d0d2c67@j2kun #1089446f6187@augustfengd #11743a541e3b@bep #11892912c657@jmooring #11884Dependency Updates
e0021f4@dependabot[bot]d25902c@dependabot[bot]2dd6083@dependabot[bot]45f52be@dependabot[bot]8915343@jtatumDocumentation
50042ee@bep911bc60@jmooringv0.121.2Compare Source
The main motivation behind this release is a security fix in the upstream golang.org/x/crypto library. We don't see how that CVE could be exploited via Hugo, but we do appreciate that many want to have a clean security report.
There's also some new features in this release:
What's Changed
1ccd314@dependabot[bot]e40b9fb@jmooring #11833648d00c@jmooring #117178adba64@bepv0.121.1Compare Source
The only change in this release is that the release binaries are compiled with Go 1.21.5 which contains some security fixes that are relevant for Hugo.
eb9f1eb@bep #11786v0.121.0Compare Source
There are some minor new features in this release, but it's mostly a release with bug fixes and dependency updates. One notable dependency update is libweb v1.3.2 which comes with a security fix for the Webp decoder (chromium: #1479274, CVE-2023-4863). Hugo only uses the encoder (we use Go's native Webp decoder) so we're not affected by this, but we have been contacted by some corporate Hugo users who's eager to have a clean security report.
Notes
.Mapaccessors if you get an error.Bug fixes and enhancements
6d4b012@bep26a8ec2@alrsdd6cd62@jmooring #115630bde693@jmooring #116989f978d3@bep #10707 #11507opengraph,schemaandtwitter_cardstemplates14d85ec@razonyang171836c@jmooring #115479ea7103@jmooring #117723fc42da@jmooring #10776d24da17@jmooring #115064583b41@jmooring #9642e2a624d@bep30a18e8@bepb4c5df4@jmooring #32688d32ca2@jmooring #637927620da@bep80d2fdb@jmooring #11670805cc17@jmooring #11681Dependency Updates
558f325@dependabot[bot]507f4e3@dependabot[bot]a7e721e@dependabot[bot]2627b91@dependabot[bot]e536d46@dependabot[bot]bfc325f@jmooring #574836a60f6@dependabot[bot]de2fcc5@dependabot[bot]9ca889b@dependabot[bot]4fb40ee@bep #11746bc93a36@dependabot[bot]3e5bc6f@dependabot[bot]7c47036@dependabot[bot]4d07e1f@dependabot[bot]1c41232@bepf11ca0f@dependabot[bot]d7a2f3f@dependabot[bot]ef12d16@dependabot[bot]a62bbfa@dependabot[bot]5887230@dependabot[bot]a4a66b8@dependabot[bot]813390b@dependabot[bot]d528bbd@dependabot[bot]af7f6c8@dependabot[bot]e70849e@dependabot[bot] #11723Documentation
255e0a9@bep6580cd3@jmooring7617de8@bepv0.120.4Compare Source
The only change in this release is that the release binaries are compiled with Go 1.21.4 which comes with a security fix for Windows that may be relevant for Hugo. See:
What's Changed
9315a2d@bep #11685v0.120.3Compare Source
What's Changed
cb98e90@jmooring #116585fa97ee@bep4d38f47@bep80f793c@bep #11645a9079d7@dependabot[bot]4914b7f@dependabot[bot]v0.120.2Compare Source
What's Changed
ab21433@bep #1163823fcfb7@jmooring #11639v0.120.1Compare Source
What's Changed
2bedcf3@jmooring #11633v0.120.0Compare Source
This is a full dependency refresh and a couple of new cool features:
A new Padding image filter, and a new debug.Timer template func. The new
debug.Timeris useful for finding performance bottle necks in templates:If you then run
hugo --logLevel infoyou should see timer info logged at the end of the build. You can have as many timers as you want and if you don't stop them, they will be stopped at the end of build.Hugo now also builds release binaries for Solaris now that a long-living issue in the upstream ƒsnotify library has been fixed, thanks to @nshalman.
Notes
enableEmojiflag now only works for Markdown content. This is unfortunate, but the old solution has some known issues and it was too hard to make it work properly as a general thing across all formats. See #11598site.DisqusShortname is deprecated2eca1b3site.GoogleAnalyticsis deprecateda692278site.Authoris deprecatedd4016ddsite.Socialis deprecated4910312Also, we have changed the string type for some of the fields and methods:
template.HTML$resource.Data.Integritynow returns astringand not atemplate.HTMLAttrdelimitnow returns astringand not atemplate.HTMLSee #10876 #11502.string, see #11536Pagernow returns astring.site.BaseURLnow returns astring.The above should both solve some issues and make the above types more useful and easer to reason about. But if you use the
delimitfunction to process HTML and see some unexpected escaping after this release, e.g.:Then you need to mark the type with
safeHTML:Bug fixes
acf01bf@jmooring #11519de4e466@razonyang6251626@alrs75f56b4@jmooring #11498Improvements
7f8ab74@bep #3500b6a7568@bep27b22cd@jmooring #11462a2488b1@jmooring #115388f60c0c@bep9dc6080@DominoPivota349aaf@jmooring #11511b8fbd4a@bep28d8446@bepeb5fd31@bep3ed28e4@jmooring #11599db14238@henry03123f64b5a@bep6690409@bepe54139c@bep #10876 #1150271fd79a@bepc4a530f@bep #11598272484f@jmooring #7332 #11587 #11598c23a0c4@alexandear46bdc03@bep5160c7e@bep #11580fd38171@bep2eca1b3@jmooringa692278@jmooringd4016dd@jmooring4910312@jmooring1b5f78b@jmooring #115455993afa@jmooring #11525d1b4458@jmooring #11510274852b@alexandear37a2d5e@abdullah-alaadine4c95389@jmooring #1151346da0b7@jmooringDependency Updates
59bcc09@dependabot[bot]e26ba75@dependabot[bot]bcf07fa@dependabot[bot]e2b2092@dependabot[bot]f4df7b8@dependabot[bot]3d9bd40@dependabot[bot]5f5e55a@dependabot[bot]8c61fd2@dependabot[bot]d3145e4@dependabot[bot]743a1da@dependabot[bot]123901b@dependabot[bot]d5d0f42@jmooring #11533Documentation
29b6e13@bepd3d4ab4@bep3af8bde@bepv0.119.0Compare Source
This version is built with Go 1.21.1 which contains some relevant security fixes for the
html/templatepackage, see Issue 62196 and Issue 62197. This is the main reason Hugo 0.119.0 is released sooner rather than later. But this release also comes with a dependency refresh and some useful image processing improvements:Processsupport all of the existing scaling operations, but it can also be used do simple format conversions (e.g. from JPG to PNG). A before/after example:There are some issues with the above:
With Hugo 0.119.0 the above can be written as:
Bug fixes
79a17d9@bep #1145018ce854@bepImprovements
6b65b2f@alexandear6a246d1@bep #8439ef0e714@bep #11483c32094a@carlmjohnsonf9b3c0f@bep #114711e9b87f@bep #11474 #11414f916315@jmooring75c0f88@jmooring #1144569f5bad@bep525bed9@ilmari-lauhakangasDependency Updates
a262fd4@dependabot[bot]f0d3245@dependabot[bot]e8bc8e6@dependabot[bot]11fcda9@dependabot[bot]f31375d@dependabot[bot]6415b59@dependabot[bot]Documentation
a9d19db@bep12d7131@bep1768684@bep275c0ac@bepv0.118.2Compare Source
What's Changed
df5d76f@bep #11414v0.118.1Compare Source
Note: There still seem to be an issue on Vercel.
This release only fixes a
GLIBC_xxx not foundissue with the Linux AMD64 binary when running on older Linux versions, which is the situation when building on Netlify/Vercel etc.7e9092e@bep #11414There's no functional changes in this release. See v0.118.0.
v0.118.0Compare Source
Note: Hugo 0.118.2 fixes an issue with the Linux binaries when building on Netlify/Vercel/etc.
Hugo
0.118.0now builds with Go 1.21. This version also comes with:hugo new siteandhugo new theme. See details.Bug fixes
15d3e48@bep #113963a8aad6@bep #1140665871d5@alexandeardcf425c@bep #11376Improvements
94fbab2@bep #11390c3f273b@mattbnzd7dcc76@henry0312 #10472d2ae9e1@bepa7b93e6@alrsebaa733@bep #1138224b1be4@bep #11351111f02d@bep9a8c84d@jmooring #11380cdf0b3b@jmooring #11369d979831@alexandearbcf7421@bep #11371b653853@jmooring #11358a2f6400@bep7d74cd0@bep #11345b1b6912@bep641390f@bepDependency Updates
9bf76fd@dependabot[bot]b2a02c3@dependabot[bot]6821d6f@dependabot[bot]93c7ad1@dependabot[bot]a19d03b@dependabot[bot]db7bc49@dependabot[bot]Documentation
e847a98@bep45c9bbc@bep8a08f91@michalbiesek90944aa@jmooringBuild Setup
2e4bf89@jmooringv0.117.0Compare Source
This is a release on the small side, but. especially the new
Page.RenderShortcodesmethod is so useful, especially for bigger sites, that we decided to get it out sooner rather than later. This method renders all the shortcodes in the content, preserving the surrounding markup (e.g. Markdown) as is. See the Hugo Documentation for more information.Improvements
ade7ec8@bep #729716da1ad@bep #11327a3d42a2@bep #11312Dependency Updates
0de81c6@dependabot[bot]d4a6c16@dependabot[bot]2e6191b@bep #113362c20fd5@dependabot[bot]243736e@dependabot[bot]bf891c2@dependabot[bot]da0df0a@dependabot[bot]0885f8e@dependabot[bot]61be050@dependabot[bot]65af75f@dependabot[bot]2d75f74@dependabot[bot]2ac3d61@dependabot[bot]9dce45c@dependabot[bot]Documentation
8fa8ce3@jmooring851bf35@bep #11328v0.116.1Compare Source
What's Changed
30885a6@bep #1131358da855@jmooring #11311v0.116.0Compare Source
There are two notable changes in this release. For one, we have changed the default location of the
cacheDir(where Hugo stores all its file caches). Having the cache stored in a/tmpfolder has had its issues, especially for the module cache and especially on MacOS. The current new default should be better and more stable. See See Configure CacheDir for more info.Also in this release: The
wheretemplate func finally supports regular expressions with the new like operator.Note
bec9b80@bep #112561c97095@bep #11256cacheDiris changed to be stored below the directory as defined by Go's os.UserCacheDir. See Configure CacheDirBug fixes
be8e2de@bepfbb8eb3@bep #1025587d9bff@tfsojondc2a544@jmooring7f058b8@bep #11278Improvements
c1df5b1@bepd9fdcbe@jmooring295d733@bepbec9b80@bep #112561c97095@bep #11256b3cb678@bep #1125636b5126@bepef6e813@bepf4598a0@jmooring #11279b3f1055@bep #11286 #112914d7af75@bep2589b12@alexandearDependency Updates
d7db096@dependabot[bot]5542f02@dependabot[bot]0bc7ed9@dependabot[bot]739d10e@jmooringDocumentation
d297c8e@bepd524778@bep036e260@jmooringa50356b@bepBuild Setup
9163973@jmooring575d7f8@jmooring #11288v0.115.4Compare Source
Bug fixes
d70b6c7@bep #112576bbec90@bep #112682f11e67@jmooring #11267c406fd3@bep #11249286821e@dvdksnImprovements
d947db3@bepd8c94c3@bep5bd22ba@bep #112647ae62f4@bep #11264f1a061e@bep #11259387c5f6@bep #9730v0.115.3Compare Source
What's Changed
cc44583@bep #112294da672a@bep #11243f1886f8@jmooring #112325bec508@bep #11234f650e4d@jmooringc934a45@jmooringv0.115.2Compare Source
Bug fixes
0f921ac@bep #112216019953@bep #1122392e8670@bep #10064a78b17d@bep #11205a481942@bep #11219Improvements
6c9ea02@dvdksn #933312d3469@bep #11204bf7ee8a@anthonyfokBuild Setup
7251096@jmooring #1112270c5e48@jmooring #11217v0.115.1Compare Source
Bug fixes
ceb486f@bep #112020ff8e13@bep #11190Improvements
5afc89f@bep #1119119d76ae@bep11ecea6@bep #11191ffd37d4@bep #11187Dependency Updates
da98724@dependabot[bot]4d470bb@dependabot[bot]Documentation
c27639b@bepb4b6524@bepBuild Setup
c1eac61@jmooring #111993c8256a@jmooring #11195v0.115.0Compare Source
The notable new feature in this release is that you can now have permalink configuration also for section and taxonomy pages. Thanks to @Mai-Lapyst for the implementation. See the documentation for more information.
Bug fixes
635cc34@deining #1116279639c9@bep #11159b74b8d6@khayyamsaleem #11180793e38f@deining #11161fa0e16f@bep #7735e3308a0@alexandear5b4bfc2@bep #11149Improvements
7917961@bep #9448 #11184 #852380ecb95@bep #111411264675@roshanavand7f698c8@bep #11176bac03f4@bepcc14c6a@Mai-Lapyst #8523019299b@jmooring #11155Dependency Updates
9b313ce@dependabot[bot]92f55f1@dependabot[bot]Documentation
58e09cc@jmooring12e4c4d@jmooring #8523 #1084723ed087@bepBuild Setup
a018259@bepv0.114.1Compare Source
Bug fixes
078226d@bep #11149b1016d2@bep #11145Improvements
49336bf@brianknight10 #10715Dependency Updates
ae31dbd@bep9418182@dependabot[bot]5491e55@dependabot[bot]bf7af90@jmooring #11132Build Setup
06d228a@jmooringv0.114.0Compare Source
The main new thing in this release is that we now support both major versions of the Dart Sass Embedded protocol, which means that you now can use the regular Dart Sass binary. We measured the new protocol to be faster with high concurrency:
We have also moved to a new log library and added some new math functions and also revised the existing set to work better with a mix of scalars and slices.
Notes
--log,--verboseLog, added the new flag--logLeveland deprecated--verboseand--debugSee #11088Bug fixes
6dfbd24@bep68d9d3e@deining9009c8c@alexandear12dc9a6@bep #11127ee359df@bep #11112d178fe9@bep #1109321d1756@bep #1107960a2cdf@bep #110890541a1b@bep #11090b8526f3@alexandearc782ebd@bep #11074Improvements
3ab8465@bepf59c3c0@bep3ca29b1@bepfdb0b7f@bep1b85303@bep #111307c9fada@bep #11124f73c567@bep #1045890b2674@bep #111102ba2271@bep #11030ef147f4@bep #9648 #11071258884f@Sircular #739169f0e88@beped7e250@bep6a09e7f@bep29e5cbb@bepded6866@bepe1d4302@jmooring #110805db215d@bepb7dc93c@bep #11083f210188@bep #11059Dependency Updates
59300fa@bep49dd53a@bep #111328a04d47@dependabot[bot]aaf2e96@dependabot[bot]0f989d5@dependabot[bot]732dcb8@dependabot[bot]944859f@dependabot[bot]bb9377b@dependabot[bot]e88f1b8@dependabot[bot]516f0cb@dependabot[bot]7bed16c@dependabot[bot]e08cfc8@dependabot[bot]4895195@dependabot[bot]91c0b0f@dependabot[bot]baef235@dependabot[bot]254c2b3@dependabot[bot]84f71ba@dependabot[bot]82adc97@dependabot[bot]60533fd@dependabot[bot]261143b@dependabot[bot]Documentation
9f98b3e@bep7241b5f@bepBuild Setup
0e79446@jmooring #1111635e9b3e@jmooringv0.113.0Compare Source
This release adds TLS/HTTPS support to
hugo server(seecf38c73and #11064 for details) entirely backed by mkcert. We still default tohttpwhich is recommended and good enough for 99% of the Hugo use, but there are some situations where you really need it.We have added a new sub command and some new flags to
hugo serverto enable this:Note that we just delegate to mkcert using its default settings, so all of their documentation is relevant.
Also note that this is currently only supported for Linux, MacOS and Windows. And if you install on Linux using Snap, you will currently get an access denied error when running
hugo server trust. A workaround for that, or if you need to use some of mkcert's advanced options, is to use mkcert directly to install the local CA:You can then start the server with
hugo server --tlsAuto.If you have obtained the TLS certificate and key file by other means, you can use the
--tlsCertFileand--tlsKeyFileflags. When--tlsAutoor--tlsCertFileand--tlsKeyFileis set and no--baseURLis provided as a flag, the server is started with TLS andhttpsas the protocol.v0.112.7Compare Source
What's Changed
5e5ce00@bep #11062a191b38@bep #11061382c726@alexandear4c46f94@alexandearv0.112.6Compare Source
06faee5@bep #110523258569@bep #110390ef2952@bep #11057e3ae8f0@bep #11040ff77a92@jmooring9cdca1f@bep #110446462eec@bep #11046a7d6b14@bep #110473f497d4@bep #11045409c6c3@jmooringv0.112.5Compare Source
What's Changed
e3dfc76@bep #11037v0.112.4Compare Source
fd09933@bep #110028f293a1@bep #1102651d0a0a@bep #1101843f1282@bep #11018e96cdfe@bep #11031273d9f6@bep #11019a6257d8@bep #110256c2db0d@bep #11027901cd97@bep #11015f86b5f7@bep #11022Documentation
20ea2e0@bepffdbce5@bepv0.112.3Compare Source
What's Changed
231374a@bep #11013v0.112.2Compare Source
What's Changed
dd67922@bep #110129a235d0@bep #11006v0.112.1Compare Source
What's Changed
ed906a8@bep #11000Also see the main release: https://github.com/gohugoio/hugo/releases/tag/v0.112.0
v0.112.0Compare Source
Proper TailwindCSS v3.x support, much improved language config merge, consolidation of all Hugo config (check out
hugo config), rewrittencommandspackage (CLI) using SimpleCobra, Goldmark's typographer extension (quotation marks per language), and more.Headlines
TailwindCSS v3.x Support, new cache buster configuration
TailwindCSS 3 has been out for a while now, and unfortunately their new build strategy didn't work very well with Hugo. But this release adds a new
build.cachebustersconfig option for the resource cache that allows more fine grained control over when to trigger a new Tailwind build. This is a generally useful feature, so if you're having issues not seeing your resource changes (e.g. change to a JS file) on change, you could try to tweak the defaults. A tip is to run the server withhugo server --debugand watch out for log messages prefixed withcachebuster:on file changes.There are several possible setups here, but one that we have tested and that works well is outlined in the config below. The basic concept is to add
hugo_stats.jsonto the server watcher list in Hugo and trigger a new TailwindCSS build only whenever either this file or the main CSS file changes.And then in
tailwind.config.js:Reconsolidated all configuration handling
For this release we have collected all configuration into one big Go struct and rewritten the command line API using SimpleCobra. All of this makes the source code easier to maintain and understand, but the original motivation for this was to get a complete and autogenerated API reference for Hugo (we're working on getting that done), but this also have some less technical upsides:
'hugo config' is now complete
What you get when running
hugo configis a complete TOML representation (add--format jsonor--format yamlfor alternative formats) of the effective configuration. As this will include default values and configuration merged in from themes, we don't recommend to copy and paste this intohugo.toml, as that would make your configuration very verbose.Improved language config handling
See issue #10620 for some details, but in general, the merge behaviour of sections from
languagesis much improved. In the example below for languageenyou will now get:In earlier versions of Hugo you would get:
Note that values in a given language will always have precedence over same keys in root (the section inside the language is the receiving side of any merge operation), so, if you want the old (and buggy) behaviour, you can add a merge strategy to one of the
paramssections, e.g:You can now also configure just about everything per language. One useful example would be the Goldmark
typographerextension:More info in verbose build output
If you build flag with the
-v, you will now get timing info for the core building steps in Hugo:Notes
site.Language.Paramsand configuration of custom params outside of the language[params], see https://gohugo.io/content-management/multilingual/#changes-in-hugo-01120 for more information.Bug fixes
288be19@bep #10953e6dc805@bep #109720a51dfa@bep #10953e4e0313@bepad4bc96@deining4003c79@cuishuang610ceda@alexandear95818e2@alexandear834b3d7@bep #1095386b2a27@bep #109475d85716@bep #10947d01731d@kirisakow891b291@alexandear0fbab7c@bepImprovements
70b2aaf@bep85b13c1@bep9a0370e@deining4cac5f5@bep #109852c3d4df@bep #109746ca8a40@bep #109532db7ec6@InLaw2637b4e@bep #102867c7baa6@bep #109694f085e8@bep #10953150d190@jmooringd6197a4@bep #109535b3e165@jmooring #969403cb38e@bep #10953008170c@BenTheElder #109507c647bc@bep #109533f00f47@bep35955f5@bep8a69ccb@bep #109477ce033a@bep #109470554213@bep #109475251f01@bep #109470106cf1@bep59050f9@BenTheElder #10950faa6998@bep #109473d90871@alexandearbda082c@alexandear #10941241b21b@bep #10896 #106206aededf@bep #109420988b76@bepe0e19a9@bepbcd7ac7@jmooringa4fb8dc@kirillbobyrev5c7b79c@jmooring0cb6ca5@jmooring #9216f106251@bep9906c1a@bep5596dc2@bep #97725748133@bep #1086605c095a@deiningb0b1b76@bepf5eddf8@septs #10827Dependency Updates
f014921@bep #109931292d5a@dependabot[bot]baa5569@dependabot[bot]a5413c1@dependabot[bot]9cea58a@dependabot[bot]1a5dce4@dependabot[bot]065ae00@dependabot[bot]1a7d57c@dependabot[bot]bba54e6@dependabot[bot]7370543@dependabot[bot]f6269ee@dependabot[bot]715d484@bepc371171@bep24e7d0c@bep #10629 #10491Documentation
b6e6438@bep943ff7f@bep #1095310d0fcc@bep1155bbc@jmooring4f341fa@bep46a3cf6@bepf1e8f01@bepConfiguration
📅 Schedule: (UTC)
🚦 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 has been generated by Renovate Bot. The local configuration can be found in the SI Renovate Bot repository.
b727af270566a39794be66a39794bed8c0a83c6aView command line instructions
Checkout
From your project repository, check out a new branch and test the changes.