hugo/docs/content/en/methods/shortcode/Parent.md
Bjørn Erik Pedersen 5fd1e74903
Merge commit '9b0050e9aabe4be65c78ccf292a348f309d50ccd' as 'docs'
```
git subtree add --prefix=docs/ https://github.com/gohugoio/hugoDocs.git master --squash
```

Closes #11925
2024-01-27 10:48:57 +01:00

51 lines
1.3 KiB
Markdown

---
title: Parent
description: Returns the parent shortcode context in nested shortcodes.
categories: []
keywords: []
action:
related: []
returnType: hugolib.ShortcodeWithPage
signatures: [SHORTCODE.Parent]
---
This is useful for inheritance of common shortcode parameters from the root.
In this contrived example, the "greeting" shortcode is the parent, and the "now" shortcode is child.
{{< code file=content/welcome.md lang=md >}}
{{</* greeting dateFormat="Jan 2, 2006" */>}}
Welcome. Today is {{</* now */>}}.
{{</* /greeting */>}}
{{< /code >}}
{{< code file=layouts/shortcodes/greeting.html >}}
<div class="greeting">
{{ trim .Inner "\r\n" | .Page.RenderString }}
</div>
{{< /code >}}
{{< code file=layouts/shortcodes/now.html >}}
{{- $dateFormat := "January 2, 2006 15:04:05" }}
{{- with .Params }}
{{- with .dateFormat }}
{{- $dateFormat = . }}
{{- end }}
{{- else }}
{{- with .Parent.Params }}
{{- with .dateFormat }}
{{- $dateFormat = . }}
{{- end }}
{{- end }}
{{- end }}
{{- now | time.Format $dateFormat -}}
{{< /code >}}
The "now" shortcode formats the current time using:
1. The `dateFormat` parameter passed to the "now" shortcode, if present
2. The `dateFormat` parameter passed to the "greeting" shortcode, if present
3. The default layout string defined at the top of the shortcode