hugo

Unnamed repository; edit this file 'description' to name the repository.

git clone git://git.shimmy1996.com/hugo.git
commit 91ef9655aaf2adea3a044bf9a464908084917a98
parent b5f39d23b86f9cb83c51da9fe4abb4c19c01c3b7
Author: Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Date:   Mon, 25 Mar 2019 07:54:10 +0100

resources/page: Re-introduce .Page.Page

It was removed in 597e418cb02883418f2cebb41400e8e61413f651 -- it's not documented, but it's used in too many real sites on the web.

See #5784

Diffstat:
Mhugolib/page__tree.go | 4++++
Mresources/page/page.go | 4++++
Mresources/page/page_generate/generate_page_wrappers.go | 7++++++-
Mresources/page/page_nop.go | 4++++
Mresources/page/testhelpers_test.go | 4++++
5 files changed, 22 insertions(+), 1 deletion(-)
diff --git a/hugolib/page__tree.go b/hugolib/page__tree.go
@@ -104,6 +104,10 @@ func (pt pageTree) InSection(other interface{}) (bool, error) {
 
 }
 
+func (pt pageTree) Page() page.Page {
+	return pt.p
+}
+
 func (pt pageTree) Parent() page.Page {
 	return pt.p.parent
 }
diff --git a/resources/page/page.go b/resources/page/page.go
@@ -340,6 +340,10 @@ type TreeProvider interface {
 	// Sections returns this section's subsections, if any.
 	// Note that for non-sections, this method will always return an empty list.
 	Sections() Pages
+
+	// Page returns a reference to the Page itself, kept here mostly
+	// for legacy reasons.
+	Page() Page
 }
 
 // DeprecatedWarningPageMethods lists deprecated Page methods that will trigger
diff --git a/resources/page/page_generate/generate_page_wrappers.go b/resources/page/page_generate/generate_page_wrappers.go
@@ -107,7 +107,12 @@ func generateMarshalJSON(c *codegen.Inspector) error {
 		return errors.New("no methods found")
 	}
 
-	marshalJSON, pkgImports := methods.ToMarshalJSON("Page", "github.com/gohugoio/hugo/resources/page")
+	marshalJSON, pkgImports := methods.ToMarshalJSON(
+		"Page",
+		"github.com/gohugoio/hugo/resources/page",
+		// Exclusion regexps. Matches method names.
+		`\bPage\b`,
+	)
 
 	fmt.Fprintf(f, `%s
 
diff --git a/resources/page/page_nop.go b/resources/page/page_nop.go
@@ -299,6 +299,10 @@ func (p *nopPage) Params() map[string]interface{} {
 	return nil
 }
 
+func (p *nopPage) Page() Page {
+	return p
+}
+
 func (p *nopPage) Parent() Page {
 	return nil
 }
diff --git a/resources/page/testhelpers_test.go b/resources/page/testhelpers_test.go
@@ -360,6 +360,10 @@ func (p *testPage) Params() map[string]interface{} {
 	return p.params
 }
 
+func (p *testPage) Page() Page {
+	return p
+}
+
 func (p *testPage) Parent() Page {
 	panic("not implemented")
 }