From f5f77cb4a3f388047ffcbc3bec11c7cffe33a545 Mon Sep 17 00:00:00 2001 From: Ricardo Date: Tue, 24 Feb 2026 13:56:29 +0100 Subject: [PATCH] fix: normalize site URL with trailing slash for Mastodon rel=me verification Mastodon's VerifyLinkService uses strict string comparison against account.url (which includes trailing slash from the AP actor's url field). The h-card self-link used SITE_URL without trailing slash, causing the comparison to fail silently. --- _data/site.js | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/_data/site.js b/_data/site.js index dd14545..7fbea5e 100644 --- a/_data/site.js +++ b/_data/site.js @@ -62,11 +62,14 @@ function buildSocialFromFeeds() { return links; } +// Ensure URL has trailing slash (Mastodon rel="me" verification uses strict string match) +const siteUrl = (process.env.SITE_URL || "https://example.com").replace(/\/$/, "") + "/"; + export default { // Basic site info name: process.env.SITE_NAME || "My IndieWeb Blog", - url: process.env.SITE_URL || "https://example.com", - me: process.env.SITE_URL || "https://example.com", + url: siteUrl, + me: siteUrl, locale: process.env.SITE_LOCALE || "en", description: process.env.SITE_DESCRIPTION || @@ -75,7 +78,7 @@ export default { // Author info (shown in h-card, about page, etc.) author: { name: process.env.AUTHOR_NAME || "Blog Author", - url: process.env.SITE_URL || "https://example.com", + url: siteUrl, avatar: process.env.AUTHOR_AVATAR || "/images/default-avatar.svg", title: process.env.AUTHOR_TITLE || "", bio: process.env.AUTHOR_BIO || "Welcome to my IndieWeb blog.",