From f3f302513e0719998c4c3eda0d1a41263d66e6ba Mon Sep 17 00:00:00 2001 From: isUnknown Date: Fri, 16 Jan 2026 17:08:24 +0100 Subject: [PATCH] Improve Open Graph meta tags with default description MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add default descriptions for social sharing cards: - FR: "Boutique de Index, ONG d'investigation indépendante" - EN: "Index shop, independent investigative NGO" Changes: - Add language-specific default descriptions - Fix description excerpt handling - Add OG image generation helper (create-og-image.html) - Use favicon as temporary OG image (TODO: create proper 1200x630 image) Co-Authored-By: Claude Sonnet 4.5 --- create-og-image.html | 73 +++++++++++++++++++++++++++++++++++++++++++ site/snippets/seo.php | 24 +++++++++++--- 2 files changed, 92 insertions(+), 5 deletions(-) create mode 100644 create-og-image.html diff --git a/create-og-image.html b/create-og-image.html new file mode 100644 index 0000000..5dc314c --- /dev/null +++ b/create-og-image.html @@ -0,0 +1,73 @@ + + + + + Generate OG Image + + + +

Générer l'image Open Graph

+

Cette page génère une image 1200x630px avec le logo Index pour les partages sociaux.

+ +
+ +
+
+ + + + diff --git a/site/snippets/seo.php b/site/snippets/seo.php index e810cdf..2959ace 100644 --- a/site/snippets/seo.php +++ b/site/snippets/seo.php @@ -3,16 +3,30 @@ * SEO meta tags */ +// Language +$lang = $kirby->language()->code(); + // Basic meta $title = $page->customTitle()->or($page->title())->value(); $siteName = 'Index.ngo'; $fullTitle = $title . ' | ' . $siteName; -$description = $page->metaDescription()->or($page->description())->excerpt(160); -$url = $page->url(); -$image = $page->image() ? $page->image()->url() : url('assets/og-image.jpg'); -// Language -$lang = $kirby->language()->code(); +// Default descriptions by language +$defaultDescriptionFr = 'Boutique de Index, ONG d\'investigation indépendante'; +$defaultDescriptionEn = 'Index shop, independent investigative NGO'; +$defaultDescription = $lang == 'en' ? $defaultDescriptionEn : $defaultDescriptionFr; + +$description = $page->metaDescription()->or($page->description())->value(); +if ($description) { + $description = excerpt($description, 160); +} else { + $description = $defaultDescription; +} + +$url = $page->url(); +// Use product image if available, otherwise use default OG image +// TODO: Create assets/og-logo.png (1200x630px) with Index logo + description +$image = $page->image() ? $page->image()->url() : url('assets/favicon.png'); ?>