hugo/docs/content/en/news/0.65.0-relnotes/index.md
2020-03-09 20:21:17 +01:00

12 KiB


date: 2020-02-20 title: "0.65.0: Hugo Reloaded!" description: "Draft, expire, resource bundling, and fine grained publishing control for any page. And it's faster." categories: ["Releases"]

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 in go.sum. Run with hugo 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:

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

  • Handle disabled RSS even if it's defined in outputs da54787c @bep

Other

Fixes

Templates

Other