SOLVED: Single.html vs list.html

You aren’t the first to be confused here. I think the confusion comes from a single behavior in Hugo.

If content type is not specified, the section name will be used as the content type.

This behavior comes from how people generally organize their content.

A section is the first directory under root. In your case it is “post”… we will call this postSection for clarification.

A type is assigned via the front matter. It’s entirely possible for a given section to have content of different types in it. For convenience purposes if a type isn’t defined it will take the section name as type… In this case “post”. We will call it postType for clarification.

For any given type Hugo looks in /layouts/TYPENAME/single.html to render it.

Additional views of that type can also be placed in that directory, for instance a summary view would be /layouts/TYPENAME/summary.html

When Hugo is called to render a section it looks for /layouts/section/SECTIONNAME.html .

While I did consider having Hugo look at TYPENAME/list.html, after some thought it was apparent to me that this would be even more confusing. Why would a type list need to handle content of other types. By keeping the layout for a section in /layouts/section it kept this separation which reinforced the idea that a section can contain many types.

I hope this clarifies things.