hugolib, output: Restrict Render to regular Pages

Using it for list pages doesn't work and has potential weird side-effects.

The user probably meant to range over .Site.ReqularPages, and that is now marked clearly in the log.
This commit is contained in:
Bjørn Erik Pedersen
2017-03-26 19:34:30 +02:00
parent e49a2b83ad
commit 930a3df1b7
6 changed files with 50 additions and 16 deletions

View File

@@ -91,7 +91,11 @@ func pageRenderer(s *Site, pages <-chan *Page, results chan<- error, wg *sync.Wa
if page.selfLayout != "" {
layouts = []string{page.selfLayout}
} else {
layouts = s.layouts(pageOutput)
layouts, err = s.layouts(pageOutput)
if err != nil {
s.Log.ERROR.Printf("Failed to resolve layout output %q for page %q: %s", outFormat.Name, page, err)
continue
}
}
switch pageOutput.outputFormat.Name {
@@ -161,7 +165,11 @@ func (s *Site) renderPaginator(p *PageOutput) error {
pageNumber := i + 1
addend := fmt.Sprintf("/%s/%d", paginatePath, pageNumber)
targetPath, _ := p.targetPath(addend)
layouts := p.layouts()
layouts, err := p.layouts()
if err != nil {
return err
}
if err := s.renderAndWritePage(
pagerNode.Title,
@@ -200,10 +208,13 @@ func (s *Site) renderRSS(p *PageOutput) error {
p.Data["Pages"] = p.Pages
}
layouts := s.layoutHandler.For(
layouts, err := s.layoutHandler.For(
p.layoutDescriptor,
"",
p.outputFormat)
if err != nil {
return err
}
// TODO(bep) output deprecate/handle rssURI
targetPath, err := p.targetPath()