1
0
mirror of https://github.com/gohugoio/hugo.git synced 2024-05-11 05:54:58 +00:00

hugolib: Must recreate Paginator on live-reload

The structure may potentially have changed, and then it fails.

Fixes #3315
This commit is contained in:
Bjørn Erik Pedersen
2017-04-12 18:11:37 +02:00
parent e765b43e2b
commit 45c7452668
2 changed files with 18 additions and 12 deletions

View File

@@ -78,13 +78,17 @@ func newPageOutput(p *Page, createCopy bool, f output.Format) (*PageOutput, erro
// copy creates a copy of this PageOutput with the lazy sync.Once vars reset
// so they will be evaluated again, for word count calculations etc.
func (p *PageOutput) copy() *PageOutput {
c, err := newPageOutput(p.Page, true, p.outputFormat)
func (p *PageOutput) copyWithFormat(f output.Format) (*PageOutput, error) {
c, err := newPageOutput(p.Page, true, f)
if err != nil {
panic(err)
return nil, err
}
c.paginator = p.paginator
return c
return c, nil
}
func (p *PageOutput) copy() (*PageOutput, error) {
return p.copyWithFormat(p.outputFormat)
}
func (p *PageOutput) layouts(layouts ...string) ([]string, error) {
@@ -142,6 +146,9 @@ func (p *Page) Render(layout ...string) template.HTML {
}
p.pageOutputInit.Do(func() {
if p.mainPageOutput != nil {
return
}
// If Render is called in a range loop, the page output isn't available.
// So, create one.
outFormat := p.outputFormats[0]