aboutsummaryrefslogtreecommitdiffstats
path: root/feed/profile-page.js
diff options
context:
space:
mode:
authorAdam Soltys <[email protected]>2026-10-22 08:43:02 -0700
committerAdam Soltys <[email protected]>2026-10-22 08:43:02 -0700
commitaf95c8741c17a371ce03cfc07c54e8294ae68124 (patch)
treea3f6600a4756ef0862f400e0f9a7a09a64c2dea9 /feed/profile-page.js
parent6b59316493a9a02f735a19e9747d2f3982d27ce2 (diff)
downloadcoinosv3-server-af95c8741c17a371ce03cfc07c54e8294ae68124.tar.gz
coinosv3-server-af95c8741c17a371ce03cfc07c54e8294ae68124.zip
feed: note and profile pages swap the site's share tags for their own, with the site card as the fallback picture (same as coinosv3 f3a3d88)
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Diffstat (limited to 'feed/profile-page.js')
-rw-r--r--feed/profile-page.js8
1 files changed, 4 insertions, 4 deletions
diff --git a/feed/profile-page.js b/feed/profile-page.js
index a30c2ab..623dc09 100644
--- a/feed/profile-page.js
+++ b/feed/profile-page.js
@@ -11,7 +11,7 @@
// page goes out (and the build carries on into the cache).
import { decode } from 'nostr-tools/nip19';
import { verifyEvent } from 'nostr-tools/pure';
-import { NOTE_RELAYS, esc, scriptJson } from './note-page.js';
+import { NOTE_RELAYS, esc, scriptJson, siteTagsOut, siteImage } from './note-page.js';
export const PROFILE_PATH = /^\/((?:npub1|nprofile1)[a-z0-9]+|[A-Za-z0-9._-]{1,30})\/?$/;
// single-segment app routes and files that are never a person
@@ -186,14 +186,14 @@ export function renderProfilePage(html, data, ref, origin) {
desc ? `<meta property="og:description" content="${esc(desc)}">` : '',
desc ? `<meta name="description" content="${esc(desc)}">` : '',
origin ? `<meta property="og:url" content="${esc(origin + '/' + ref.path)}">` : '',
- picture ? `<meta property="og:image" content="${esc(picture)}">` : '',
- `<meta name="twitter:card" content="summary">`,
+ picture || siteImage(origin) ? `<meta property="og:image" content="${esc(picture || siteImage(origin))}">` : '',
+ `<meta name="twitter:card" content="${picture ? 'summary' : 'summary_large_image'}">`,
// the face and the cover start downloading with the page
picture ? `<link rel="preload" as="image" href="${esc(picture)}">` : '',
banner ? `<link rel="preload" as="image" href="${esc(banner)}">` : '',
`<script type="application/json" id="boot-profile">${scriptJson({ ...data, path: ref.path })}</script>`,
].filter(Boolean).join('\n');
- let out = html.replace(/<title>[^<]*<\/title>/i, `<title>${esc(title)}</title>`);
+ let out = siteTagsOut(html).replace(/<title>[^<]*<\/title>/i, `<title>${esc(title)}</title>`);
out = out.includes('</head>') ? out.replace('</head>', head + '\n</head>') : head + out;
return out;
}