--- title: define description: Defines a template. categories: [] keywords: [] params: functions_and_methods: aliases: [] returnType: signatures: [define NAME] --- Use with the [`block`] statement: ```go-html-template {{ block "main" . }} {{ print "default value if 'main' template is empty" }} {{ end }} {{ define "main" }}

{{ .Title }}

{{ .Content }} {{ end }} ``` Use with the [`partial`] function: ```go-html-template {{ partial "inline/foo.html" (dict "answer" 42) }} {{ define "_partials/inline/foo.html" }} {{ printf "The answer is %v." .answer }} {{ end }} ``` Use with the [`template`] function: ```go-html-template {{ template "foo" (dict "answer" 42) }} {{ define "foo" }} {{ printf "The answer is %v." .answer }} {{ end }} ``` > [!warning] > Only [template comments] are allowed outside of the `define` and `end` statements. Avoid placing any other text, including HTML comments, outside of these boundaries. Doing so will cause rendering issues, potentially resulting in a blank page. See the example below. ```go-html-template {file="layouts/do-not-do-this.html"}
This div element broke your template.
{{ define "main" }}

{{ .Title }}

{{ .Content }} {{ end }} ``` {{% include "/_common/functions/go-template/text-template.md" %}} [`block`]: /functions/go-template/block/ [`template`]: /functions/go-template/block/ [`partial`]: /functions/partials/include/ [template comments]: /templates/introduction/#comments