range
Syntax
range COLLECTION
See Go’s text/template documentation for more details.
Slices
Template:
{{ $s := slice "foo" "bar" "baz" }}
{{ range $s }}
<p>{{ . }}</p>
{{ end }}
Result:
<p>foo</p>
<p>bar</p>
<p>baz</p>
Template:
{{ $s := slice "foo" "bar" "baz" }}
{{ range $v := $s }}
<p>{{ $v }}</p>
{{ end }}
Result:
<p>foo</p>
<p>bar</p>
<p>baz</p>
Template:
{{ $s := slice "foo" "bar" "baz" }}
{{ range $k, $v := $s }}
<p>{{ $k }}: {{ $v }}</p>
{{ end }}
Result:
<p>0: foo</p>
<p>1: bar</p>
<p>2: baz</p>
Maps
Template:
{{ $m := slice
(dict "name" "John" "age" 30)
(dict "name" "Will" "age" 28)
(dict "name" "Joey" "age" 24)
}}
{{ range $m }}
<p>{{ .name }} is {{ .age }}</p>
{{ end }}
Result:
<p>John is 30</p>
<p>Will is 28</p>
<p>Joey is 24</p>
Page collections
Template:
{{ range where site.RegularPages "Type" "articles" }}
<h2><a href="{{ .RelPermalink }}">{{ .LinkTitle }}</a></h2>
{{ end }}
Result:
<h2><a href="/articles/article-3/">Article 3</a></h2>
<h2><a href="/articles/article-2/">Article 2</a></h2>
<h2><a href="/articles/article-1/">Article 1</a></h2>
Break
Use the break
statement to stop the innermost iteration and bypass all remaining iterations.
Template:
{{ $s := slice "foo" "bar" "baz" }}
{{ range $s }}
{{ if eq . "bar" }}
{{ break }}
{{ end }}
<p>{{ . }}</p>
{{ end }}
Result:
<p>foo</p>
Continue
Use the continue
statement to stop the innermost iteration and continue to the next iteration.
Template:
{{ $s := slice "foo" "bar" "baz" }}
{{ range $s }}
{{ if eq . "bar" }}
{{ continue }}
{{ end }}
<p>{{ . }}</p>
{{ end }}
Result:
<p>foo</p>
<p>baz</p>