1.7 KiB
title | description | categories | keywords | action | toc | aliases | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Scratch | Returns a "scratch pad" on the given page to store and manipulate data. |
|
true |
|
The Scratch
method on a Page
object creates a scratch pad to store and manipulate data. To create a scratch pad that is not reset on server rebuilds, use the Store
method instead.
To create a locally scoped scratch pad that is not attached to a Page
object, use the newScratch
function.
{{% include "methods/page/_common/scratch-methods.md" %}}
Determinate values
The Scratch
method is often used to set scratch pad values within a shortcode, a partial template called by a shortcode, or by a Markdown render hook. In all three cases, the scratch pad values are not determinate until Hugo renders the page content.
If you need to access a scratch pad value from a parent template, and the parent template has not yet rendered the page content, you can trigger content rendering by assigning the returned value to a noop variable:
{{ $noop := .Content }}
{{ .Store.Get "mykey" }}
You can also trigger content rendering with the FuzzyWordCount
, Len
, Plain
, PlainWords
, ReadingTime
, Summary
, Truncated
, and WordCount
methods. For example:
{{ $noop := .WordCount }}
{{ .Store.Get "mykey" }}