mu sync.RWMutex
}
-// Scratcher provides a scratching service.
-type Scratcher interface {
- // Scratch returns a "scratch pad" that can be used to store state.
- Scratch() *Scratch
-}
-
-type scratcher struct {
- s *Scratch
-}
-
-func (s scratcher) Scratch() *Scratch {
- return s.s
-}
-
-// NewScratcher creates a new Scratcher.
-func NewScratcher() Scratcher {
- return scratcher{s: NewScratch()}
-}
-
// Add will, for single values, add (using the + operator) the addend to the existing addend (if found).
// Supports numeric values and strings.
//
"github.com/gohugoio/hugo/tpl"
"github.com/gohugoio/hugo/common/herrors"
- "github.com/gohugoio/hugo/common/maps"
"github.com/gohugoio/hugo/common/types"
"github.com/gohugoio/hugo/source"
}
func (p *pageState) resetBuildState() {
- p.Scratcher = maps.NewScratcher()
+ // Nothing to do for now.
}
func (p *pageState) reusePageOutputContent() bool {
store *maps.Scratch
// All of these represents the common parts of a page.Page
- maps.Scratcher
navigation.PageMenusProvider
page.AuthorProvider
page.AlternativeOutputFormatsProvider
func (p *pageCommon) Store() *maps.Scratch {
return p.store
}
+
+// See issue 13016.
+func (p *pageCommon) Scratch() *maps.Scratch {
+ return p.Store()
+}
pageCommon: &pageCommon{
FileProvider: m,
AuthorProvider: m,
- Scratcher: maps.NewScratcher(),
store: maps.NewScratch(),
Positioner: page.NopPage,
InSectionPositioner: page.NopPage,
b.AssertFileContent("public/scratchme/index.html", "C: cv")
}
+// Issue 13016.
+func TestScratchAliasToStore(t *testing.T) {
+ t.Parallel()
+
+ files := `
+-- hugo.toml --
+disableKinds = ["taxonomy", "term", "page", "section"]
+disableLiveReload = true
+-- layouts/index.html --
+{{ .Scratch.Set "a" "b" }}
+{{ .Store.Set "c" "d" }}
+.Scratch eq .Store: {{ eq .Scratch .Store }}
+a: {{ .Store.Get "a" }}
+c: {{ .Scratch.Get "c" }}
+
+`
+
+ b := Test(t, files)
+
+ b.AssertFileContent("public/index.html",
+ ".Scratch eq .Store: true",
+ "a: b",
+ "c: d",
+ )
+}
+
func TestPageParam(t *testing.T) {
t.Parallel()
// Scratch returns a Scratch that can be used to store temporary state.
// Note that this Scratch gets reset on server rebuilds. See Store() for a variant that survives.
- maps.Scratcher
+ // Scratch returns a "scratch pad" that can be used to store state.
+ // Deprecated: From Hugo v0.138.0 this is just an alias for Store.
+ Scratch() *maps.Scratch
// Store returns a Scratch that can be used to store temporary state.
// In contrast to Scratch(), this Scratch is not reset on server rebuilds.