hugolib: Force render of any changed page, even in Fast Render Mode
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Thu, 16 Aug 2018 08:58:05 +0000 (10:58 +0200)
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Thu, 16 Aug 2018 10:54:59 +0000 (12:54 +0200)
Fixes #5083

hugolib/hugo_sites.go
hugolib/page.go
hugolib/page_bundler.go

index 9241772b2c2873f90dff475cf0d146f38ea2c6d7..11e7bfa4ee56d8a0f07c6e2ca4234f27b132f0b2 100644 (file)
@@ -366,6 +366,11 @@ type BuildCfg struct {
 // Note that a page does not have to have a content page / file.
 // For regular builds, this will allways return true.
 func (cfg *BuildCfg) shouldRender(p *Page) bool {
+       if p.forceRender {
+               p.forceRender = false
+               return true
+       }
+
        if len(cfg.RecentlyVisited) == 0 {
                return true
        }
index c00070c9aeab7f79bfda5a522736b48b94ee0234..629b90484bee8a1f770f5401e6bc3be9405e4a0c 100644 (file)
@@ -265,6 +265,11 @@ type Page struct {
 
        lang string
 
+       // When in Fast Render Mode, we only render a sub set of the pages, i.e. the
+       // pages the user is working on. There are, however, situations where we need to
+       // signal other pages to be rendered.
+       forceRender bool
+
        // The output formats this page will be rendered to.
        outputFormats output.Formats
 
index 9ebfe1b8870b1bf4066fbffa99523ba10968d37d..fc135f6b7ee8bd48b0cbc90e0a99d2862ecd21c8 100644 (file)
@@ -110,6 +110,7 @@ func (s *siteContentProcessor) process(ctx context.Context) error {
                        }
 
                        if s.partialBuild {
+                               p.forceRender = true
                                s.site.replacePage(p)
                        } else {
                                s.site.addPage(p)