mirror of
https://github.com/gohugoio/hugo.git
synced 2024-05-11 05:54:58 +00:00
Add doc for Scratch
This commit is contained in:
@@ -5,7 +5,7 @@ date: 2014-01-01
|
||||
menu:
|
||||
main:
|
||||
parent: extras
|
||||
next: /extras/highlighting
|
||||
next: /extras/scratch
|
||||
prev: /extras/shortcodes
|
||||
title: Pagination
|
||||
weight: 80
|
||||
|
||||
42
docs/content/extras/scratch.md
Normal file
42
docs/content/extras/scratch.md
Normal file
@@ -0,0 +1,42 @@
|
||||
---
|
||||
aliases:
|
||||
- /doc/scratch/
|
||||
date: 2015-01-22
|
||||
menu:
|
||||
main:
|
||||
parent: extras
|
||||
next: /extras/highlighting
|
||||
prev: /extras/pagination
|
||||
title: Scratch
|
||||
weight: 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 */}}
|
||||
```
|
||||
|
||||
|
||||
Reference in New Issue
Block a user