aboutsummaryrefslogtreecommitdiffhomepage
path: root/docs/content/en/methods/shortcode/Parent.md
diff options
context:
space:
mode:
Diffstat (limited to 'docs/content/en/methods/shortcode/Parent.md')
-rw-r--r--docs/content/en/methods/shortcode/Parent.md50
1 files changed, 50 insertions, 0 deletions
diff --git a/docs/content/en/methods/shortcode/Parent.md b/docs/content/en/methods/shortcode/Parent.md
new file mode 100644
index 000000000..50ae521da
--- /dev/null
+++ b/docs/content/en/methods/shortcode/Parent.md
@@ -0,0 +1,50 @@
+---
+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