mirror of
https://github.com/alanorth/hugo-theme-bootstrap4-blog.git
synced 2024-11-17 17:57:04 +01:00
Alan Orth
527bc0d824
.Site.LastChange is the date of the last modification on the entire site, not necessarily on the node we're currently showing, such as a taxonomy list.
65 lines
3.6 KiB
HTML
65 lines
3.6 KiB
HTML
<!--
|
|
Import of internal opengraph template from Hugo's `tpl/template_embedded.go`
|
|
until site authors and social metadata can be standardized[0]. Meanwhile, I
|
|
wanted to work on better usage of Twitter and Facebook OpenGraph tags[1][2].
|
|
|
|
First, because the .Site.Authors wiring doesn't work yet, several date-related
|
|
tags never get used, and also to correct the logic on these tags:
|
|
- All nodes/pages should use this metadata (it currently depends on .Site.Authors and .Social.Facebook)
|
|
- Published time should be flexible and use EITHER publishdate or date from frontmatter
|
|
- Modified time should use .Lastmod, which can use enableGitInfo and falls back seamlessly to .Date
|
|
- Nodes should use type "website" and og:updated_time
|
|
- Pages should use type "article" and article:modified_time
|
|
|
|
Several Twitter-related fields are incorrectly used:
|
|
- Site-specific Twitter account
|
|
- User-specific Twitter account
|
|
|
|
[0]: https://discuss.gohugo.io/t/how-to-configure-and-use-site-author/3682
|
|
[1]: https://dev.twitter.com/cards/markup
|
|
[2]: https://developers.facebook.com/docs/reference/opengraph/object-type/website/
|
|
-->
|
|
<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 }}" />
|
|
<meta property="og:url" content="{{ .Permalink }}" />
|
|
{{ with .Params.images }}{{ range first 6 . }}
|
|
<meta property="og:image" content="{{ . | absURL }}" />
|
|
{{ end }}{{ end }}
|
|
|
|
{{ if .IsPage }}
|
|
{{ if not .PublishDate.IsZero }}<meta property="article:published_time" content="{{ .PublishDate.Format "2006-01-02T15:04:05-07:00" | safeHTML }}"/>
|
|
{{ else if not .Date.IsZero }}<meta property="article:published_time" content="{{ .Date.Format "2006-01-02T15:04:05-07:00" | safeHTML }}"/>{{ end }}
|
|
{{ if not .Lastmod.IsZero }}<meta property="article:modified_time" content="{{ .Lastmod.Format "2006-01-02T15:04:05-07:00" | safeHTML }}"/>{{ end }}
|
|
{{ else }}
|
|
{{ if not .Date.IsZero }}<meta property="og:updated_time" content="{{ .Date.Format "2006-01-02T15:04:05-07:00" | safeHTML }}"/>{{ end }}
|
|
{{ end }}{{ with .Params.audio }}
|
|
<meta property="og:audio" content="{{ . }}" />{{ end }}{{ with .Params.locale }}
|
|
<meta property="og:locale" content="{{ . }}" />{{ end }}{{ with .Site.Params.title }}
|
|
<meta property="og:site_name" content="{{ . }}" />{{ end }}{{ with .Params.videos }}
|
|
{{ range .Params.videos }}
|
|
<meta property="og:video" content="{{ . | absURL }}" />
|
|
{{ end }}{{ end }}
|
|
|
|
<!-- If it is part of a series, link to related articles -->
|
|
{{ $permalink := .Permalink }}
|
|
{{ $siteSeries := .Site.Taxonomies.series }}{{ with .Params.series }}
|
|
{{ range $name := . }}
|
|
{{ $series := index $siteSeries $name }}
|
|
{{ range $page := first 6 $series.Pages }}
|
|
{{ if ne $page.Permalink $permalink }}<meta property="og:see_also" content="{{ $page.Permalink }}" />{{ end }}
|
|
{{ end }}
|
|
{{ end }}{{ end }}
|
|
|
|
{{ if .IsPage }}
|
|
{{ range .Site.Authors }}{{ with .Social.facebook }}
|
|
<meta property="article:author" content="https://www.facebook.com/{{ . }}" />{{ end }}{{ with .Site.Social.facebook }}
|
|
<meta property="article:publisher" content="https://www.facebook.com/{{ . }}" />{{ end }}
|
|
<meta property="article:section" content="{{ .Section }}" />
|
|
{{ with .Params.tags }}{{ range first 6 . }}
|
|
<meta property="article:tag" content="{{ . }}" />{{ end }}{{ end }}
|
|
{{ end }}{{ end }}
|
|
|
|
<!-- Facebook Page Admin ID for Domain Insights -->
|
|
{{ with .Site.Social.facebook_admin }}<meta property="fb:admins" content="{{ . }}" />{{ end }}
|