with
Syntax
with PIPELINE ⟼ any
See Go’s text/template documentation for more details.
An alternative way of writing an if
statement and then referencing the same value is to use with
instead. with
rebinds the context (.
) within its scope and skips the block if the variable is absent, unset or empty.
The set of empty values is defined by the Go templates package. Empty values include false
, the number zero, and the empty string.
If you want to render a block if an index or key is present in a slice, array, channel or map, regardless of whether the value is empty, you should use isset
instead.
The following example checks for a user-defined site variable called twitteruser
. If the key-value is not set, the following will render nothing:
layouts/partials/twitter.html
{{ with .Site.Params.twitteruser }}<span class="twitter">
<a href="https://twitter.com/{{ . }}" rel="author">
<img src="/images/twitter.png" width="48" height="48" title="Twitter: {{ . }}"
alt="Twitter"></a>
</span>{{ end }}