summaryrefslogtreecommitdiffstats
path: root/docs/content/en/functions/go-template/block.md
diff options
context:
space:
mode:
Diffstat (limited to 'docs/content/en/functions/go-template/block.md')
-rw-r--r--docs/content/en/functions/go-template/block.md55
1 files changed, 55 insertions, 0 deletions
diff --git a/docs/content/en/functions/go-template/block.md b/docs/content/en/functions/go-template/block.md
new file mode 100644
index 000000000..f8a082037
--- /dev/null
+++ b/docs/content/en/functions/go-template/block.md
@@ -0,0 +1,55 @@
+---
+title: block
+description: Defines a template and executes it in place.
+categories: []
+keywords: []
+action:
+ aliases: []
+ related:
+ - functions/go-template/define
+ - functions/go-template/end
+ returnType:
+ signatures: [block NAME CONTEXT]
+---
+
+A block is shorthand for defining a template:
+
+```go-html-template
+{{ define "name" }} T1 {{ end }}
+```
+
+and then executing it in place:
+
+```go-html-template
+{{ template "name" pipeline }}
+```
+The typical use is to define a set of root templates that are then customized by redefining the block templates within.
+
+{{< code file=layouts/_default/baseof.html >}}
+<body>
+ <main>
+ {{ block "main" . }}
+ {{ print "default value if 'main' template is empty" }}
+ {{ end }}
+ </main>
+</body>
+{{< /code >}}
+
+{{< code file=layouts/_default/single.html >}}
+{{ define "main" }}
+ <h1>{{ .Title }}</h1>
+ {{ .Content }}
+{{ end }}
+{{< /code >}}
+
+{{< code file=layouts/_default/list.html >}}
+{{ define "main" }}
+ <h1>{{ .Title }}</h1>
+ {{ .Content }}
+ {{ range .Pages }}
+ <h2><a href="{{ .RelPermalink }}">{{ .LinkTitle }}</a></h2>
+ {{ end }}
+{{ end }}
+{{< /code >}}
+
+{{% include "functions/go-template/_common/text-template.md" %}}