HUGO
News Docs Themes Community GitHub

define

Defines a template.

Syntax

define NAME

Use with the block statement:

{{ block "main" . }}
  {{ print "default value if 'main' template is empty" }}
{{ end }}

{{ define "main" }}
  <h1>{{ .Title }}</h1>
  {{ .Content }}
{{ end }}

Use with the partial function:

{{ partial "inline/foo.html" (dict "answer" 42) }}

{{ define "_partials/inline/foo.html" }}
  {{ printf "The answer is %v." .answer }}
{{ end }}

Use with the template function:

{{ template "foo" (dict "answer" 42) }}

{{ define "foo" }}
  {{ printf "The answer is %v." .answer }}
{{ end }}

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.

layouts/do-not-do-this.html
<div>This div element broke your template.</div>
{{ define "main" }}
  <h2>{{ .Title }}</h2>
  {{ .Content }}
{{ end }}
<!-- An HTML comment will break your template too. -->

See Go’s text/template documentation for more information.