Skip to content

Commit

Permalink
Remove some old and unused deprecation code
Browse files Browse the repository at this point in the history
  • Loading branch information
bep committed Nov 1, 2023
1 parent 4d38f47 commit 5fa97ee
Show file tree
Hide file tree
Showing 3 changed files with 2 additions and 99 deletions.
13 changes: 0 additions & 13 deletions resources/page/page.go
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down Expand Up @@ -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
Expand All @@ -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)
Expand Down Expand Up @@ -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
Expand Down
79 changes: 2 additions & 77 deletions resources/page/page_generate/generate_page_wrappers.go
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand All @@ -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")
)
Expand All @@ -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)
}
Expand All @@ -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(),

Expand Down Expand Up @@ -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)
Expand Down
9 changes: 0 additions & 9 deletions resources/page/page_wrappers.autogen.go
Original file line number Diff line number Diff line change
Expand Up @@ -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
}

0 comments on commit 5fa97ee

Please sign in to comment.