URI: 
       Alias Page.Scratch to Page.Store (note) - hugo - [fork] hugo port for 9front
  HTML git clone git@git.drkhsh.at/hugo.git
   DIR Log
   DIR Files
   DIR Refs
   DIR Submodules
   DIR README
   DIR LICENSE
       ---
   DIR commit 2c3efc81064a6e0bdde3d02629f06ca87a7d2c08
   DIR parent df8bd4af4f49aec04d039d17ad970058f3b4e1bc
  HTML Author: Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
       Date:   Tue,  5 Nov 2024 16:32:57 +0100
       
       Alias Page.Scratch to Page.Store (note)
       
       Fixes #13016
       
       Diffstat:
         M common/maps/scratch.go              |      19 -------------------
         M hugolib/page.go                     |       3 +--
         M hugolib/page__common.go             |       6 +++++-
         M hugolib/page__new.go                |       1 -
         M hugolib/page_test.go                |      26 ++++++++++++++++++++++++++
         M resources/page/page.go              |       4 +++-
       
       6 files changed, 35 insertions(+), 24 deletions(-)
       ---
   DIR diff --git a/common/maps/scratch.go b/common/maps/scratch.go
       @@ -28,25 +28,6 @@ type Scratch struct {
                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.
        //
   DIR diff --git a/hugolib/page.go b/hugolib/page.go
       @@ -38,7 +38,6 @@ import (
                "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"
       @@ -149,7 +148,7 @@ func (p *pageState) Key() string {
        }
        
        func (p *pageState) resetBuildState() {
       -        p.Scratcher = maps.NewScratcher()
       +        // Nothing to do for now.
        }
        
        func (p *pageState) reusePageOutputContent() bool {
   DIR diff --git a/hugolib/page__common.go b/hugolib/page__common.go
       @@ -56,7 +56,6 @@ type pageCommon struct {
                store *maps.Scratch
        
                // All of these represents the common parts of a page.Page
       -        maps.Scratcher
                navigation.PageMenusProvider
                page.AuthorProvider
                page.AlternativeOutputFormatsProvider
       @@ -113,3 +112,8 @@ type pageCommon struct {
        func (p *pageCommon) Store() *maps.Scratch {
                return p.store
        }
       +
       +// See issue 13016.
       +func (p *pageCommon) Scratch() *maps.Scratch {
       +        return p.Store()
       +}
   DIR diff --git a/hugolib/page__new.go b/hugolib/page__new.go
       @@ -184,7 +184,6 @@ func (h *HugoSites) doNewPage(m *pageMeta) (*pageState, *paths.Path, error) {
                                pageCommon: &pageCommon{
                                        FileProvider:              m,
                                        AuthorProvider:            m,
       -                                Scratcher:                 maps.NewScratcher(),
                                        store:                     maps.NewScratch(),
                                        Positioner:                page.NopPage,
                                        InSectionPositioner:       page.NopPage,
   DIR diff --git a/hugolib/page_test.go b/hugolib/page_test.go
       @@ -1688,6 +1688,32 @@ title: Scratch Me!
                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()
        
   DIR diff --git a/resources/page/page.go b/resources/page/page.go
       @@ -327,7 +327,9 @@ type PageWithoutContent interface {
        
                // 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.