From 262e69c691a9b78234aa89e250300cf741bb948f Mon Sep 17 00:00:00 2001 From: Johan Larsson Date: Thu, 2 Jul 2026 14:55:32 +0200 Subject: [PATCH] feat: add Open Graph and social metadata Enable `open-graph` and `twitter-card` in Quarto and add a branded 1200x630 social card so links render with an image on social media. Replace the homepage's HTML `description` (metadata-only on this page) with a plain sentence so the meta description no longer repeats the title. Also improve indexing: set `canonical-url`, drop the trailing slash from `site-url` for clean absolute URLs, and add a post-render hook to align sitemap entries with the canonical trailing-slash form. Fixes #65 --- _quarto.yml | 11 +++- assets/img/og-image.png | Bin 0 -> 23153 bytes assets/img/og-image.svg | 112 ++++++++++++++++++++++++++++++++++++++++ index.qmd | 9 ++-- scripts/fix-sitemap.sh | 13 +++++ 5 files changed, 141 insertions(+), 4 deletions(-) create mode 100644 assets/img/og-image.png create mode 100644 assets/img/og-image.svg create mode 100755 scripts/fix-sitemap.sh diff --git a/_quarto.yml b/_quarto.yml index 31bac75..3d4a444 100644 --- a/_quarto.yml +++ b/_quarto.yml @@ -5,10 +5,18 @@ project: - "*.qmd" - "site/**/*.qmd" - "blog/**/*.qmd" + post-render: + - scripts/fix-sitemap.sh website: title: COMPUTO - site-url: https://computo-journal.org/ + site-url: https://computo-journal.org description: A platform for computational research and reproducibility + image: /assets/img/og-image.png + image-alt: "Computo, a journal of the French Statistical Society" + open-graph: + locale: en_US + twitter-card: + card-style: summary_large_image favicon: assets/favicon.ico navbar: background: primary @@ -52,6 +60,7 @@ format: theme: light: [ custom.scss, light.scss ] dark: [ custom.scss, dark.scss ] + canonical-url: true toc: true code-copy: true code-block-border-left: true diff --git a/assets/img/og-image.png b/assets/img/og-image.png new file mode 100644 index 0000000000000000000000000000000000000000..6fc3d61ecb36fac74158fd42c8af269b9aa7a0cf GIT binary patch literal 23153 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 literal 0 HcmV?d00001 diff --git a/assets/img/og-image.svg b/assets/img/og-image.svg new file mode 100644 index 0000000..1017992 --- /dev/null +++ b/assets/img/og-image.svg @@ -0,0 +1,112 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/index.qmd b/index.qmd index 9f1db3c..8eb62e2 100644 --- a/index.qmd +++ b/index.qmd @@ -1,7 +1,10 @@ --- -description:

COMPUTO

A journal of the French - Statistical Society SFdS - - ISSN 2824-7795 +description: >- + Computo is an open-access journal of the French Statistical Society publishing + reproducible computational and algorithmic contributions in statistics and + machine learning. +image: assets/img/og-image.png +image-alt: "Computo, a journal of the French Statistical Society" page-layout: full toc: false listing: diff --git a/scripts/fix-sitemap.sh b/scripts/fix-sitemap.sh new file mode 100755 index 0000000..0e2fdd3 --- /dev/null +++ b/scripts/fix-sitemap.sh @@ -0,0 +1,13 @@ +#!/usr/bin/env bash +set -euo pipefail + +# Quarto emits sitemap entries ending in /index.html, while pages' +# rel="canonical" tags point at the trailing-slash form. Google Search Console +# then flags the sitemap URLs as duplicates with no chosen canonical. +# Upstream bug: https://github.com/quarto-dev/quarto-cli/discussions/11398 + +sitemap="${QUARTO_PROJECT_OUTPUT_DIR:-_site}/sitemap.xml" + +[ -f "$sitemap" ] || exit 0 + +sed -i 's|/index\.html|/|g' "$sitemap"