summaryrefslogtreecommitdiffstats
path: root/hugolib/page_output.go
diff options
context:
space:
mode:
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2017-03-26 11:45:12 +0200
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2017-03-27 15:43:56 +0200
commit9a0aa5fdbe3ef35b7cc1dd756f54f1b219225bfc (patch)
treecac18524ff403396098d3b4e7a3cae472d57c51e /hugolib/page_output.go
parent0aaf3c56a511c6582db4dbfb28879e964e6f2d92 (diff)
hugolib: Wrap pageOutput create in sync.Once
Diffstat (limited to 'hugolib/page_output.go')
-rw-r--r--hugolib/page_output.go15
1 files changed, 15 insertions, 0 deletions
diff --git a/hugolib/page_output.go b/hugolib/page_output.go
index 20d051e8c..542c50e62 100644
--- a/hugolib/page_output.go
+++ b/hugolib/page_output.go
@@ -108,6 +108,21 @@ func (p *PageOutput) Render(layout ...string) template.HTML {
// TODO(bep) output
func (p *Page) Render(layout ...string) template.HTML {
+ p.pageOutputInit.Do(func() {
+ // If Render is called in a range loop, the page output isn't available.
+ // So, create one.
+ outFormat := p.outputFormats[0]
+ pageOutput, err := newPageOutput(p, true, outFormat)
+
+ if err != nil {
+ p.s.Log.ERROR.Printf("Failed to create output page for type %q for page %q: %s", outFormat.Name, p, err)
+ return
+ }
+
+ p.mainPageOutput = pageOutput
+
+ })
+
return p.mainPageOutput.Render(layout...)
}