Hugo: partialCached or not?
spO0q

spO0q @spo0q

About: Practice what you preach

Location:
earth
Joined:
Dec 29, 2019

Hugo: partialCached or not?

Publish Date: May 25
0 0

The name is pretty self-explanatory. It caches the render of a given partial.

While it can optimize the build, especially when you have to deal with heavy templates and complex calculations, partial and partialCached keywords are not interchangeable.

Basic usage

The most common implementation would be similar to the following:

{{ partialCached "footer.html" . }}
Enter fullscreen mode Exit fullscreen mode

It assumes the partial generates the same code every time.

More advanced usage

The documentation you can pass additional arguments:

{{ partialCached "footer.html" . .Section }}
Enter fullscreen mode Exit fullscreen mode

Although, you might miss the point if you don't read the documentation carefully:

The variant arguments are not available to the underlying partial template; they are only used to create unique cache keys

Those arguments are only used to create unique cache keys.

Everything wrong with cached partials

  • ❌ don't use partialCached if there are too much variants (e.g., one per page)
  • ❌ don't forget the context (2nd argument)
  • ❌ don't try to use the arguments within the partial itself
  • ❌ don't use partialCached for very small websites (e.g., one-page, portfolio)

Better practices

  • ✅ remember Hugo executes the partial only once per key
  • ✅ use partialCached when the content is the same on all pages or, at least, several pages (e.g., sections, footer)
  • ✅ replace partialCached with a simple partial if you encounter some performance issues or display errors

Useful links

Comments 0 total

    Add comment