HUGO
News Docs Themes Community GitHub

Parent

Returns the parent shortcode context in nested shortcodes.

Syntax

SHORTCODE.Parent

Returns

hugolib.ShortcodeWithPage

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:

  1. The dateFormat argument passed to the “now” shortcode, if present
  2. The dateFormat argument passed to the “greeting” shortcode, if present
  3. The default layout string defined at the top of the shortcode