mirror of
https://github.com/imfing/hextra.git
synced 2025-09-14 05:17:08 -04:00
feat(opengraph): update the partial (#819)
* chore: update opengraph partial * docs: improve Open Grapth section
This commit is contained in:

committed by
GitHub

parent
334158af7a
commit
ec97808b69
@@ -456,19 +456,41 @@ The llms.txt file is automatically generated from your content structure and mak
|
|||||||
|
|
||||||
### Open Graph
|
### Open Graph
|
||||||
|
|
||||||
To add [Open Graph](https://ogp.me/) metadata to a page, add values in the frontmatter params.
|
To add [Open Graph](https://ogp.me/) metadata, you can:
|
||||||
|
- add values in the front-matter params of a page
|
||||||
|
- or add values in the Hugo configuration file
|
||||||
|
|
||||||
As a page can have multiple `image` and `video` tags, place their values in an array.
|
As a page can have multiple `image` and `video` tags, place their values in an array.
|
||||||
Other Open Graph properties can have only one value.
|
Other Open Graph properties can have only one value.
|
||||||
For example, this page has an `og:image` tag (which configures an image to preview on social shares) and an `og:audio` tag.
|
|
||||||
|
|
||||||
```yaml {filename="content/docs/guide/configuration.md"}
|
{{< tabs items="Page Level, Global Level" >}}
|
||||||
title: "Configuration"
|
{{< tab >}}
|
||||||
|
|
||||||
|
```md {filename="mypage.md"}
|
||||||
|
---
|
||||||
|
title: "My Page"
|
||||||
params:
|
params:
|
||||||
images:
|
images:
|
||||||
- "/img/config-image.jpg"
|
- "/images/image01.jpg"
|
||||||
audio: "config-talk.mp3"
|
audio: "podcast02.mp3"
|
||||||
|
videos:
|
||||||
|
- "video01.mp4"
|
||||||
|
---
|
||||||
|
|
||||||
|
Page content.
|
||||||
```
|
```
|
||||||
|
{{< /tab >}}
|
||||||
|
{{< tab >}}
|
||||||
|
```yaml {filename="hugo.yaml"}
|
||||||
|
params:
|
||||||
|
images:
|
||||||
|
- "/images/image01.jpg"
|
||||||
|
audio: "podcast02.mp3"
|
||||||
|
videos:
|
||||||
|
- "video01.mp4"
|
||||||
|
```
|
||||||
|
{{< /tab >}}
|
||||||
|
{{< /tabs >}}
|
||||||
|
|
||||||
### Banner
|
### Banner
|
||||||
|
|
||||||
|
@@ -1,31 +1,86 @@
|
|||||||
{{/* From https://github.com/gohugoio/gohugoioTheme/blob/master/layouts/partials/opengraph/opengraph.html */}}
|
{{/* Adapted from https://github.com/gohugoio/hugo/blob/v0.149.0/docs/layouts/_partials/opengraph/opengraph.html */}}
|
||||||
|
|
||||||
<meta property="og:title" content="{{ .Title }}" />
|
<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
|
||||||
<meta property="og:type" content="{{ if .IsPage }}article{{ else }}website{{ end }}" />
|
property="og:description"
|
||||||
<meta property="og:url" content="{{ .Permalink }}" />
|
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 -}}
|
{{- with $.Params.images -}}
|
||||||
{{- range first 6 . }}<meta property="og:image" content="{{ . | absURL }}" />{{ end -}}
|
{{- range first 6 . }}
|
||||||
|
<meta property="og:image" content="{{ . | absURL }}">
|
||||||
|
{{ end -}}
|
||||||
{{- else -}}
|
{{- else -}}
|
||||||
{{- $featured := "" }}
|
{{- $featured := "" }}
|
||||||
{{- with $featured -}}
|
{{- with $featured -}}
|
||||||
<meta property="og:image" content="{{ $featured.Permalink }}"/>
|
<meta property="og:image" content="{{ $featured.Permalink }}">
|
||||||
{{- else -}}
|
{{- else -}}
|
||||||
{{- with $.Site.Params.images }}<meta property="og:image" content="{{ index . 0 | absURL }}"/>{{ end -}}
|
{{- with $.Site.Params.images }}
|
||||||
|
<meta property="og:image" content="{{ index . 0 | absURL }}">
|
||||||
|
{{ end -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|
||||||
{{- if .IsPage }}
|
{{- if .IsPage }}
|
||||||
{{- $iso8601 := "2006-01-02T15:04:05-07:00" -}}
|
{{- $iso8601 := "2006-01-02T15:04:05-07:00" -}}
|
||||||
<meta property="article:section" content="{{ .Section }}" />
|
<meta property="article:section" content="{{ .Section }}">
|
||||||
{{ with .PublishDate }}<meta property="article:published_time" {{ .Format $iso8601 | printf "content=%q" | safeHTMLAttr }} />{{ end }}
|
{{ with .PublishDate }}
|
||||||
{{ with .Lastmod }}<meta property="article:modified_time" {{ .Format $iso8601 | printf "content=%q" | safeHTMLAttr }} />{{ end }}
|
<meta
|
||||||
|
property="article:published_time"
|
||||||
|
{{ .Format $iso8601 | printf "content=%q" | safeHTMLAttr }}>
|
||||||
|
{{ end }}
|
||||||
|
{{ with .Lastmod }}
|
||||||
|
<meta
|
||||||
|
property="article:modified_time"
|
||||||
|
{{ .Format $iso8601 | printf "content=%q" | safeHTMLAttr }}>
|
||||||
|
{{ end }}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|
||||||
{{- with .Params.audio }}<meta property="og:audio" content="{{ . }}" />{{ end }}
|
{{- with .Params.audio }}<meta property="og:audio" content="{{ . }}">{{ end }}
|
||||||
{{- with .Params.locale }}<meta property="og:locale" content="{{ . }}" />{{ end }}
|
{{- with .Params.locale }}
|
||||||
{{- with .Site.Params.title }}<meta property="og:site_name" content="{{ . }}" />{{ end }}
|
<meta property="og:locale" content="{{ . }}">
|
||||||
{{- with .Params.videos }}{{- range . }}
|
{{ end }}
|
||||||
<meta property="og:video" content="{{ . | absURL }}" />
|
{{- with .Site.Params.title }}
|
||||||
{{ end }}{{ end }}
|
<meta property="og:site_name" content="{{ . }}">
|
||||||
|
{{ end }}
|
||||||
|
{{- with .Params.videos }}
|
||||||
|
{{- range . }}
|
||||||
|
<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 | urlize) }}
|
||||||
|
{{- range $page := first 6 $series.Pages }}
|
||||||
|
{{- if ne $page.Permalink $permalink }}
|
||||||
|
<meta property="og:see_also" content="{{ $page.Permalink }}">
|
||||||
|
{{ end }}
|
||||||
|
{{- end }}
|
||||||
|
{{ end }}
|
||||||
|
|
||||||
|
{{ end }}
|
||||||
|
|
||||||
|
{{- /* Facebook Page Admin ID for Domain Insights */}}
|
||||||
|
{{- with site.Params.social.facebook_admin }}
|
||||||
|
<meta property="fb:admins" content="{{ . }}">
|
||||||
|
{{ end }}
|
||||||
|
Reference in New Issue
Block a user