This release brings a rewrite of the logic around browser refreshes when running hugo server
. We have seen some situations where asset changes (e.g. image/CSS/JS) has not been refreshed reliably in all browsers, even with the developer console open and the cache disabled. We suspect this comes from a recent browser bug (typically: Works fine in Safari, does not refresh in Chrome). The strategy we've been using when a change triggers multiple changes (e.g. both HTML and CSS) is to do one "browser force refresh", which in LiveReload ends up as a window.location.reload()
. With this release we:
- Are more specific about what we refresh, but fall back to "force refresh" for bigger change sets.
- INFO log exactly what we do in these situations with the prefix
livereload
.
Start the server with:
hugo server --logLevel info
And you should see how Hugo handles browser updates when you change content/templates etc.
A related tip; start the server with
hugo server --logLevel info -N
Hugo will navigate to the content file you're changing and log it in the console.
Also new in this release a new xxHash hashing function that is much faster than any of the other hashing functions in Hugo, especially for larger inputs.
Note
We have upgraded the integration with Git used to load GitInfo to be part of Hugo's Security Policy. We have added git
to the default whitelist, but if you have a custom security policy, you may have to update that.
Bug fixes
- commands: Fix --navigateToChanged server behavior when editing headless content cc2d19e @bep #12648
- commands: Fix hugo mod get -u ./... 251a23e @bep #12625
Improvements
- tpl: Use xxHash instead of MD5 to hash the deferred templates 4d8bfa7 @bep
- Throw error if resources.PostProcess is used in a deferred template f0ed91c @bep #12655
- commands: Simplify the browser live reload logic 094f746 @bep #12643
- Use xxHash for the change detector fb8909d @bep #12643
- source: Expose GitInfo Body 0ee2610 @PeskyPotato #10905
- Add hash.XxHash 644d554 @bep #12635