summaryrefslogtreecommitdiffstats
path: root/docs/content/en/functions/go-template/template.md
blob: 053cfcc226a8ed0ad985c4b71e117915ffec9beb (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
---
title: template
description: Executes the given template, optionally passing context.
categories: []
keywords: []
params:
  functions_and_methods:
    aliases: []
    returnType: 
    signatures: ['template NAME [CONTEXT]']
---

Use the `template` function to execute any of these [embedded templates](g):

- [`disqus.html`]
- [`google_analytics.html`]
- [`opengraph.html`]
- [`pagination.html`]
- [`schema.html`]
- [`twitter_cards.html`]



For example:

```go-html-template
{{ range (.Paginate .Pages).Pages }}
  <h2><a href="{{ .RelPermalink }}">{{ .LinkTitle }}</a></h2>
{{ end }}
{{ template "_internal/pagination.html" . }}
```

You can also use the `template` function to execute a defined template:

```go-html-template
{{ template "foo" (dict "answer" 42) }}

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

The example above can be rewritten using an [inline partial] template:

```go-html-template
{{ partial "inline/foo.html" (dict "answer" 42) }}

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

The key distinctions between the preceding two examples are:

1. Inline partials are globally scoped. That means that an inline partial defined in _one_ template may be called from _any_ template.
2. Leveraging the [`partialCached`] function when calling an inline partial allows for performance optimization through result caching.
3. An inline partial can [`return`] a value of any data type instead of rendering a string.

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

[`disqus.html`]: /templates/embedded/#disqus
[`google_analytics.html`]: /templates/embedded/#google-analytics
[`opengraph.html`]: /templates/embedded/#open-graph
[`pagination.html`]: /templates/embedded/#pagination
[`partialCached`]: /functions/partials/includecached/
[`partial`]: /functions/partials/include/
[`return`]: /functions/go-template/return/
[`schema.html`]: /templates/embedded/#schema
[`twitter_cards.html`]: /templates/embedded/#x-twitter-cards
[inline partial]: /templates/partial/#inline-partials