This is useful for inheritance of common shortcode arguments from the root.
In this contrived example, the “greeting” shortcode is the parent, and the “now” shortcode is child.
content/welcome.md
{{< greeting dateFormat="Jan 2, 2006" >}}
Welcome. Today is {{< now >}}.
{{< /greeting >}}
layouts/shortcodes/greeting.html
<div class="greeting">
{{ .Inner | strings.TrimSpace | .Page.RenderString }}
</div>
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 -}}
The “now” shortcode formats the current time using:
- The
dateFormat
argument passed to the “now” shortcode, if present - The
dateFormat
argument passed to the “greeting” shortcode, if present - The default layout string defined at the top of the shortcode