Hugo 0.19 Released: Native Emacs Org-mode Support and Lots of Improvement!

More than 180 contributions by 50 contributors in two months is impressive. The new Hugo 0.19 has plenty of fixes, enhancements and new features.

Grab the binary of your choice here.

Release Notes

We’re happy to announce the first release of Hugo in 2017.

This release represents over 180 contributions by over 50 contributors to the main Hugo code base. Since last release Hugo has gained 1450 stars, 35 new contributors and 15 additional themes.

Hugo now has:

  • 15200+ stars
  • 470+ contributors
  • 151+ themes

Furthermore, Hugo has its own Twitter account (@gohugoio) where we share bite-sized news and themes from the Hugo community.

@bep leads the Hugo development and once again contributed a significant amount of additions. Also a big shoutout to @chaseadamsio for the Emacs Org-mode support, @digitalcraftsman for his relentless work on keeping the documentation and the themes site in pristine condition, @fj for his work on revising the params handling in Hugo, and @moorereason and @bogem for their ongoing contributions.


Hugo 0.19 brings native Emacs Org-mode content support ( #1483 ), big thanks to @chaseadamsio .

Also, a considerably amount of work have been put into cleaning up the Hugo source code, in an issue titled Refactor the globals out of site build. This is not immediately visible to the Hugo end user, but will speed up future development.

Hugo 0.18 was bringing full-parallel page rendering, so workarounds depending on rendering order did not work anymore, and pages with duplicate target paths (common examples would be / or /about/ would now conflict with the home page or the section listing.

With Hugo 0.19, you can control this behaviour by turning off page types you do not want ( #2534 ). In its most extreme case, if you put the below setting in your config.toml, you will get nothing!:

disableKinds = ["page", "home", "section", "taxonomy", "taxonomyTerm", "RSS", "sitemap", "robotsTXT", "404"]

Other New Features

  • Add ability to sort pages by frontmatter parameters, enabling easy custom “top 10” page lists. #3022
  • Add truncate template function #2882
  • Add now function, which replaces the now deprecated .Now #2882
  • Make RSS item limit configurable #3035


  • Enhance .Param to permit arbitrarily nested parameter references #2598
  • Use Page.Params more consistently when adding metadata #3033
  • The sectionPagesMenu feature (“Section menu for the lazy blogger”) is now integrated with the section content pages. #2974
  • Hugo 0.19 is compiled with Go 1.8!
  • Make template funcs like findRE and friends more liberal in what argument types they accept #3018 #2822
  • Improve generation of OpenGraph date tags #2979


  • sourceRelativeLinks is now deprecated and will be removed in Hugo 0.21 if no one is stepping up to the plate and fixes and maintains this feature. #3028


  • Fix .Site.LastChange on sites where the default sort order is not chronological. #2909
  • Fix regression of .Truncated evaluation in manual summaries. #2989
  • Fix preserveTaxonomyNames regression #3070
  • Fix issue with taxonomies when only some have content page #2992
  • Fix instagram shortcode panic on invalid ID #3048
  • Fix subtle data race in getJSON #3045
  • Fix deadlock in cached partials #2935
  • Avoid double-encoding of paginator URLs #2177
  • Allow tilde in URLs #2177
  • Fix .Site.Pages handling on live reloads #2869
  • UniqueID now correctly uses the fill file path from the content root to calculate the hash, and is finally … unique!
  • Discard current language based on .Lang(), go get translations correct for paginated pages. #2972
  • Fix infinite loop in template AST handling for recursive templates #2927
  • Fix issue with watching when config loading fails #2603
  • Correctly flush the imageConfig on live-reload #3016
  • Fix parsing of TOML arrays in frontmatter #2752


  • Add tutorial “How to use Google Firebase to host a Hugo site” #3007
  • Improve documentation for menu rendering #3056
  • Revise GitHub Pages deployment tutorial #2930