diff --git a/resources/page/page.go b/resources/page/page.go index 54fc71f33..b5af489f1 100644 --- a/resources/page/page.go +++ b/resources/page/page.go @@ -339,8 +339,6 @@ type PageWithoutContent interface { // This is currently only triggered with the Related content feature // and the "fragments" type of index. HeadingsFiltered(context.Context) tableofcontents.Headings - - DeprecatedWarningPageMethods } // Positioner provides next/prev navigation. @@ -417,7 +415,6 @@ type TableOfContentsProvider interface { // TranslationsProvider provides access to any translations. type TranslationsProvider interface { - // IsTranslated returns whether this content file is translated to // other language(s). IsTranslated() bool @@ -431,7 +428,6 @@ type TranslationsProvider interface { // TreeProvider provides section tree navigation. type TreeProvider interface { - // IsAncestor returns whether the current page is an ancestor of other. // Note that this method is not relevant for taxonomy lists and taxonomy terms pages. IsAncestor(other any) (bool, error) @@ -469,15 +465,6 @@ type TreeProvider interface { Page() Page } -// DeprecatedWarningPageMethods lists deprecated Page methods that will trigger -// a WARNING if invoked. -// This was added in Hugo 0.55. -type DeprecatedWarningPageMethods any // This was emptied in Hugo 0.93.0. - -// Move here to trigger ERROR instead of WARNING. -// TODO(bep) create wrappers and put into the Page once it has some methods. -type DeprecatedErrorPageMethods any - // PageWithContext is a Page with a context.Context. type PageWithContext struct { Page diff --git a/resources/page/page_generate/generate_page_wrappers.go b/resources/page/page_generate/generate_page_wrappers.go index abbf02bf1..2449cf28d 100644 --- a/resources/page/page_generate/generate_page_wrappers.go +++ b/resources/page/page_generate/generate_page_wrappers.go @@ -15,13 +15,12 @@ package page_generate import ( "bytes" + "errors" "fmt" "os" "path/filepath" "reflect" - "errors" - "github.com/gohugoio/hugo/common/maps" "github.com/gohugoio/hugo/codegen" @@ -47,8 +46,7 @@ const header = `// Copyright 2019 The Hugo Authors. All rights reserved. ` var ( - pageInterfaceDeprecated = reflect.TypeOf((*page.DeprecatedWarningPageMethods)(nil)).Elem() - pageInterface = reflect.TypeOf((*page.Page)(nil)).Elem() + pageInterface = reflect.TypeOf((*page.Page)(nil)).Elem() packageDir = filepath.FromSlash("resources/page") ) @@ -58,10 +56,6 @@ func Generate(c *codegen.Inspector) error { return fmt.Errorf("failed to generate JSON marshaler: %w", err) } - if err := generateDeprecatedWrappers(c); err != nil { - return fmt.Errorf("failed to generate deprecate wrappers: %w", err) - } - if err := generateFileIsZeroWrappers(c); err != nil { return fmt.Errorf("failed to generate file wrappers: %w", err) } @@ -81,10 +75,6 @@ func generateMarshalJSON(c *codegen.Inspector) error { // Exclude these methods excludes := []reflect.Type{ - // We need to evaluate the deprecated vs JSON in the future, - // but leave them out for now. - pageInterfaceDeprecated, - // Leave this out for now. We need to revisit the author issue. reflect.TypeOf((*page.AuthorProvider)(nil)).Elem(), @@ -133,71 +123,6 @@ package page return nil } -func generateDeprecatedWrappers(c *codegen.Inspector) error { - filename := filepath.Join(c.ProjectRootDir, packageDir, "page_wrappers.autogen.go") - f, err := os.Create(filename) - if err != nil { - return err - } - defer f.Close() - - // Generate a wrapper for deprecated page methods - - reasons := map[string]string{ - "IsDraft": "Use .Draft.", - "Hugo": "Use the global hugo function.", - "LanguagePrefix": "Use .Site.LanguagePrefix.", - "GetParam": "Use .Param or .Params.myParam.", - "RSSLink": `Use the Output Format's link, e.g. something like: - {{ with .OutputFormats.Get "RSS" }}{{ .RelPermalink }}{{ end }}`, - "URL": "Use .Permalink or .RelPermalink. If what you want is the front matter URL value, use .Params.url", - } - - deprecated := func(name string, tp reflect.Type) string { - alternative, found := reasons[name] - if !found { - panic(fmt.Sprintf("no deprecated reason found for %q", name)) - } - - return fmt.Sprintf("helpers.Deprecated(%q, %q, true)", "Page."+name, alternative) - } - - var buff bytes.Buffer - - methods := c.MethodsFromTypes([]reflect.Type{pageInterfaceDeprecated}, nil) - - for _, m := range methods { - fmt.Fprint(&buff, m.Declaration("*pageDeprecated")) - fmt.Fprintln(&buff, " {") - fmt.Fprintf(&buff, "\t%s\n", deprecated(m.Name, m.Owner)) - fmt.Fprintf(&buff, "\t%s\n}\n", m.Delegate("p", "p")) - - } - - pkgImports := methods.Imports() - // pkgImports := append(methods.Imports(), "github.com/gohugoio/hugo/helpers") - - fmt.Fprintf(f, `%s - -package page - -%s -// NewDeprecatedWarningPage adds deprecation warnings to the given implementation. -func NewDeprecatedWarningPage(p DeprecatedWarningPageMethods) DeprecatedWarningPageMethods { - return &pageDeprecated{p: p} -} - -type pageDeprecated struct { - p DeprecatedWarningPageMethods -} - -%s - -`, header, importsString(pkgImports), buff.String()) - - return nil -} - func generateFileIsZeroWrappers(c *codegen.Inspector) error { filename := filepath.Join(c.ProjectRootDir, packageDir, "zero_file.autogen.go") f, err := os.Create(filename) diff --git a/resources/page/page_wrappers.autogen.go b/resources/page/page_wrappers.autogen.go index 55dff47d5..4b7c034a1 100644 --- a/resources/page/page_wrappers.autogen.go +++ b/resources/page/page_wrappers.autogen.go @@ -14,12 +14,3 @@ // This file is autogenerated. package page - -// NewDeprecatedWarningPage adds deprecation warnings to the given implementation. -func NewDeprecatedWarningPage(p DeprecatedWarningPageMethods) DeprecatedWarningPageMethods { - return &pageDeprecated{p: p} -} - -type pageDeprecated struct { - p DeprecatedWarningPageMethods -}