HUGO

Move some Site metadata out of .Site/site when moving templates out of core

As @jmooring and others have observed there are problems with .Site.Authors / .Site.Author

but I think the problem is deeper than that, and as I understand the internal templates are likely to be moved out of Hugo core (which make a lot of sense to me), this would be a good time to remove some metadata from the .Site variable / site function that make certain metadata assumptions for those templates that are not a good idea to have be an issue that core has to deal with.

For example:

  • .Site.Author
  • .Site.Authors
  • .Site.Copyright
  • .Site.Disqus.Shortname
  • .Site.GoogleAnalytics

These could all be, I believe be more reasonably handled as .Site.Params (and as a bonus can be overridden by page params if desired by the template author, through the use of .Param "variable" instead of .Site.Params.variable.

At the time they were added I think it made sense, but especially with moving the templates out of core, I think it would be beneficial to also move the ‘data model’ discussions for this type of ‘extra’ metadata (not required for rendering the page) out of core as well.

I think my argument in

that .Site.Authors is not really a special case except that it was never implemented, but the argument used to not simply replace .Site.Authors with .Site.Author.authors in the templates, suggests that this type of metadata add a burden to core that isn’t needed (that is having to agree on a data model for variables that Hugo supports in .Site before updating templates to use a working technique, even if like the currently broken twitter ones they don’t currently do what is expected).