Make the deprecated Page/File methods (from Hugo 0.55) ERROR

Closes #9346
This commit is contained in:
Bjørn Erik Pedersen 2022-01-04 11:22:57 +01:00
parent dad0dc8d86
commit 56ab83a597
4 changed files with 42 additions and 32 deletions

View file

@ -26,6 +26,7 @@ import (
"github.com/gohugoio/hugo/codegen"
"github.com/gohugoio/hugo/resources/page"
"github.com/gohugoio/hugo/resources/resource"
"github.com/gohugoio/hugo/source"
)
@ -88,6 +89,8 @@ func generateMarshalJSON(c *codegen.Inspector) error {
// Leave this out for now. We need to revisit the author issue.
reflect.TypeOf((*page.AuthorProvider)(nil)).Elem(),
reflect.TypeOf((*resource.ErrProvider)(nil)).Elem(),
// navigation.PageMenus
// Prevent loops.
@ -163,7 +166,7 @@ func generateDeprecatedWrappers(c *codegen.Inspector) error {
}
}
return fmt.Sprintf("helpers.Deprecated(%q, %q, false)", "Page."+name, alternative)
return fmt.Sprintf("helpers.Deprecated(%q, %q, true)", "Page."+name, alternative)
}
var buff bytes.Buffer
@ -214,7 +217,9 @@ func generateFileIsZeroWrappers(c *codegen.Inspector) error {
warning := func(name string, tp reflect.Type) string {
msg := fmt.Sprintf(".File.%s on zero object. Wrap it in if or with: {{ with .File }}{{ .%s }}{{ end }}", name, name)
return fmt.Sprintf("z.log.Println(%q)", msg)
// We made this a Warning in 0.92.0.
// When we remove this construct in 0.93.0, people will get a nil pointer.
return fmt.Sprintf("z.log.Warnln(%q)", msg)
}
var buff bytes.Buffer

View file

@ -32,66 +32,66 @@ type pageDeprecated struct {
}
func (p *pageDeprecated) Filename() string {
helpers.Deprecated("Page.Filename", "Use .File.Filename", false)
helpers.Deprecated("Page.Filename", "Use .File.Filename", true)
return p.p.Filename()
}
func (p *pageDeprecated) Dir() string {
helpers.Deprecated("Page.Dir", "Use .File.Dir", false)
helpers.Deprecated("Page.Dir", "Use .File.Dir", true)
return p.p.Dir()
}
func (p *pageDeprecated) IsDraft() bool {
helpers.Deprecated("Page.IsDraft", "Use .Draft.", false)
helpers.Deprecated("Page.IsDraft", "Use .Draft.", true)
return p.p.IsDraft()
}
func (p *pageDeprecated) Extension() string {
helpers.Deprecated("Page.Extension", "Use .File.Extension", false)
helpers.Deprecated("Page.Extension", "Use .File.Extension", true)
return p.p.Extension()
}
func (p *pageDeprecated) Hugo() hugo.Info {
helpers.Deprecated("Page.Hugo", "Use the global hugo function.", false)
helpers.Deprecated("Page.Hugo", "Use the global hugo function.", true)
return p.p.Hugo()
}
func (p *pageDeprecated) Ext() string {
helpers.Deprecated("Page.Ext", "Use .File.Ext", false)
helpers.Deprecated("Page.Ext", "Use .File.Ext", true)
return p.p.Ext()
}
func (p *pageDeprecated) LanguagePrefix() string {
helpers.Deprecated("Page.LanguagePrefix", "Use .Site.LanguagePrefix.", false)
helpers.Deprecated("Page.LanguagePrefix", "Use .Site.LanguagePrefix.", true)
return p.p.LanguagePrefix()
}
func (p *pageDeprecated) GetParam(arg0 string) interface{} {
helpers.Deprecated("Page.GetParam", "Use .Param or .Params.myParam.", false)
helpers.Deprecated("Page.GetParam", "Use .Param or .Params.myParam.", true)
return p.p.GetParam(arg0)
}
func (p *pageDeprecated) LogicalName() string {
helpers.Deprecated("Page.LogicalName", "Use .File.LogicalName", false)
helpers.Deprecated("Page.LogicalName", "Use .File.LogicalName", true)
return p.p.LogicalName()
}
func (p *pageDeprecated) BaseFileName() string {
helpers.Deprecated("Page.BaseFileName", "Use .File.BaseFileName", false)
helpers.Deprecated("Page.BaseFileName", "Use .File.BaseFileName", true)
return p.p.BaseFileName()
}
func (p *pageDeprecated) RSSLink() template.URL {
helpers.Deprecated("Page.RSSLink", "Use the Output Format's link, e.g. something like:\n {{ with .OutputFormats.Get \"RSS\" }}{{ .RelPermalink }}{{ end }}", false)
helpers.Deprecated("Page.RSSLink", "Use the Output Format's link, e.g. something like:\n {{ with .OutputFormats.Get \"RSS\" }}{{ .RelPermalink }}{{ end }}", true)
return p.p.RSSLink()
}
func (p *pageDeprecated) TranslationBaseName() string {
helpers.Deprecated("Page.TranslationBaseName", "Use .File.TranslationBaseName", false)
helpers.Deprecated("Page.TranslationBaseName", "Use .File.TranslationBaseName", true)
return p.p.TranslationBaseName()
}
func (p *pageDeprecated) URL() string {
helpers.Deprecated("Page.URL", "Use .Permalink or .RelPermalink. If what you want is the front matter URL value, use .Params.url", false)
helpers.Deprecated("Page.URL", "Use .Permalink or .RelPermalink. If what you want is the front matter URL value, use .Params.url", true)
return p.p.URL()
}
func (p *pageDeprecated) ContentBaseName() string {
helpers.Deprecated("Page.ContentBaseName", "Use .File.ContentBaseName", false)
helpers.Deprecated("Page.ContentBaseName", "Use .File.ContentBaseName", true)
return p.p.ContentBaseName()
}
func (p *pageDeprecated) UniqueID() string {
helpers.Deprecated("Page.UniqueID", "Use .File.UniqueID", false)
helpers.Deprecated("Page.UniqueID", "Use .File.UniqueID", true)
return p.p.UniqueID()
}
func (p *pageDeprecated) FileInfo() hugofs.FileMetaInfo {
helpers.Deprecated("Page.FileInfo", "Use .File.FileInfo", false)
helpers.Deprecated("Page.FileInfo", "Use .File.FileInfo", true)
return p.p.FileInfo()
}

View file

@ -35,54 +35,54 @@ func (zeroFile) IsZero() bool {
}
func (z zeroFile) Path() (o0 string) {
z.log.Println(".File.Path on zero object. Wrap it in if or with: {{ with .File }}{{ .Path }}{{ end }}")
z.log.Warnln(".File.Path on zero object. Wrap it in if or with: {{ with .File }}{{ .Path }}{{ end }}")
return
}
func (z zeroFile) Section() (o0 string) {
z.log.Println(".File.Section on zero object. Wrap it in if or with: {{ with .File }}{{ .Section }}{{ end }}")
z.log.Warnln(".File.Section on zero object. Wrap it in if or with: {{ with .File }}{{ .Section }}{{ end }}")
return
}
func (z zeroFile) Lang() (o0 string) {
z.log.Println(".File.Lang on zero object. Wrap it in if or with: {{ with .File }}{{ .Lang }}{{ end }}")
z.log.Warnln(".File.Lang on zero object. Wrap it in if or with: {{ with .File }}{{ .Lang }}{{ end }}")
return
}
func (z zeroFile) Filename() (o0 string) {
z.log.Println(".File.Filename on zero object. Wrap it in if or with: {{ with .File }}{{ .Filename }}{{ end }}")
z.log.Warnln(".File.Filename on zero object. Wrap it in if or with: {{ with .File }}{{ .Filename }}{{ end }}")
return
}
func (z zeroFile) Dir() (o0 string) {
z.log.Println(".File.Dir on zero object. Wrap it in if or with: {{ with .File }}{{ .Dir }}{{ end }}")
z.log.Warnln(".File.Dir on zero object. Wrap it in if or with: {{ with .File }}{{ .Dir }}{{ end }}")
return
}
func (z zeroFile) Extension() (o0 string) {
z.log.Println(".File.Extension on zero object. Wrap it in if or with: {{ with .File }}{{ .Extension }}{{ end }}")
z.log.Warnln(".File.Extension on zero object. Wrap it in if or with: {{ with .File }}{{ .Extension }}{{ end }}")
return
}
func (z zeroFile) Ext() (o0 string) {
z.log.Println(".File.Ext on zero object. Wrap it in if or with: {{ with .File }}{{ .Ext }}{{ end }}")
z.log.Warnln(".File.Ext on zero object. Wrap it in if or with: {{ with .File }}{{ .Ext }}{{ end }}")
return
}
func (z zeroFile) LogicalName() (o0 string) {
z.log.Println(".File.LogicalName on zero object. Wrap it in if or with: {{ with .File }}{{ .LogicalName }}{{ end }}")
z.log.Warnln(".File.LogicalName on zero object. Wrap it in if or with: {{ with .File }}{{ .LogicalName }}{{ end }}")
return
}
func (z zeroFile) BaseFileName() (o0 string) {
z.log.Println(".File.BaseFileName on zero object. Wrap it in if or with: {{ with .File }}{{ .BaseFileName }}{{ end }}")
z.log.Warnln(".File.BaseFileName on zero object. Wrap it in if or with: {{ with .File }}{{ .BaseFileName }}{{ end }}")
return
}
func (z zeroFile) TranslationBaseName() (o0 string) {
z.log.Println(".File.TranslationBaseName on zero object. Wrap it in if or with: {{ with .File }}{{ .TranslationBaseName }}{{ end }}")
z.log.Warnln(".File.TranslationBaseName on zero object. Wrap it in if or with: {{ with .File }}{{ .TranslationBaseName }}{{ end }}")
return
}
func (z zeroFile) ContentBaseName() (o0 string) {
z.log.Println(".File.ContentBaseName on zero object. Wrap it in if or with: {{ with .File }}{{ .ContentBaseName }}{{ end }}")
z.log.Warnln(".File.ContentBaseName on zero object. Wrap it in if or with: {{ with .File }}{{ .ContentBaseName }}{{ end }}")
return
}
func (z zeroFile) UniqueID() (o0 string) {
z.log.Println(".File.UniqueID on zero object. Wrap it in if or with: {{ with .File }}{{ .UniqueID }}{{ end }}")
z.log.Warnln(".File.UniqueID on zero object. Wrap it in if or with: {{ with .File }}{{ .UniqueID }}{{ end }}")
return
}
func (z zeroFile) FileInfo() (o0 hugofs.FileMetaInfo) {
z.log.Println(".File.FileInfo on zero object. Wrap it in if or with: {{ with .File }}{{ .FileInfo }}{{ end }}")
z.log.Warnln(".File.FileInfo on zero object. Wrap it in if or with: {{ with .File }}{{ .FileInfo }}{{ end }}")
return
}

View file

@ -37,6 +37,11 @@ type OriginProvider interface {
GetFieldString(pattern string) (string, bool)
}
// ErrProvider provides an Err.
type ErrProvider interface {
Err() error
}
// Resource represents a linkable resource, i.e. a content page, image etc.
type Resource interface {
ResourceTypeProvider
@ -45,7 +50,7 @@ type Resource interface {
ResourceMetaProvider
ResourceParamsProvider
ResourceDataProvider
Err() error
ErrProvider
}
// Image represents an image resource.