From 3e9aca14f85685ac6aefbb94b1476a14374731c0 Mon Sep 17 00:00:00 2001 From: Robert Schuster Date: Sun, 25 Oct 2026 12:33:32 +0100 Subject: [PATCH 1/6] feat: generate ogImage dynamically --- assets/images/og-image-overlay.jpg | Bin 0 -> 25073 bytes layouts/_partials/headMeta.html | 5 +++-- layouts/_partials/helper/ogImage.html | 18 ++++++++++++++++++ layouts/_partials/structuredData.html | 2 +- layouts/rss.xml | 2 +- 5 files changed, 23 insertions(+), 4 deletions(-) create mode 100644 assets/images/og-image-overlay.jpg create mode 100644 layouts/_partials/helper/ogImage.html diff --git a/assets/images/og-image-overlay.jpg b/assets/images/og-image-overlay.jpg new file mode 100644 index 0000000000000000000000000000000000000000..9542ce0d6893ec6d636c0f00fae881b08cf57737 GIT binary patch literal 25073 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 - - +{{- $ogImage := (partial "helper/ogImage" .) -}} + + {{- $isNoIndexPage := or (in .RelPermalink "/privacy/") (in .RelPermalink "/imprint/") (eq .RelPermalink "/404.html") (in .RelPermalink "/404/") -}} diff --git a/layouts/_partials/helper/ogImage.html b/layouts/_partials/helper/ogImage.html new file mode 100644 index 000000000..1e68b5f10 --- /dev/null +++ b/layouts/_partials/helper/ogImage.html @@ -0,0 +1,18 @@ +{{- $contentImage := (partial "helper/contentImage" .).firstImage -}} +{{- if reflect.IsImageResourceProcessable $contentImage -}} + {{- $image := $contentImage.Fill "1200x630 center jpg q85" -}} + {{- $logo := resources.Get "images/og-image-overlay.jpg" -}} + {{- $overlay := images.Overlay $logo 0 540 -}} + {{- $title := truncate 35 .Title -}} + {{- $text := images.Text $title (dict + "color" "#000000" + "size" 48 + "x" 15 + "y" 556 + ) + -}} + {{- $image := $image | images.Filter $overlay | images.Filter $text -}} + {{- return $image -}} +{{- else -}} + {{- return "{{ .Site.BaseURL }}og-image.jpg" -}} +{{- end -}} diff --git a/layouts/_partials/structuredData.html b/layouts/_partials/structuredData.html index 9a1e5eb1f..583b4b894 100644 --- a/layouts/_partials/structuredData.html +++ b/layouts/_partials/structuredData.html @@ -12,7 +12,7 @@ {{ $mainEntity = "FAQPage" }} {{ end }} -{{ $image := (partial "helper/contentImage" .).firstImage.Permalink }} +{{ $image := (partial "helper/ogImage" .).Permalink }}