1
0
Fork 0
mirror of https://github.com/gohugoio/hugo.git synced 2025-01-21 04:02:11 +00:00

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 
This commit is contained in:
Bjørn Erik Pedersen 2018-04-19 16:35:21 +02:00
parent 47c05c47e0
commit 3238e14fdf
No known key found for this signature in database
GPG key ID: 330E6E2BD4859D8F

View file

@ -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 // or a template or similar has changed so wee need to do a rerendering
// of the shortcodes etc. // 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, // If in watch mode or if we have multiple output formats,
// we need to keep the original so we can // we need to keep the original so we can
// potentially repeat this process on rebuild. // potentially repeat this process on rebuild.
@ -1119,15 +1129,6 @@ func (p *Page) prepareForRender(cfg *BuildCfg) error {
//analyze for raw stats //analyze for raw stats
p.analyzePage() 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 return nil
} }