feat: add proper rel=me atproto for Bluesky and fediverse:creator meta tag

- Bluesky URLs now get rel='me atproto' for verification
- Added fediverse:creator meta tag for Mastodon creator attribution
- Meta tag populated from MASTODON_INSTANCE and MASTODON_USER env vars
This commit is contained in:
Ricardo
2026-01-29 22:42:49 +01:00
parent 13f8876298
commit b3c30e3029
2 changed files with 23 additions and 2 deletions
+16 -1
View File
@@ -10,10 +10,22 @@ function parseSocialLinks(envVar) {
if (!envVar) return [];
return envVar.split(",").map((link) => {
const [name, url, icon] = link.split("|").map((s) => s.trim());
return { name, url, rel: "me", icon: icon || name.toLowerCase() };
// Bluesky requires "me atproto" for verification
const rel = url.includes("bsky.app") ? "me atproto" : "me";
return { name, url, rel, icon: icon || name.toLowerCase() };
});
}
// Get Mastodon handle for fediverse:creator meta tag
function getMastodonHandle() {
const instance = process.env.MASTODON_INSTANCE?.replace("https://", "") || "";
const user = process.env.MASTODON_USER || "";
if (instance && user) {
return `@${user}@${instance}`;
}
return "";
}
// Default social links if none configured
const defaultSocial = [
{
@@ -63,4 +75,7 @@ export default {
webmentions: {
domain: process.env.SITE_URL?.replace("https://", "").replace("http://", "") || "example.com",
},
// Fediverse creator for meta tag (e.g., @rmdes@mstdn.social)
fediverseCreator: getMastodonHandle(),
};
+7 -1
View File
@@ -68,9 +68,15 @@
<link rel="webmention" href="https://webmention.io/{{ site.webmentions.domain }}/webmention">
<link rel="pingback" href="https://webmention.io/{{ site.webmentions.domain }}/xmlrpc">
{# Fediverse creator meta tag for Mastodon verification #}
{% if site.fediverseCreator %}
<meta name="fediverse:creator" content="{{ site.fediverseCreator }}">
{% endif %}
{# IndieAuth rel="me" links for identity verification #}
{# Note: Bluesky links use "me atproto" for verification #}
{% for social in site.social %}
<link rel="me" href="{{ social.url }}">
<link rel="{{ social.rel }}" href="{{ social.url }}">
{% endfor %}
</head>
<body>