--- title: block description: Defines a template and executes it in place. categories: [] keywords: [] params: functions_and_methods: aliases: [] 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. ```go-html-template {file="layouts/baseof.html"}
{{ block "main" . }} {{ print "default value if 'main' template is empty" }} {{ end }}
``` ```go-html-template {file="layouts/page.html"} {{ define "main" }}

{{ .Title }}

{{ .Content }} {{ end }} ``` ```go-html-template {file="layouts/section.html"} {{ define "main" }}

{{ .Title }}

{{ .Content }} {{ range .Pages }}

{{ .LinkTitle }}

{{ end }} {{ end }} ``` {{% include "/_common/functions/go-template/text-template.md" %}}