diff --git a/resources/page/page_generate/generate_page_wrappers.go b/resources/page/page_generate/generate_page_wrappers.go index 17346ec12c4..ae05ad5c2ee 100644 --- a/resources/page/page_generate/generate_page_wrappers.go +++ b/resources/page/page_generate/generate_page_wrappers.go @@ -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 diff --git a/resources/page/page_wrappers.autogen.go b/resources/page/page_wrappers.autogen.go index 53f0c09d298..2bdd5112180 100644 --- a/resources/page/page_wrappers.autogen.go +++ b/resources/page/page_wrappers.autogen.go @@ -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() } diff --git a/resources/page/zero_file.autogen.go b/resources/page/zero_file.autogen.go index e4718a70051..72d98998ec2 100644 --- a/resources/page/zero_file.autogen.go +++ b/resources/page/zero_file.autogen.go @@ -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 } diff --git a/resources/resource/resourcetypes.go b/resources/resource/resourcetypes.go index 788cdb86abb..c96f3d49523 100644 --- a/resources/resource/resourcetypes.go +++ b/resources/resource/resourcetypes.go @@ -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.