From f5dd2ef559fd79c0aa367fcfcfc15b1538a810b4 Mon Sep 17 00:00:00 2001 From: Guido Jansen Date: Wed, 16 Sep 2026 08:56:44 +0200 Subject: [PATCH] Make social links scope-aware (Say Hi, follow, verify, privacy) so each site points to its own profile --- src/components/pages/HomePage.astro | 4 ++-- src/components/pages/PrivacyPage.astro | 7 +++++-- src/components/pages/VerifyPage.astro | 6 +++--- src/layouts/Base.astro | 6 +++--- 4 files changed, 13 insertions(+), 10 deletions(-) diff --git a/src/components/pages/HomePage.astro b/src/components/pages/HomePage.astro index 4a33995..0a69c94 100644 --- a/src/components/pages/HomePage.astro +++ b/src/components/pages/HomePage.astro @@ -19,7 +19,7 @@ interface EventRow { } import { nlStats } from '../../data/nl-stats'; import { feedForScope } from '../../data/feed'; -import { getScope, resolveScopeId } from '../../config/scopes'; +import { getScope, resolveScopeId, siteName } from '../../config/scopes'; import { europeStats, statFor } from '../../data/europe-stats'; const { lang } = Astro.props as { lang: Lang }; @@ -223,7 +223,7 @@ const avatarMembers = members.filter((m) => m.avatar).slice(0, 24);

{t('join.body')}

{t('join.member')} - {t('join.cta')} + {t('join.cta')}

{t('join.noAccount.a')}Eurosky{ diff --git a/src/components/pages/PrivacyPage.astro b/src/components/pages/PrivacyPage.astro index ee12de8..edc253f 100644 --- a/src/components/pages/PrivacyPage.astro +++ b/src/components/pages/PrivacyPage.astro @@ -2,9 +2,12 @@ import { localeHref } from '../../i18n/paths'; import Base from '../../layouts/Base.astro'; import { useTranslations, type Lang } from '../../i18n/ui'; +import { getScope, siteName } from '../../config/scopes'; const { lang } = Astro.props as { lang: Lang }; const t = useTranslations(lang); +const scope = getScope(import.meta.env.PUBLIC_SITE_SCOPE); +const sn = siteName(scope); const title = 'Privacy'; const home = localeHref(lang, '/'); const updated = lang === 'nl' ? 'Laatst bijgewerkt: 27 augustus 2026' : 'Last updated: 27 August 2026'; @@ -25,7 +28,7 @@ const updated = lang === 'nl' ? 'Laatst bijgewerkt: 27 augustus 2026' : 'Last up

atproto.nl is een onafhankelijk community-project, gerund door vrijwilligers. Het is geen bedrijf en niet verbonden aan Bluesky Social PBC. Vragen? Bereik ons op{' '} - mu.social of open een + mu.social of open een issue op de site-repo.

@@ -83,7 +86,7 @@ const updated = lang === 'nl' ? 'Laatst bijgewerkt: 27 augustus 2026' : 'Last up

atproto.nl is an independent community project, run by volunteers. It is not a company and not affiliated with Bluesky Social PBC. Questions? Reach us on{' '} - mu.social or open an + mu.social or open an issue on the site repo.

diff --git a/src/components/pages/VerifyPage.astro b/src/components/pages/VerifyPage.astro index abdca6b..c4fea3b 100644 --- a/src/components/pages/VerifyPage.astro +++ b/src/components/pages/VerifyPage.astro @@ -2,7 +2,7 @@ import Base from '../../layouts/Base.astro'; import VerifyBadge from '../VerifyBadge.astro'; import { useTranslations, type Lang } from '../../i18n/ui'; -import { getScope, resolveScopeId } from '../../config/scopes'; +import { getScope, resolveScopeId, siteName } from '../../config/scopes'; const { lang } = Astro.props as { lang: Lang }; const t = useTranslations(lang); @@ -109,8 +109,8 @@ const verifyHref = `${p}/verify`; )}

- {t('verify.mu')} - {t('verify.bsky')} + {t('verify.mu')} + {t('verify.bsky')}

diff --git a/src/layouts/Base.astro b/src/layouts/Base.astro index 7b3da5c..0167d5d 100644 --- a/src/layouts/Base.astro +++ b/src/layouts/Base.astro @@ -44,7 +44,6 @@ const verifyHref = localeHref(lang, '/verify'); const aboutHref = localeHref(lang, '/about'); const privacyHref = localeHref(lang, '/privacy'); const termsHref = localeHref(lang, '/terms'); -const followUrl = 'https://mu.social/profile/atproto.nl'; const site = Astro.site?.toString().replace(/\/$/, '') ?? 'https://atproto.nl'; // Per-scope social card, so a shared .be/.eu/.no link does not show the Dutch OG image. const ogImage = `${site}/brand/${scopeIdForStats === 'nl' ? 'og.png' : `og-${scopeIdForStats}.png`}`; @@ -89,6 +88,7 @@ const canonical = `${site}${path}`; // the catalogue's copy said "atproto.nl" on every build. const scope = getScope(import.meta.env.PUBLIC_SITE_SCOPE); const SITE_NAME = siteName(scope); +const followUrl = `https://mu.social/profile/${SITE_NAME}`; const pageTitle = title ? `${title} ยท ${SITE_NAME}` : SITE_NAME; const description = pageDescription ?? t('site.tagline'); const orgLd = { @@ -98,7 +98,7 @@ const orgLd = { url: `${site}/`, logo: `${site}/brand/atproto-nl-avatar-1000.png`, description: t('site.tagline'), - sameAs: ['https://mu.social/profile/atproto.nl', 'https://tangled.org/atcommons.eu/website'], + sameAs: [`https://mu.social/profile/${SITE_NAME}`, 'https://tangled.org/atcommons.eu/website'], }; --- @@ -208,7 +208,7 @@ const orgLd = { class="follow-btn footer-follow-btn" type="button" data-did="did:plc:rldh4m4qtswi7tq4rp23r27q" - data-profile-url="https://mu.social/profile/atproto.nl" + data-profile-url={followUrl} aria-pressed="false" hidden>Follow {t('footer.follow')} -- 2.54.0