diff options
| author | Adam Soltys <[email protected]> | 2026-10-22 08:43:02 -0700 |
|---|---|---|
| committer | Adam Soltys <[email protected]> | 2026-10-22 08:43:02 -0700 |
| commit | af95c8741c17a371ce03cfc07c54e8294ae68124 (patch) | |
| tree | a3f6600a4756ef0862f400e0f9a7a09a64c2dea9 /feed/profile-page.js | |
| parent | 6b59316493a9a02f735a19e9747d2f3982d27ce2 (diff) | |
| download | coinosv3-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.js | 8 |
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; } |
