hugo v0.65.0 Release Notes

Release Date: 2020-02-20 // about 4 years ago
  • 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.

    0๏ธโƒฃ 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