summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--hugolib/hugo_sites.go8
-rw-r--r--hugolib/hugo_sites_build.go27
-rw-r--r--hugolib/shortcode.go5
-rw-r--r--hugolib/site.go38
4 files changed, 47 insertions, 31 deletions
diff --git a/hugolib/hugo_sites.go b/hugolib/hugo_sites.go
index b18e66bac..8a8fc2223 100644
--- a/hugolib/hugo_sites.go
+++ b/hugolib/hugo_sites.go
@@ -492,7 +492,13 @@ func (h *HugoSites) setupTranslations() {
}
}
-func (s *Site) preparePagesForRender(cfg *BuildCfg) {
+func (s *Site) preparePagesForRender(outFormatIdx int, cfg *BuildCfg) {
+
+ if outFormatIdx > 0 {
+ // TODO(bep) for now
+ return
+ }
+
pageChan := make(chan *Page)
wg := &sync.WaitGroup{}
numWorkers := getGoMaxProcs() * 4
diff --git a/hugolib/hugo_sites_build.go b/hugolib/hugo_sites_build.go
index 58088fd7c..12689f6de 100644
--- a/hugolib/hugo_sites_build.go
+++ b/hugolib/hugo_sites_build.go
@@ -203,26 +203,31 @@ func (h *HugoSites) assemble(config *BuildCfg) error {
return err
}
- for _, s := range h.Sites {
- s.preparePagesForRender(config)
- }
-
return nil
}
func (h *HugoSites) render(config *BuildCfg) error {
- if !config.SkipRender {
- for _, s := range h.Sites {
- if err := s.render(); err != nil {
- return err
- }
- if config.PrintStats {
- s.Stats()
+ for _, s := range h.Sites {
+ s.initRenderFormats()
+ for i, rf := range s.renderFormats {
+ s.rc = &siteRenderingContext{Format: rf}
+ s.preparePagesForRender(i, config)
+
+ if !config.SkipRender {
+ if err := s.render(i); err != nil {
+ return err
+ }
}
}
+ if !config.SkipRender && config.PrintStats {
+ s.Stats()
+ }
+ }
+
+ if !config.SkipRender {
if err := h.renderCrossSitesArtifacts(); err != nil {
return err
}
diff --git a/hugolib/shortcode.go b/hugolib/shortcode.go
index b088ed61d..abe445d71 100644
--- a/hugolib/shortcode.go
+++ b/hugolib/shortcode.go
@@ -309,6 +309,7 @@ func executeShortcodeFuncMap(funcs map[string]func() (string, error)) (map[strin
}
func renderShortcodes(shortcodes map[string]shortcode, p *Page) map[string]func() (string, error) {
+
renderedShortcodes := make(map[string]func() (string, error))
for key, sc := range shortcodes {
@@ -316,8 +317,8 @@ func renderShortcodes(shortcodes map[string]shortcode, p *Page) map[string]func(
// need to have something to replace with
renderedShortcodes[key] = emptyShortcodeFn
} else {
- shorctode := sc
- renderedShortcodes[key] = func() (string, error) { return renderShortcode(shorctode, nil, p), nil }
+ shortcode := sc
+ renderedShortcodes[key] = func() (string, error) { return renderShortcode(shortcode, nil, p), nil }
}
}
diff --git a/hugolib/site.go b/hugolib/site.go
index 9bd9b4923..bd029d47a 100644
--- a/hugolib/site.go
+++ b/hugolib/site.go
@@ -986,31 +986,35 @@ func (s *Site) setupSitePages() {
s.Info.LastChange = siteLastChange
}
-func (s *Site) render() (err error) {
+func (s *Site) render(outFormatIdx int) (err error) {
+
+ if outFormatIdx == 0 {
+ if err = s.preparePages(); err != nil {
+ return
+ }
+ s.timerStep("prepare pages")
+
+ // Aliases must be rendered before pages.
+ // Some sites, Hugo docs included, have faulty alias definitions that point
+ // to itself or another real page. These will be overwritten in the next
+ // step.
+ if err = s.renderAliases(); err != nil {
+ return
+ }
+ s.timerStep("render and write aliases")
- if err = s.preparePages(); err != nil {
- return
}
- s.timerStep("prepare pages")
- // Aliases must be rendered before pages.
- // Some sites, Hugo docs included, have faulty alias definitions that point
- // to itself or another real page. These will be overwritten in the next
- // step.
- if err = s.renderAliases(); err != nil {
+ if err = s.renderPages(); err != nil {
return
}
- s.timerStep("render and write aliases")
+
+ s.timerStep("render and write pages")
// TODO(bep) render consider this, ref. render404 etc.
- s.initRenderFormats()
- for _, rf := range s.renderFormats {
- s.rc = &siteRenderingContext{Format: rf}
- if err = s.renderPages(); err != nil {
- return
- }
+ if outFormatIdx > 0 {
+ return
}
- s.timerStep("render and write pages")
if err = s.renderSitemap(); err != nil {
return