- Use page resource cover.* for track pages (resized to 1200x webp) - Fall back to .Params.image then configurable site default - Add [images] config section with default OG image path - Add og-default.png (1200x630) with centered logo Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
43 lines
1.6 KiB
HTML
Executable File
43 lines
1.6 KiB
HTML
Executable File
{{- $title := .Title | default .Site.Title -}}
|
|
{{- $desc := .Description | default .Summary | default .Site.Params.description | plainify | truncate 200 -}}
|
|
|
|
{{/* Resolve image: page resource cover.* > .Params.image > site default */}}
|
|
{{- $image := "" -}}
|
|
{{- with .Resources.GetMatch "cover.*" -}}
|
|
{{- $img := .Resize "1200x webp q90" -}}
|
|
{{- $image = $img.Permalink -}}
|
|
{{- else -}}
|
|
{{- with $.Params.image -}}
|
|
{{- $image = . -}}
|
|
{{- else -}}
|
|
{{- $image = $.Site.Params.images.default | default "/images/og-default.png" -}}
|
|
{{- end -}}
|
|
{{- end -}}
|
|
{{- if and $image (not (strings.HasPrefix $image "http")) -}}
|
|
{{- $image = $image | absURL -}}
|
|
{{- end -}}
|
|
|
|
<meta property="og:title" content="{{ $title }}">
|
|
<meta property="og:description" content="{{ $desc }}">
|
|
<meta property="og:type" content="{{ cond (eq .Section "tracks") "music.song" "website" }}">
|
|
<meta property="og:url" content="{{ .Permalink }}">
|
|
<meta property="og:site_name" content="{{ .Site.Title }}">
|
|
<meta property="og:locale" content="en_US">
|
|
|
|
{{- if $image }}
|
|
<meta property="og:image" content="{{ $image }}">
|
|
<meta property="og:image:alt" content="{{ $title }}">
|
|
{{- end }}
|
|
|
|
{{/* Audio-specific OpenGraph tags */}}
|
|
{{- if and (eq .Section "tracks") .Params.audio }}
|
|
<meta property="og:audio" content="{{ .Params.audio }}">
|
|
<meta property="og:audio:type" content="audio/mpeg">
|
|
{{- if .Params.duration }}
|
|
<meta property="music:duration" content="{{ .Params.duration }}">
|
|
{{- end }}
|
|
{{- if .Params.artist }}
|
|
<meta property="music:musician" content="{{ .Params.artist }}">
|
|
{{- end }}
|
|
{{- end }}
|