aboutsummaryrefslogtreecommitdiffhomepage
path: root/hugolib/page__content.go
diff options
context:
space:
mode:
authorBjørn Erik Pedersen <[email protected]>2024-04-11 17:46:18 +0200
committerBjørn Erik Pedersen <[email protected]>2024-04-15 09:49:57 +0200
commitdf11327ba90179747be2b25574ac48c2f336b298 (patch)
tree70f7487cee6815109fc325ed0619130bb29834ca /hugolib/page__content.go
parenta18e2bcb9a2c556e03dc7e790b0343c83163877a (diff)
downloadhugo-df11327ba90179747be2b25574ac48c2f336b298.tar.gz
hugo-df11327ba90179747be2b25574ac48c2f336b298.zip
Pass .RenderShortcodes' Page to render hooks as .PageInner
The main use case for this is to resolve links and resources (e.g. images) relative to the included `Page`. A typical `include` would similar to this: ```handlebars {{ with site.GetPage (.Get 0) }} {{ .RenderShortcodes }} {{ end }} ``` And when used in a Markdown file: ```markdown {{% include "/posts/p1" %}} ``` Any render hook triggered while rendering `/posts/p1` will get `/posts/p1` when calling `.PageInner`. Note that * This is only relevant for shortcodes included with `{{%` that calls `.RenderShortcodes`. * `.PageInner` is available in all render hooks that, before this commit, received `.Page`. * `.PageInner` will fall back to the value of `.Page` if not relevant and will always have a value. Fixes #12356
Diffstat (limited to 'hugolib/page__content.go')
-rw-r--r--hugolib/page__content.go5
1 files changed, 4 insertions, 1 deletions
diff --git a/hugolib/page__content.go b/hugolib/page__content.go
index 799fc89b6..f10c25d7b 100644
--- a/hugolib/page__content.go
+++ b/hugolib/page__content.go
@@ -522,6 +522,7 @@ func (c *cachedContent) contentRendered(ctx context.Context, cp *pageContentOutp
if err != nil {
return nil, err
}
+
if !ok {
return nil, errors.New("invalid state: astDoc is set but RenderContent returned false")
}
@@ -626,8 +627,10 @@ func (c *cachedContent) contentToC(ctx context.Context, cp *pageContentOutput) (
return nil, err
}
- // Callback called from above (e.g. in .RenderString)
+ // Callback called from below (e.g. in .RenderString)
ctxCallback := func(cp2 *pageContentOutput, ct2 contentTableOfContents) {
+ cp.otherOutputs[cp2.po.p.pid] = cp2
+
// Merge content placeholders
for k, v := range ct2.contentPlaceholders {
ct.contentPlaceholders[k] = v