ref: 3238e14fdfeedf189a5af122e20bff040ac059bd
parent: 47c05c47e0b663632a649ee5d256acc1a32fe9e4
author: Bjørn Erik Pedersen <[email protected]>
date: Thu Apr 19 12:35:21 EDT 2018
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
--- a/hugolib/page.go
+++ b/hugolib/page.go
@@ -1069,6 +1069,16 @@
// 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.
@@ -1118,15 +1128,6 @@
//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
}