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).