Error during travisCI build: ".Render only available for regular pages"

When running our build using Travis, we run into this error:

$ hugo --cleanDestinationDir
Started building sites …
ERROR 2017/03/28 21:04:52 .Render only available for regular pages, not for of kind “home”. You probably meant .Site.RegularPages and not.Site.Pages.
Built site for language en:

The build works fine locally. It was also working fine on Friday (4 days) ago. Nothing had changed with our site, but the error started occurring. I am wondering if it is related to this commit, which happened 2 days ago:

Yes, and the error message is pretty clear. You should fix your layouts/index.html template.

Thank you for the prompt reply. I have two follow up questions:

  1. Why is it throwing an error on Travis but not locally? I’ve updated my local Hugo to: Hugo Static Site Generator v0.19 darwin/amd64 BuildDate: 2017-02-27T03:21:29-07:00
  2. We only had one spot where we called .Site.Pages. We fixed that and still got the error. Here is our layouts/index.html template, which calls .Render “content-single” (should be unrelated?):

{{ partial "header" . }} {{ $.Scratch.Set "shareNav" true }} {{ partial "navbar" . }} {{ partial "share-menu" . }} <!-- Main --> <div id="main"> <!-- Post --> {{ $.Scratch.Set "h1" true }} {{ .Render "content-single" }} </div> {{ partial "sidebar" . }} {{ partial "footer" . }}

I will reduce the ERROR to a WARNING, which is more in line with the old behavior.



Now you will have the old behaviour, and eventually we will upgrade the Render method to work with all.

Hi bep, thank you for working on this right away, I appreciate that.

Just to be clear so I understand, is our layouts/index.html template valid?

{{ partial "header" . }}
{{ $.Scratch.Set "shareNav" true }}
{{ partial "navbar" . }}
{{ partial "share-menu" . }}
<!-- Main -->
<div id="main">
<!-- Post -->
{{ $.Scratch.Set "h1" true }}
{{ .Render "content-single" }}
{{ partial "sidebar" . }}
{{ partial "footer" . }}

Should we be allowed to call .Render from within a static home page (not a list of posts)?

Note that the .Render method was created before we merged Node and Page and … everything got to be a page. And I kind of forgot about it; the old regular pages works a little bit special in the template/layout department, which .Render hooks into. I will fix that, but not right now.

So, if that is your entire layouts/index.html, it doesn’t make sense as a home page template.


{{ .Render "content-single" }}

Is even saying “single”, which is a little misldeading for a Home page. But that will with Hugo 0.20 only render blank, with a WARNING in the log. A partial may be better in this case, not sure.