mirror of
https://github.com/gohugoio/hugo.git
synced 2024-05-11 05:54:58 +00:00
1.2 KiB
1.2 KiB
aliases | date | menu | next | prev | title | weight | |||||
---|---|---|---|---|---|---|---|---|---|---|---|
|
2015-01-22 |
|
/extras/highlighting | /extras/pagination | Scratch | 80 |
Scratch
-- a "scratchpad" for your node- or page-scoped variables. In most cases you can do well without Scratch
, but there are some use cases that aren't solvable with Go's templates without Scratch
's help, due to scoping issues.
Scratch
is added to both Node
and Page
-- with the three methods Set
, Get
and Add
. Set
and Add
takes a key
and the value
to add. Get returns the value
for the key
given.
Set
can store values of any type. Add
accepts values that support Go's +
operator.
The scope of the backing data is global for the given Node
or Page
, and spans partial and shortcode includes.
Sample usage
The usage is best illustrated with some samples:
{{ .Scratch.Add "a1" 12 }}
{{ .Scratch.Get "a1" }} {{/* => 12 */}}
{{ .Scratch.Add "a1" 1 }}
{{ .Scratch.Get "a1" }} // {{/* => 13 */}}
{{ .Scratch.Add "a2" "AB" }}
{{ .Scratch.Get "a2" }} {{/* => AB */}}
{{ .Scratch.Add "a2" "CD" }}
{{ .Scratch.Get "a2" }} {{/* => ABCD */}}
{{ .Scratch.Set "v1" 123 }}
{{ .Scratch.Get "v1" }} {{/* => 123 */}}