Hugo 0.42: Theme Composition and Inheritance!
Hugo `0.42` adds **Theme Components**. This is a really powerful new way of building your Hugo sites with reusable components. This is both **Theme Composition** and **Theme Inheritance**.
Read more about Theme Components in the Hugo Documentation.
The feature above was implemented by @bep, the funny Norwegian, with great design help from the Hugo community. But that implementation would not have been possible without Afero, Steve Francia’s virtual file system. Hugo is built on top of Afero and many other fast and solid Go projects, and if you look at the combined contribution log of the Hugo project and its many open source dependencies, the total amount of contributions is staggering. A big thank you to them all!
This release represents 27 contributions by 7 contributors to the main Hugo code base. @bep leads the Hugo development with a significant amount of contributions, but also a big shoutout to @onedrawingperday, @anthonyfok, and @stefanneuhaus for their ongoing contributions.
And a big thanks to @digitalcraftsman for his relentless work on keeping the themes site in pristine condition and to @kaushalmodi for his great work on the documentation site.
Many have also been busy writing and fixing the documentation in hugoDocs, which has received 8 contributions by 5 contributors. A special thanks to @bep, @LorenzCK, @gavinwray, and @deyton for their work on the documentation site.
Hugo now has:
- 26286+ stars
- 444+ contributors
- 235+ themes
Notes
- The
speakerdeck
shortcode is removed. It didn’t work properly, so is isn’t expected to be in wide use. If you use it, you will get a build error. You will either have to remove its usage or add aspeakerdeck
shortcode to your own project or theme. - We have now virtualized the filesystems for project and theme files. This makes everything simpler, faster and more powerful. But it also means that template lookups on the form
{{ template “theme/partials/pagination.html” . }}
will not work anymore. That syntax has never been documented, so it’s not expected to be in wide use.{{ partial "pagination.html" . }}
will give you the most specific version of that partial.
Enhancements
- Always load GA script over HTTPS 2e6712e2 @coliff
- Remove speakerdeck shortcode 65deb72d @onedrawingperday #4830
- Add
strings.RuneCount
019bd557 @theory - Add
strings.Repeat
13435a6f @theory - Reset Page’s main output on server rebuilds dc4226a8 @bep #4819
- Create LICENSE rather than LICENSE.md in “new theme” ed4a345e @anthonyfok #4623
- Create
_default/baseof.html
in “new theme” 9717ac7d @anthonyfok #3576 - Add
tweet_simple
shortcode 07b96d16 @onedrawingperday - Make “new theme” feedback more intuitive 692ec008 @anthonyfok
- Move nextStepsText() to new_site.go d3dd74fd @anthonyfok
- Add support for theme composition and inheritance 80230f26 @bep #4460#4450
- Add vimeo_simple 8de53244 @onedrawingperday #4749
- Add a BlackFriday option for rel="noreferrer” on external links 20cbc2c7 @stefanneuhaus #4722
- Add a BlackFriday option for rel="nofollow” on external links 7a619264 @stefanneuhaus #4722
- Update Chroma b5b36e32 @bep #4779
- Enhance Page and Resource String() 4f0665f4 @vassudanagunta
- Update theme documentation c74b0f8f @bep #4460
Fixes
- Make sure that
.Site.Taxonomies
is always set on rebuilds 6464981a @bep #4838 - Reset the “distinct error logger” on rebuilds bf5f10fa @bep #4818
- Remove frameborder attr YT iframe + CSS fixes ceaff7ca @onedrawingperday
- Fix vimeo_simple thumb scaling b84389c5 @onedrawingperday
- Fix typo instagram_simple d68367cb @onedrawingperday
- Prevent isBaseTemplate() from matching “baseof” in dir c3115292 @anthonyfok #4809
Improve this page