Hugo 0.22 Released: Nested Sections!

The new Hugo brings proper content trees!

Grab the binary of your choice here.

Release Notes

Hugo 0.22 brings nested sections, by popular demand and a long sought after feature (#465). We are still low on documentation for this great feature, but @bep has been kind enough to accompany his implementation with a demo site.

This release represents 58 contributions by 10 contributors to the main Hugo code base. Since last release Hugo has gained 420 stars and 2 additional themes.

@bep still leads the Hugo development with his witty Norwegian humor, and once again contributed a significant amount of additions. But also a big shoutout to @bogem, @moorereason, and @onedrawingperday for their ongoing contributions. And as always big thanks to @digitalcraftsman for his relentless work on keeping the documentation and the themes site in pristine condition.

Hugo now has:

Other Highlights

.Site.GetPage can now also be used to get regular pages (#2844):

{{ (.Site.GetPage "page" "blog" "mypost.md" ).Title }}

Also, considerable work has been put into writing automated benchmark tests for the site builds, and we’re happy to report that although this release comes with fundamental structural changes, this version is – in general – even faster than the previous. It’s quite a challenge to consistently add significant new functionality and simultaneously maintain the stellar performance Hugo is famous for.

Notes

.Site.Sections is replaced. We have reworked how sections work in Hugo, they can now be nested and are no longer taxonomies. If you use the old collection, you should get detailed upgrade instructions in the log when you run hugo . For more information, see this demo site.

Enhancements

Templates

Add uint support to In b82cd82f @moorereason

support to b82cd82f @moorereason Support interfaces in union 204c3a9e @moorereason #3411

204c3a9e @moorereason #3411 Add uniq function e28d9aa4 @adiabatic

function e28d9aa4 @adiabatic Handle template.HTML and friends in ToInt 4113693a @moorereason #3308

Core

Make the RSS feed use the date for the node it represents f1da5a15 @bep #2708

use the date for the node it represents f1da5a15 @bep #2708 Enable nested sections b3968939 @bep #465

b3968939 @bep #465 Add test for “no 404” in sitemap 8aaec644 @bep #3563

8aaec644 @bep #3563 Support regular pages in .Site.GetPage e0c2e798 @bep #2844 #3082

Performance

Add site building benchmarks 8930e259 @bep #3535

Add a cache to GetPage which makes it much faster 50d11138 @bep

which makes it much faster 50d11138 @bep Speed up GetPage fbb78b89 @bep #3503

fbb78b89 @bep #3503 Add BenchmarkFrontmatterTags 3d9c4f51 @bep #3464

Add benchSite.sh to make it easy to run Hugo performance benchmarks d74452cf @bep

to make it easy to run Hugo performance benchmarks d74452cf @bep Cache language config 4aff2b6e @bep

Temporarily revert to BurntSushi for TOML front matter handling; it is currently much faster 0907a5c1 @bep #3541 #3464

front matter handling; it is currently much faster 0907a5c1 @bep #3541 #3464 Add a simple partitioned lazy cache 87203139 @bep

Other

Add noindex tag to HTML generated by Hugo aliases d5ab7f08 @onedrawingperday

tag to HTML generated by Hugo aliases d5ab7f08 @onedrawingperday Update Go versions bde807bd @bep

Remove the rlimit tweaking on macOS bcd32f10 @bep #3512

Docs

Rewrite “Archetypes” article @davidturnbull #3543

Remove Unmaintaned Frontends from Tools. f41f7282 @onedrawingperday

Fixes

Core

Improve live-reload on directory structure changes making removal of directories or pasting new content directories into /content just work fe901b81 @bep #3570

on directory structure changes making removal of directories or pasting new content directories into just work fe901b81 @bep #3570 Respect disableKinds=["sitemap"] 69d92dc4 @bep #3544

69d92dc4 @bep #3544 Fix disablePathToLower regression 5be04486 @bep #3374

regression 5be04486 @bep #3374 Fix ref / relref issue with duplicate base filenames 612f6e3a @bep #2507

Docs