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

1.3 KiB

title description categories keywords action
Parent Returns the parent shortcode context in nested shortcodes.
related returnType signatures
hugolib.ShortcodeWithPage
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 >}}

{{ trim .Inner "\r\n" | .Page.RenderString }}
{{< /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