aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCaio Lente <7017340+clente@users.noreply.github.com>2024-01-04 19:37:50 -0300
committerCaio Lente <7017340+clente@users.noreply.github.com>2024-01-04 19:37:50 -0300
commitf0643ea03875393d30f44fba235de145eb71bbdb (patch)
tree0b1cc22eac9fc688a7a4e5861c5a1998a3d5cede
parent488fcc401fa605a5d79fbf98754556de2cf09d18 (diff)
parentbd5d81f18c0fdb9be3506af5a984cac64fae81f2 (diff)
downloadhugo-bearcub-f0643ea03875393d30f44fba235de145eb71bbdb.tar.gz
hugo-bearcub-f0643ea03875393d30f44fba235de145eb71bbdb.tar.bz2
Merge branch 'main' into style/herman
-rw-r--r--README.md16
-rw-r--r--exampleSite/config.toml14
-rw-r--r--layouts/_default/rss.xml84
-rw-r--r--layouts/_default/single.html2
-rw-r--r--layouts/partials/social_card.html46
5 files changed, 111 insertions, 51 deletions
diff --git a/README.md b/README.md
index 3b73cd4..0636c04 100644
--- a/README.md
+++ b/README.md
@@ -107,7 +107,7 @@ already implemented:
matter](https://gohugo.io/content-management/front-matter/). You can also add
`render: false` to your [build
options](https://gohugo.io/content-management/build-options/#readout) to avoid
- rendering a blank post.
+ rendering blank posts.
- Skip link: a "skip to main content" link that is temporarily invisible, but
can be focused by people who need a keyboard to navigate the web (see [PR
#5](https://github.com/clente/hugo-bearcub/pull/5) by
@@ -145,11 +145,6 @@ defaultContentLanguage = "en"
# Generate a nice robots.txt for SEO
enableRobotsTXT = true
-# Your name. For more information on why this must be a list, see
-# https://discourse.gohugo.io/t/site-author-usage/31459/8
-[author]
- name = "John Doe"
-
# Setup syntax highlighting without inline styles. For more information about
# why you'd want to avoid inline styles, see
# https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/style-src#unsafe_inline_styles
@@ -214,10 +209,15 @@ enableRobotsTXT = true
# Social media. Delete any item you aren't using to make sure it won't show up
# in your website's metadata.
- [social]
- email = "me@example.com" # Added to the footer so readers can reply to posts
+ [params.social]
twitter = "example" # Twitter handle (without '@')
facebook_admin = "0000000000" # Facebook Page Admin ID
+
+ # Author metadata. This is mostly used for the RSS feed of your site, but the
+ # email is also added to the footer of each post
+ [params.author]
+ name = "John Doe" # Your name as shown in the RSS feed metadata
+ email = "me@example.com" # Added to the footer so readers can reply to posts
```
## Contributing
diff --git a/exampleSite/config.toml b/exampleSite/config.toml
index d5eff2b..6fe641f 100644
--- a/exampleSite/config.toml
+++ b/exampleSite/config.toml
@@ -7,11 +7,6 @@ defaultContentLanguage = "en"
# Generate a nice robots.txt for SEO
enableRobotsTXT = true
-# Your name. For more information on why this must be a list, see
-# https://discourse.gohugo.io/t/site-author-usage/31459/8
-[author]
- name = "John Doe"
-
# Setup syntax highlighting without inline styles. For more information about
# why you'd want to avoid inline styles, see
# https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/style-src#unsafe_inline_styles
@@ -76,7 +71,12 @@ enableRobotsTXT = true
# Social media. Delete any item you aren't using to make sure it won't show up
# in your website's metadata.
- [social]
- email = "me@example.com" # Added to the footer so readers can reply to posts
+ [params.social]
twitter = "example" # Twitter handle (without '@')
facebook_admin = "0000000000" # Facebook Page Admin ID
+
+ # Author metadata. This is mostly used for the RSS feed of your site, but the
+ # email is also added to the footer of each post
+ [params.author]
+ name = "John Doe" # Your name as shown in the RSS feed metadata
+ email = "me@example.com" # Added to the footer so readers can reply to posts
diff --git a/layouts/_default/rss.xml b/layouts/_default/rss.xml
index c55e7e4..70d1193 100644
--- a/layouts/_default/rss.xml
+++ b/layouts/_default/rss.xml
@@ -1,42 +1,72 @@
-{{- $pctx := . -}}
-{{- if .IsHome -}}{{ $pctx = .Site }}{{- end -}}
-{{- $pages := slice -}}
-{{- if $.IsHome -}}
-{{- $pages = where $pctx.AllPages "Kind" "page" -}}
-{{ else if $.IsSection }}
-{{- $pages = $pctx.RegularPages -}}
-{{- else -}}
-{{- $pages = $pctx.Pages -}}
-{{- end -}}
-{{- $limit := .Site.Config.Services.RSS.Limit -}}
-{{- if ge $limit 1 -}}
-{{- $pages = $pages | first $limit -}}
-{{- end -}}
+{{- /* Deprecate site.Author.email in favor of site.Params.author.email */}}
+{{- $authorEmail := "" }}
+{{- with site.Params.author }}
+ {{- if reflect.IsMap . }}
+ {{- with .email }}
+ {{- $authorEmail = . }}
+ {{- end }}
+ {{- end }}
+{{- else }}
+ {{- with site.Author.email }}
+ {{- $authorEmail = . }}
+ {{- warnf "The author key in site configuration is deprecated. Use params.author.email instead." }}
+ {{- end }}
+{{- end }}
+
+{{- /* Deprecate site.Author.name in favor of site.Params.author.name */}}
+{{- $authorName := "" }}
+{{- with site.Params.author }}
+ {{- if reflect.IsMap . }}
+ {{- with .name }}
+ {{- $authorName = . }}
+ {{- end }}
+ {{- else }}
+ {{- $authorName = . }}
+ {{- end }}
+{{- else }}
+ {{- with site.Author.name }}
+ {{- $authorName = . }}
+ {{- warnf "The author key in site configuration is deprecated. Use params.author.name instead." }}
+ {{- end }}
+{{- end }}
+
+{{- $pctx := . }}
+{{- if .IsHome }}{{ $pctx = .Site }}{{ end }}
+{{- $pages := slice }}
+{{- if or $.IsHome $.IsSection }}
+{{- $pages = $pctx.RegularPages }}
+{{- else }}
+{{- $pages = $pctx.Pages }}
+{{- end }}
+{{- $limit := .Site.Config.Services.RSS.Limit }}
+{{- if ge $limit 1 }}
+{{- $pages = $pages | first $limit }}
+{{- end }}
{{- printf "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?>" | safeHTML }}
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
<channel>
- <title>{{ if .IsHome }}{{ .Site.Title }}{{ else }}{{ with .Title }}{{.}} on {{ end }}{{ .Site.Title }}{{ end }}</title>
+ <title>{{ if .IsHome }}{{ .Site.Title }}{{ else }}{{ with .Title }}{{ . }} on {{ end }}{{ .Site.Title }}{{ end }}</title>
<link>{{ .Permalink }}</link>
- <description>Recent content {{ if not .IsHome }}{{ with .Title }}in {{.}} {{ end }}{{ end }}on {{ .Site.Title }}</description>
+ <description>Recent content {{ if not .IsHome }}{{ with .Title }}in {{ . }} {{ end }}{{ end }}on {{ .Site.Title }}</description>
<generator>Hugo -- gohugo.io</generator>
- <language>{{ site.Language.LanguageCode }}</language>{{ with .Site.Author.email }}
- <managingEditor>{{.}}{{ with $.Site.Author.name }} ({{.}}){{end}}</managingEditor>{{end}}{{ with .Site.Author.email }}
- <webMaster>{{.}}{{ with $.Site.Author.name }} ({{.}}){{end}}</webMaster>{{end}}{{ with .Site.Copyright }}
- <copyright>{{.}}</copyright>{{end}}{{ if not .Date.IsZero }}
+ <language>{{ site.Language.LanguageCode }}</language>{{ with $authorEmail }}
+ <managingEditor>{{.}}{{ with $authorName }} ({{ . }}){{ end }}</managingEditor>{{ end }}{{ with $authorEmail }}
+ <webMaster>{{ . }}{{ with $authorName }} ({{ . }}){{ end }}</webMaster>{{ end }}{{ with .Site.Copyright }}
+ <copyright>{{ . }}</copyright>{{ end }}{{ if not .Date.IsZero }}
<lastBuildDate>{{ .Date.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }}</lastBuildDate>{{ end }}
- {{- with .OutputFormats.Get "RSS" -}}
+ {{- with .OutputFormats.Get "RSS" }}
{{ printf "<atom:link href=%q rel=\"self\" type=%q />" .Permalink .MediaType | safeHTML }}
- {{- end -}}
- {{ range $pages }}
+ {{- end }}
+ {{- range $pages }}
<item>
<title>{{ .Title }}</title>
<link>{{ .Permalink }}</link>
<pubDate>{{ .Date.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }}</pubDate>
- {{ with .Params.author }}<author>{{.}}</author>{{ end }}
+ {{- with $authorEmail }}<author>{{ . }}{{ with $authorName }} ({{ . }}){{ end }}</author>{{ end }}
<guid>{{ .Permalink }}</guid>
- <description>{{ .Summary | plainify }}</description>
+ <description>{{ .Summary | transform.XMLEscape | safeHTML }}</description>
<content:encoded>{{ `<![CDATA[` | safeHTML }}{{ .Content | safeHTML }}{{ `]]>` | safeHTML }}</content:encoded>
</item>
- {{ end }}
+ {{- end }}
</channel>
-</rss> \ No newline at end of file
+</rss>
diff --git a/layouts/_default/single.html b/layouts/_default/single.html
index 1dbc8da..133ae69 100644
--- a/layouts/_default/single.html
+++ b/layouts/_default/single.html
@@ -16,7 +16,7 @@
<a class="blog-tags" href="{{ .Permalink }}">#{{ .LinkTitle }}</a>
{{ end }}
</p>
-{{ with .Site.Social.email }}
+{{ with .Site.Params.social.email }}
<p>
<a href='mailto:{{ . }}?subject={{ i18n "email-subject" }}"{{ default $.Site.Title $.Page.Title }}"'>
{{ i18n "email-reply" }} ↪
diff --git a/layouts/partials/social_card.html b/layouts/partials/social_card.html
index 75c3c9a..6faacc0 100644
--- a/layouts/partials/social_card.html
+++ b/layouts/partials/social_card.html
@@ -13,7 +13,7 @@
)) }}
{{ $date := .Date.Format (default "2006-01-02" .Site.Params.dateFormat) }}
-{{ $author := (default $.Site.Author.name ($.Param "author") ) }}
+{{ $author := (default $.Site.Params.author.name ($.Param "author") ) }}
{{ $byline := (printf "%s | %s" $author $date) }}
{{ $fg = $fg.Filter (images.Text $byline (dict
@@ -29,7 +29,7 @@
{{ $card := $card.Resize "900x webp q100" }}
<!-- Open Graph / Facebook -->
-<!-- Source: https://raw.githubusercontent.com/gohugoio/hugo/master/tpl/tplimpl/embedded/templates/opengraph.html -->
+<!-- Source: https://github.com/gohugoio/hugo/blob/master/tpl/tplimpl/embedded/templates/opengraph.html -->
<meta property="og:title" content="{{ .Title }}" />
<meta property="og:description" content="{{ with .Description }}{{ . }}{{ else }}{{if .IsPage}}{{ .Summary }}{{ else }}{{ with .Site.Params.description }}{{ . }}{{ end }}{{ end }}{{ end }}" />
<meta property="og:type" content="{{ if .IsPage }}article{{ else }}website{{ end }}" />
@@ -63,22 +63,52 @@
{{ end }}{{ end }}
{{- end }}
+{{- /* Deprecate site.Social.facebook_admin in favor of site.Params.social.facebook_admin */}}
+{{- $facebookAdmin := "" }}
+{{- 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." }}
+ {{- end }}
+{{- end }}
+
{{- /* Facebook Page Admin ID for Domain Insights */}}
-{{- with .Site.Social.facebook_admin }}<meta property="fb:admins" content="{{ . }}" />{{ end }}
+{{ with $facebookAdmin }}<meta property="fb:admins" content="{{ . }}" />{{ end }}
<!-- Twitter -->
<!-- Source: https://github.com/gohugoio/hugo/blob/master/tpl/tplimpl/embedded/templates/twitter_cards.html -->
<meta name="twitter:card" content="summary_large_image"/>
<meta name="twitter:image" content="{{ $card.Permalink | absURL }}"/>
-
<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 -}}"/>
-{{ with .Site.Social.twitter -}}
-<meta name="twitter:site" content="@{{ . }}"/>
-{{ end -}}
+
+{{- /* Deprecate site.Social.twitter in favor of site.Params.social.twitter */}}
+{{- $twitterSite := "" }}
+{{- with site.Params.social }}
+ {{- if reflect.IsMap . }}
+ {{- $twitterSite = .twitter }}
+ {{- 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 }}
<!-- Microdata -->
-<!-- Source: https://raw.githubusercontent.com/gohugoio/hugo/master/tpl/tplimpl/embedded/templates/schema.html -->
+<!-- Source: https://github.com/gohugoio/hugo/blob/master/tpl/tplimpl/embedded/templates/schema.html -->
<meta itemprop="name" content="{{ .Title }}">
<meta itemprop="description" content="{{ with .Description }}{{ . }}{{ else }}{{if .IsPage}}{{ .Summary }}{{ else }}{{ with .Site.Params.description }}{{ . }}{{ end }}{{ end }}{{ end }}">