0.65.0: Hugo Reloaded!
Hugo 0.65 generalizes how a page is packaged and published to be applicable to any page. This should solve some of the most common issues we see people ask and talk about on the issue tracker and on the forum.
Release Highlights
New in Hugo Core
Any branch node can now bundle resources (images, data files etc.), even the taxonomy nodes (e.g. /categories).
List pages (sections and the home page) can now be added to taxonomies.
The front matter fields that control when and if to publish a piece of content (draft
, publishDate
, expiryDate
) now also works for list pages, and is recursive.
We have added a new _build
front matter keyword to provide fine-grained control over page publishing. The default values:
_build:
# Whether to add it to any of the page collections.
# Note that the page can still be found with .Site.GetPage.
list: true
# Whether to render it.
render: true
# Whether to publish its resources. These will still be published on demand,
# but enabling this can be useful if the originals (e.g. images) are
# never used.
publishResources: true
Note that all front matter keywords can be set in the cascade on a branch node, which would be especially useful for _build
.
We have also upgraded to the latest LibSass (v3.6.3). Nothing remarkable functional new here, but it makes Hugo ready for the upcoming Dart Backport.
And finally, we have added a GetTerms
method on Page
, making listing the terms defined on this page in the given taxonomy much simpler:
<ul>
{{ range (.GetTerms "tags") }}
<li><a href="{{ .Permalink }}">{{ .LinkTitle }}</a></li>
{{ end }}
</ul>
New in Hugo Modules
There are several improvements to the tooling used in Hugo Modules. One bug fix, but also some improvements to make it easier to manage:
- You can now recursively update your modules with
hugo mod get -u ./...
hugo mod clean
will now only clean the cache for the current project and now also takes an optional module path pattern, e.g.hugo mod clean --pattern "github.com/**"
- A new command
hugo mod verify
is added to verify that the module cache matches the hashes ingo.sum
. Run withhugo mod verify --clean
to delete any modules that fail this check.
See hugo mod.
Performance
The new features listed above required a structural simplification, and we do watch our weight when doing this. And the benchmarks show that Hugo should, in general, be slightly faster. This is especially true if you’re using taxonomies, and the partial rebuilding on content changes should be considerably faster.
Numbers
This release represents 34 contributions by 6 contributors to the main Hugo code base.@bep leads the Hugo development with a significant amount of contributions, but also a big shoutout to @satotake, @QuLogic, and @JaymoKang for their ongoing contributions. And a big thanks to @digitalcraftsman and @onedrawingperday for their relentless work on keeping the themes site in pristine condition and to @davidsneighbour and @kaushalmodi for all the great work on the documentation site.
Many have also been busy writing and fixing the documentation in hugoDocs, which has received 7 contributions by 4 contributors. A special thanks to @coliff, @bep, @tibnew, and @nerg4l for their work on the documentation site.
Hugo now has:
- 41724+ stars
- 439+ contributors
- 299+ themes
Notes
.GetPage "members.md"
(the Page method) will now only do relative lookups, which is what most people would expect.- There have been a slight change of how disableKinds for regular pages: They will not be rendered on its own, but will be added to the site collections.
Enhancements
Templates
Output
Other
- Regenerate CLI docs a5ebdf7d @bep
- Improve “hugo mod clean” dce210ab @bep #6907
- Add “hugo mod verify” 0b96aba0 @bep #6907
- Add Page.GetTerms fa520a2d @bep #6905
- Add a list terms benchmark 7489a864 @bep #6905
- Use the tree for taxonomy.Pages() b2dcd53e @bep
- Add some cagegories to the site collections benchmarks 36983e61 @bep
- Do not try to get local themes in “hugo mod get” 20f2211f @bep #6893
- Update goldmark-highlighting a21a9373 @satotake
- Support “hugo mod get -u ./…” 775c7c24 @bep #6828
- Introduce a tree map for all content eada236f @bep #6312#6087#6738#6412#6743#6875#6034#6902#6173#6590
- Another benchmark rename e5329f13 @bep
- Rename the Edit benchmarks 5b145ddc @bep
- Refactor a benchmark to make it runnable as test 54bdcaac @bep
- Add benchmark for content edits 1622510a @bep
- Add “go mod verify” to build scripts 56d0b658 @bep
- Add git to Dockerfile 75c3787f @JaymoKang
- Update go.sum 9babb1f0 @bep
- Rename doWithCommandeer to cfgInit/cfgSetAndInit 8a5124d6 @MarkRosemaker
- Update golibsass 898a0a96 @bep #6885
- Shuffle test files before insertion 3b721110 @bep
- Update to LibSass v3.6.3 40ba7e6d @bep #6862
- Update Go version requirement 23ea4318 @bep #6853
Fixes
Templates
Other
- Fix lazy publishing with publishResources=false 9bdedb25 @bep #6914
- Fix goMinorVersion on non-final Go releases c7975b48 @QuLogic
- Fix taxonomy 1b7acfe7 @bep
- Fix RenderString for pages without content 19e12caf @bep #6882
- Fix chroma highlight 3c568ad0 @satotake #6877#6856
- Fix mount with hole regression b78576fd @bep #6854
- Fix bundle resource ordering regression 18888e09 @bep #6851
- Fix note about CGO 7f0ebd4a @moorereason
Improve this page