mirror of
https://github.com/gohugoio/hugo.git
synced 2025-08-21 21:35:28 +02:00
Merge commit '9b0050e9aabe4be65c78ccf292a348f309d50ccd' as 'docs'
``` git subtree add --prefix=docs/ https://github.com/gohugoio/hugoDocs.git master --squash ``` Closes #11925
This commit is contained in:
62
docs/content/en/functions/resources/ExecuteAsTemplate.md
Normal file
62
docs/content/en/functions/resources/ExecuteAsTemplate.md
Normal file
@@ -0,0 +1,62 @@
|
||||
---
|
||||
title: resources.ExecuteAsTemplate
|
||||
description: Returns a resource created from a Go template, parsed and executed with the given context.
|
||||
categories: []
|
||||
keywords: []
|
||||
action:
|
||||
aliases: []
|
||||
related:
|
||||
- functions/resources/FromString
|
||||
returnType: resource.Resource
|
||||
signatures: [resources.ExecuteAsTemplate TARGETPATH CONTEXT RESOURCE]
|
||||
---
|
||||
|
||||
The `resources.ExecuteAsTemplate` function returns a resource created from a Go template, parsed and executed with the given context, caching the result using the target path as its cache key.
|
||||
|
||||
Hugo publishes the resource to the target path when you call its [`Publish`], [`Permalink`], or [`RelPermalink`] methods.
|
||||
|
||||
[`publish`]: /methods/resource/publish
|
||||
[`permalink`]: /methods/resource/permalink
|
||||
[`relpermalink`]: /methods/resource/relpermalink
|
||||
|
||||
Let's say you have a CSS file that you wish to populate with values from your site configuration:
|
||||
|
||||
{{< code file=assets/css/template.css lang=go-html-template >}}
|
||||
body {
|
||||
background-color: {{ site.Params.style.bg_color }};
|
||||
color: {{ site.Params.style.text_color }};
|
||||
}
|
||||
{{< /code >}}
|
||||
|
||||
And your site configuration contains:
|
||||
|
||||
{{< code-toggle file=hugo >}}
|
||||
[params.style]
|
||||
bg_color = '#fefefe'
|
||||
text_color = '#222'
|
||||
{{< /code-toggle >}}
|
||||
|
||||
Place this in your baseof.html template:
|
||||
|
||||
```go-html-template
|
||||
{{ with resources.Get "css/template.css" }}
|
||||
{{ with resources.ExecuteAsTemplate "css/main.css" $ . }}
|
||||
<link rel="stylesheet" href="{{ .RelPermalink }}">
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
```
|
||||
|
||||
The example above:
|
||||
|
||||
1. Captures the template as a resource
|
||||
2. Executes the resource as a template, passing the current page in context
|
||||
3. Publishes the resource to css/main.css
|
||||
|
||||
The result is:
|
||||
|
||||
{{< code file=public/css/main.css >}}
|
||||
body {
|
||||
background-color: #fefefe;
|
||||
color: #222;
|
||||
}
|
||||
{{< /code >}}
|
Reference in New Issue
Block a user