From eb655b24b642176b0741326bf6e7a00b03a8c028 Mon Sep 17 00:00:00 2001 From: Jorijn van der Graaf Date: Sun, 30 Aug 2026 22:18:24 +0200 Subject: [PATCH] json-ld fix --- shared/interfaces/Catcrafts.Shared-Views.cppm | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/shared/interfaces/Catcrafts.Shared-Views.cppm b/shared/interfaces/Catcrafts.Shared-Views.cppm index 219c3a9..66e50d0 100644 --- a/shared/interfaces/Catcrafts.Shared-Views.cppm +++ b/shared/interfaces/Catcrafts.Shared-Views.cppm @@ -1808,6 +1808,12 @@ export RenderedPage RenderAbout(const LegalPage& about) { page.meta.canonical = "/about"; // dateModified is real metadata, not decoration: profile-page consumers // read it to judge freshness, and the content already tracks the date. + // Google's ProfilePage validator wants a full ISO 8601 datetime, not a + // bare date, so the date-only field gets a time appended here rather + // than storing one it doesn't have. Midnight UTC, because the site's + // dates are Dutch-local (UTC+1/+2, always ahead): midnight UTC falls on + // the same local calendar day year-round, where a fixed +02:00 would + // land winter dates on the previous local day. page.meta.jsonLd = std::format( R"({{"@context":"https://schema.org","@type":"ProfilePage","dateModified":{},)" R"("mainEntity":{{)" @@ -1839,7 +1845,7 @@ export RenderedPage RenderAbout(const LegalPage& about) { R"("sameAs":["https://invent.kde.org/themightycat",)" R"("https://forgejo.catcrafts.net/jorijnvdgraaf",)" R"("https://ani.social/u/TheMightyCat"]}}}})", - JsonStr(about.updated)); + JsonStr(about.updated + "T00:00:00Z")); page.main = Format( R"(