Skip to content

Commit

Permalink
hugolib: Extract the Fast Render Mode logic into a method
Browse files Browse the repository at this point in the history
This also improves on the previous commit as it takes pages without content files into account.

Closes #4339
  • Loading branch information
bep committed Jan 30, 2018
1 parent 1707dae commit 94e736c
Show file tree
Hide file tree
Showing 3 changed files with 24 additions and 7 deletions.
20 changes: 20 additions & 0 deletions hugolib/hugo_sites.go
Original file line number Diff line number Diff line change
Expand Up @@ -325,6 +325,26 @@ type BuildCfg struct {
RecentlyVisited map[string]bool
}

// shouldRender is used in the Fast Render Mode to determine if we need to re-render
// 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.
func (cfg *BuildCfg) shouldRender(p *Page) bool {
if len(cfg.RecentlyVisited) == 0 {
return true
}

if cfg.RecentlyVisited[p.RelPermalink()] {
return true
}

if cfg.whatChanged != nil && p.File != nil && cfg.whatChanged.files[p.File.Filename()] {
return true
}

return false
}

func (h *HugoSites) renderCrossSitesArtifacts() error {

if !h.multilingual.enabled() || h.IsMultihost() {
Expand Down
2 changes: 1 addition & 1 deletion hugolib/site.go
Original file line number Diff line number Diff line change
Expand Up @@ -941,7 +941,7 @@ func (s *Site) render(config *BuildCfg, outFormatIdx int) (err error) {

}

if err = s.renderPages(config.RecentlyVisited, config.whatChanged.files); err != nil {
if err = s.renderPages(config); err != nil {
return
}

Expand Down
9 changes: 3 additions & 6 deletions hugolib/site_render.go
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ import (

// renderPages renders pages each corresponding to a markdown file.
// TODO(bep np doc
func (s *Site) renderPages(filter map[string]bool, files map[string]bool) error {
func (s *Site) renderPages(cfg *BuildCfg) error {

results := make(chan error)
pages := make(chan *Page)
Expand All @@ -47,13 +47,10 @@ func (s *Site) renderPages(filter map[string]bool, files map[string]bool) error

}

hasFilter := filter != nil && len(filter) > 0

for _, page := range s.Pages {
if hasFilter && !filter[page.RelPermalink()] && !files[page.Source.Filename()] {
continue
if cfg.shouldRender(page) {
pages <- page
}
pages <- page
}

close(pages)
Expand Down

0 comments on commit 94e736c

Please sign in to comment.