hugo

Unnamed repository; edit this file 'description' to name the repository.

git clone git://git.shimmy1996.com/hugo.git
commit 3238e14fdfeedf189a5af122e20bff040ac059bd
parent 47c05c47e0b663632a649ee5d256acc1a32fe9e4
Author: Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Date:   Thu, 19 Apr 2018 16:35:21 +0200

hugolib: Prepare child page resources before the page itself

To make sure that the child resources' content is ready before any shortcode is processed in their owner.

See #4632

Diffstat:
Mhugolib/page.go | 19++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/hugolib/page.go b/hugolib/page.go
@@ -1069,6 +1069,16 @@ func (p *Page) prepareForRender(cfg *BuildCfg) error {
 	// or a template or similar has changed so wee need to do a rerendering
 	// of the shortcodes etc.
 
+	// Handle bundled pages first, so the content is available in the
+	// owners' shortcodes.
+	for _, r := range p.Resources.ByType(pageResourceType) {
+		p.s.PathSpec.ProcessingStats.Incr(&p.s.PathSpec.ProcessingStats.Pages)
+		bp := r.(*Page)
+		if err := bp.prepareForRender(cfg); err != nil {
+			s.Log.ERROR.Printf("Failed to prepare bundled page %q for render: %s", bp.BaseFileName(), err)
+		}
+	}
+
 	// If in watch mode or if we have multiple output formats,
 	// we need to keep the original so we can
 	// potentially repeat this process on rebuild.
@@ -1119,15 +1129,6 @@ func (p *Page) prepareForRender(cfg *BuildCfg) error {
 	//analyze for raw stats
 	p.analyzePage()
 
-	// Handle bundled pages.
-	for _, r := range p.Resources.ByType(pageResourceType) {
-		p.s.PathSpec.ProcessingStats.Incr(&p.s.PathSpec.ProcessingStats.Pages)
-		bp := r.(*Page)
-		if err := bp.prepareForRender(cfg); err != nil {
-			s.Log.ERROR.Printf("Failed to prepare bundled page %q for render: %s", bp.BaseFileName(), err)
-		}
-	}
-
 	return nil
 }