Skip to content

Commit

Permalink
hugolib: Deprecate site methods Author, Authors, and Social
Browse files Browse the repository at this point in the history
Closes #12228
  • Loading branch information
jmooring authored and bep committed Mar 15, 2024
1 parent 78178d0 commit d4d49e0
Show file tree
Hide file tree
Showing 10 changed files with 42 additions and 36 deletions.
2 changes: 2 additions & 0 deletions config/allconfig/allconfig.go
Expand Up @@ -103,9 +103,11 @@ type Config struct {
RootConfig

// Author information.
// Deprecated: Use taxonomies instead.
Author map[string]any

// Social links.
// Deprecated: Use .Site.Params instead.
Social map[string]string

// The build configuration section contains build-related configuration options.
Expand Down
8 changes: 4 additions & 4 deletions hugolib/page__meta.go
Expand Up @@ -106,9 +106,9 @@ func (p *pageMeta) Aliases() []string {
return p.pageConfig.Aliases
}

// Deprecated: use taxonomies.
// Deprecated: Use taxonomies instead.
func (p *pageMeta) Author() page.Author {
hugo.Deprecate(".Author", "Use taxonomies.", "v0.98.0")
hugo.Deprecate(".Page.Author", "Use taxonomies instead.", "v0.98.0")
authors := p.Authors()

for _, author := range authors {
Expand All @@ -117,9 +117,9 @@ func (p *pageMeta) Author() page.Author {
return page.Author{}
}

// Deprecated: use taxonomies.
// Deprecated: Use taxonomies instead.
func (p *pageMeta) Authors() page.AuthorList {
hugo.Deprecate(".Author", "Use taxonomies.", "v0.112.0")
hugo.Deprecate(".Page.Authors", "Use taxonomies instead.", "v0.112.0")
return nil
}

Expand Down
6 changes: 6 additions & 0 deletions hugolib/site_new.go
Expand Up @@ -447,15 +447,21 @@ func (s *Site) Params() maps.Params {
return s.conf.Params
}

// Deprecated: Use taxonomies instead.
func (s *Site) Author() map[string]any {
hugo.Deprecate(".Site.Author", "Use taxonomies instead.", "v0.124.0")
return s.conf.Author
}

// Deprecated: Use taxonomies instead.
func (s *Site) Authors() page.AuthorList {
hugo.Deprecate(".Site.Authors", "Use taxonomies instead.", "v0.124.0")
return page.AuthorList{}
}

// Deprecated: Use .Site.Params instead.
func (s *Site) Social() map[string]string {
hugo.Deprecate(".Site.Social", "Use .Site.Params instead.", "v0.124.0")
return s.conf.Social
}

Expand Down
4 changes: 2 additions & 2 deletions resources/page/page.go
Expand Up @@ -52,9 +52,9 @@ type AlternativeOutputFormatsProvider interface {

// AuthorProvider provides author information.
type AuthorProvider interface {
// Deprecated.
// Deprecated: Use taxonomies instead.
Author() Author
// Deprecated.
// Deprecated: Use taxonomies instead.
Authors() AuthorList
}

Expand Down
3 changes: 3 additions & 0 deletions resources/page/page_author.go
Expand Up @@ -14,9 +14,11 @@
package page

// AuthorList is a list of all authors and their metadata.
// Deprecated: Use taxonomies instead.
type AuthorList map[string]Author

// Author contains details about the author of a page.
// Deprecated: Use taxonomies instead.
type Author struct {
GivenName string
FamilyName string
Expand All @@ -41,4 +43,5 @@ type Author struct {
// - youtube
// - linkedin
// - skype
// Deprecated: Use taxonomies instead.
type AuthorSocial map[string]string
2 changes: 2 additions & 0 deletions resources/page/page_nop.go
Expand Up @@ -79,10 +79,12 @@ func (p *nopPage) RSSLink() template.URL {
return ""
}

// Deprecated: Use taxonomies instead.
func (p *nopPage) Author() Author {
return Author{}
}

// Deprecated: Use taxonomies instead.
func (p *nopPage) Authors() AuthorList {
return nil
}
Expand Down
14 changes: 10 additions & 4 deletions resources/page/site.go
Expand Up @@ -108,13 +108,13 @@ type Site interface {
// Returns the site config.
Config() SiteConfig

// Author is deprecated and will be removed in a future release.
// Deprecated: Use taxonomies instead.
Author() map[string]interface{}

// Authors is deprecated and will be removed in a future release.
// Deprecated: Use taxonomies instead.
Authors() AuthorList

// Returns the social links for this site.
// Deprecated: Use .Site.Params instead.
Social() map[string]string

// Deprecated: Use Config().Services.GoogleAnalytics instead.
Expand Down Expand Up @@ -165,16 +165,19 @@ func (s *siteWrapper) Key() string {
return s.s.Language().Lang
}

// // Deprecated: Use .Site.Params instead.
func (s *siteWrapper) Social() map[string]string {
return s.s.Social()
}

// Deprecated: Use taxonomies instead.
func (s *siteWrapper) Author() map[string]interface{} {
return s.s.Author()
}

// Deprecated: Use taxonomies instead.
func (s *siteWrapper) Authors() AuthorList {
return AuthorList{}
return s.s.Authors()
}

// Deprecated: Use .Site.Config.Services.GoogleAnalytics.ID instead.
Expand Down Expand Up @@ -321,14 +324,17 @@ type testSite struct {
l *langs.Language
}

// Deprecated: Use taxonomies instead.
func (s testSite) Author() map[string]interface{} {
return nil
}

// Deprecated: Use taxonomies instead.
func (s testSite) Authors() AuthorList {
return AuthorList{}
}

// Deprecated: Use .Site.Params instead.
func (s testSite) Social() map[string]string {
return make(map[string]string)
}
Expand Down
2 changes: 2 additions & 0 deletions resources/page/testhelpers_test.go
Expand Up @@ -127,10 +127,12 @@ func (p *testPage) AlternativeOutputFormats() OutputFormats {
panic("testpage: not implemented")
}

// Deprecated: Use taxonomies instead.
func (p *testPage) Author() Author {
return Author{}
}

// Deprecated: Use taxonomies instead.
func (p *testPage) Authors() AuthorList {
return nil
}
Expand Down
15 changes: 4 additions & 11 deletions tpl/tplimpl/embedded/templates/opengraph.html
Expand Up @@ -34,18 +34,11 @@
{{ end }}{{ end }}
{{- end }}

{{- /* Deprecate site.Social.facebook_admin in favor of site.Params.social.facebook_admin */}}
{{- $facebookAdmin := "" }}
{{- /* Facebook Page Admin ID for Domain Insights */}}
{{- with site.Params.social }}
{{- if reflect.IsMap . }}
{{- $facebookAdmin = .facebook_admin }}
{{- end }}
{{- else }}
{{- with site.Social.facebook_admin }}
{{- $facebookAdmin = . }}
{{- warnf "The social key in site configuration is deprecated. Use params.social.facebook_admin instead." }}
{{- with .facebook_admin }}
<meta property="fb:admins" content="{{ . }}" />
{{- end }}
{{- end }}
{{- end }}

{{- /* Facebook Page Admin ID for Domain Insights */}}
{{ with $facebookAdmin }}<meta property="fb:admins" content="{{ . }}" />{{ end }}
22 changes: 7 additions & 15 deletions tpl/tplimpl/embedded/templates/twitter_cards.html
Expand Up @@ -8,23 +8,15 @@
<meta name="twitter:title" content="{{ .Title }}"/>
<meta name="twitter:description" content="{{ with .Description }}{{ . }}{{ else }}{{if .IsPage}}{{ .Summary }}{{ else }}{{ with .Site.Params.description }}{{ . }}{{ end }}{{ end }}{{ end -}}"/>

{{- /* Deprecate site.Social.twitter in favor of site.Params.social.twitter */}}
{{- $twitterSite := "" }}
{{- with site.Params.social }}
{{- if reflect.IsMap . }}
{{- $twitterSite = .twitter }}
{{- with .twitter }}
{{- $content := . }}
{{- if not (strings.HasPrefix . "@") }}
{{- $content = printf "@%v" . }}
{{- end }}
<meta name="twitter:site" content="{{ $content }}"/>
{{- end }}
{{- end }}
{{- else }}
{{- with site.Social.twitter }}
{{- $twitterSite = . }}
{{- warnf "The social key in site configuration is deprecated. Use params.social.twitter instead." }}
{{- end }}
{{- end }}

{{- with $twitterSite }}
{{- $content := . }}
{{- if not (strings.HasPrefix . "@") }}
{{- $content = printf "@%v" $twitterSite }}
{{- end }}
<meta name="twitter:site" content="{{ $content }}"/>
{{- end }}

0 comments on commit d4d49e0

Please sign in to comment.