hugolib: Re-work "fast render" logic in the new flow
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Thu, 4 Apr 2019 10:37:55 +0000 (12:37 +0200)
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Thu, 4 Apr 2019 11:51:22 +0000 (13:51 +0200)
Note that this fixes some "live reload" issues recently introduced in non-released code.

Closes #5811
See #5784

hugolib/hugo_sites.go
hugolib/hugo_sites_build.go
hugolib/pagebundler.go

index 9fe2a5bdbc300b1a61fa68512459e71b81d492ad..caa9a4bc2efd210c6fa11503b8df04bbdd795c5b 100644 (file)
@@ -569,7 +569,6 @@ func (cfg *BuildCfg) shouldRender(p *pageState) bool {
                return false
        }
        if p.forceRender {
-               p.forceRender = false
                return true
        }
 
@@ -577,6 +576,10 @@ func (cfg *BuildCfg) shouldRender(p *pageState) bool {
                return true
        }
 
+       if cfg.RecentlyVisited[p.RelPermalink()] {
+               return true
+       }
+
        if cfg.whatChanged != nil && !p.File().IsZero() {
                return cfg.whatChanged.files[p.File().Filename()]
        }
index 214f72c5f64452e69e6cd2a5fcee9cdcd6feec53..91dfb9a37f5ed32efcddded56d45164dc70dbbde 100644 (file)
@@ -288,10 +288,8 @@ func (h *HugoSites) render(config *BuildCfg) error {
                                        // needs this set.
                                        s2.rc = &siteRenderingContext{Format: renderFormat}
 
-                                       if !config.PartialReRender {
-                                               if err := s2.preparePagesForRender(siteRenderContext.sitesOutIdx); err != nil {
-                                                       return err
-                                               }
+                                       if err := s2.preparePagesForRender(siteRenderContext.sitesOutIdx); err != nil {
+                                               return err
                                        }
                                }
 
index 546b125ff9835e8b93bcdfab759e6f44ceffd854..682221d8c6b9a1d47d785e41431752e72fd92438 100644 (file)
@@ -110,8 +110,9 @@ func (s *siteContentProcessor) process(ctx context.Context) error {
                                panic(fmt.Sprintf("invalid page site: %v vs %v", p.s, s))
                        }
 
-                       if s.partialBuild {
-                               p.forceRender = true
+                       p.forceRender = s.partialBuild
+
+                       if p.forceRender {
                                s.site.replacePage(p)
                        } else {
                                s.site.addPage(p)