Skip to content

Commit 2aaf652

Browse files
committed
feat: og-preview: Improve OG image selection logic
This commit improves the logic for selecting the OG image for social sharing. It now checks for a home page default, resizes images, and uses `relLangURL` for proper URL generation.
1 parent f5469eb commit 2aaf652

File tree

1 file changed

+27
-16
lines changed

1 file changed

+27
-16
lines changed

layouts/partials/components/og-preview.html

Lines changed: 27 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,38 +1,49 @@
11
{{ $ogImageResource := "" }}
2+
{{ $ogImageDisplayURL := "" }}
23

3-
{{/* 1. Try to find the auto-generated OG image: [slug]-og.jpg */}}
4-
{{ if .File }}
4+
{{ if .IsHome }}
5+
{{ $ogImageDisplayURL = "images/og-image-16x9.jpg" | relLangURL }}
6+
{{ else if .File }}
57
{{ $pageSlug := path.Base .File.Dir }}
6-
{{ $generatedOgImageName := printf "%s-og.jpg" $pageSlug }}
7-
{{ $ogImageResource = .Resources.GetMatch $generatedOgImageName }}
8+
{{ $generatedOgImageName := printf "%s-og-16x9.jpg" $pageSlug }}
9+
{{ with .Resources.GetMatch $generatedOgImageName }}
10+
{{ $ogImageResource = . }}
11+
{{ end }}
812
{{ end }}
913

10-
{{/* 2. If not found, fall back to the `image` param in front matter */}}
1114
{{ if not $ogImageResource }}
1215
{{ with .Params.image }}
1316
{{ $fmImage := . }}
14-
{{ $ogImageResource = $.Page.Resources.GetMatch $fmImage }}
15-
{{ if not $ogImageResource }}
16-
{{ $ogImageResource = resources.Get $fmImage }}
17+
{{ with $.Page.Resources.GetMatch $fmImage }}
18+
{{ $ogImageResource = . }}
19+
{{ else }}
20+
{{ with resources.Get $fmImage }}
21+
{{ $ogImageResource = . }}
22+
{{ else }}
23+
{{ if fileExists (printf "static%s" $fmImage) }}
24+
{{ $ogImageDisplayURL = $fmImage | relLangURL }}
1725
{{ end }}
1826
{{ end }}
1927
{{ end }}
20-
21-
{{/* 3. If still not found, use a site-wide default */}}
22-
{{ if not $ogImageResource }}
23-
{{ with site.Params.metadata.image }}
24-
{{ $ogImageResource = resources.Get . }}
2528
{{ end }}
2629
{{ end }}
2730

28-
31+
{{ if not $ogImageDisplayURL }}
2932
{{ if $ogImageResource }}
3033
{{ $resizedOg := $ogImageResource.Resize "600x Lanczos q85" }}
31-
{{ $ogImageDisplay := $resizedOg.RelPermalink }}
34+
{{ $ogImageDisplayURL = $resizedOg.RelPermalink }}
35+
{{ else }}
36+
{{ with site.Params.metadata.image }}
37+
{{ $ogImageDisplayURL = . | relLangURL }}
38+
{{ end }}
39+
{{ end }}
40+
{{ end }}
41+
3242

43+
{{ if $ogImageDisplayURL }}
3344
<div class="og-preview-wrapper">
3445
<div class="og-preview-container">
35-
<img src="{{ $ogImageDisplay }}" alt="Social share preview for {{ .Title }}" class="og-preview-image-tag" />
46+
<img src="{{ $ogImageDisplayURL }}" alt="Social share preview for {{ .Title }}" class="og-preview-image-tag" />
3647

3748
<div class="image-dark-overlay"></div>
3849
<div class="social-share-overlay">

0 commit comments

Comments
 (0)