diff options
author | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2018-11-06 10:04:37 +0100 |
---|---|---|
committer | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2018-11-06 11:04:10 +0100 |
commit | b8b8436fcca17c152e94cae2a1acad32efc3946c (patch) | |
tree | 4ee55f6a733fe4edd5e96ee756acb4056dd9fb19 /hugolib | |
parent | 42d8dfc8c88af03ea926a59bc2332acc70cca5f6 (diff) |
hugolib: Fix changing paginators in lazy render
Fixes #5406
Diffstat (limited to 'hugolib')
-rw-r--r-- | hugolib/hugo_sites.go | 10 | ||||
-rw-r--r-- | hugolib/page.go | 16 |
2 files changed, 17 insertions, 9 deletions
diff --git a/hugolib/hugo_sites.go b/hugolib/hugo_sites.go index 65e3260f6..9cc091927 100644 --- a/hugolib/hugo_sites.go +++ b/hugolib/hugo_sites.go @@ -416,6 +416,7 @@ type BuildCfg struct { // a Page: If it is recently visited (the home pages will always be in this set) or changed. // Note that a page does not have to have a content page / file. // For regular builds, this will allways return true. +// TODO(bep) rename/work this. func (cfg *BuildCfg) shouldRender(p *Page) bool { if p.forceRender { p.forceRender = false @@ -427,6 +428,9 @@ func (cfg *BuildCfg) shouldRender(p *Page) bool { } if cfg.RecentlyVisited[p.RelPermalink()] { + if cfg.PartialReRender { + _ = p.initMainOutputFormat() + } return true } @@ -644,15 +648,13 @@ func (h *HugoSites) setupTranslations() { func (s *Site) preparePagesForRender(start bool) error { for _, p := range s.Pages { - p.setContentInit(start) - if err := p.initMainOutputFormat(); err != nil { + if err := p.prepareForRender(start); err != nil { return err } } for _, p := range s.headlessPages { - p.setContentInit(start) - if err := p.initMainOutputFormat(); err != nil { + if err := p.prepareForRender(start); err != nil { return err } } diff --git a/hugolib/page.go b/hugolib/page.go index 070df133b..c726394a2 100644 --- a/hugolib/page.go +++ b/hugolib/page.go @@ -304,7 +304,7 @@ func (p *Page) initContent() { go func() { var err error - err = p.prepareForRender() + err = p.prepareContent() if err != nil { c <- err return @@ -1142,11 +1142,17 @@ func (p *Page) subResourceTargetPathFactory(base string) string { return path.Join(p.relTargetPathBase, base) } -func (p *Page) initMainOutputFormat() error { - if p.mainPageOutput != nil { - return nil +// Prepare this page for rendering for a new site. The flag start is set +// for the first site and output format. +func (p *Page) prepareForRender(start bool) error { + p.setContentInit(start) + if start { + return p.initMainOutputFormat() } + return nil +} +func (p *Page) initMainOutputFormat() error { outFormat := p.outputFormats[0] pageOutput, err := newPageOutput(p, false, false, outFormat) @@ -1193,7 +1199,7 @@ func (p *Page) setContentInit(start bool) error { } -func (p *Page) prepareForRender() error { +func (p *Page) prepareContent() error { s := p.s // If we got this far it means that this is either a new Page pointer |