diff options
| author | Jay V <[email protected]> | 2025-06-27 20:03:17 -0400 |
|---|---|---|
| committer | Jay V <[email protected]> | 2025-06-27 20:03:17 -0400 |
| commit | 6a7983a4ea9cb4ed6ec93f99f742df5a384cf807 (patch) | |
| tree | 2f7e3529c9bc0c4fb1e5ea55a4207c89218cfdcf /packages/web/src | |
| parent | 737146fca18af16c05470ed00f0437b96fbff53f (diff) | |
| download | opencode-6a7983a4ea9cb4ed6ec93f99f742df5a384cf807.tar.gz opencode-6a7983a4ea9cb4ed6ec93f99f742df5a384cf807.zip | |
docs: adding more share images
Diffstat (limited to 'packages/web/src')
| -rw-r--r-- | packages/web/src/components/Head.astro | 38 | ||||
| -rw-r--r-- | packages/web/src/pages/s/[id].astro | 3 |
2 files changed, 40 insertions, 1 deletions
diff --git a/packages/web/src/components/Head.astro b/packages/web/src/components/Head.astro new file mode 100644 index 000000000..36f11c955 --- /dev/null +++ b/packages/web/src/components/Head.astro @@ -0,0 +1,38 @@ +--- +import { Base64 } from "js-base64"; +import type { Props } from '@astrojs/starlight/props' +import Default from '@astrojs/starlight/components/Head.astro' +import config from '../../config.mjs' + +const slug = Astro.url.pathname.replace(/^\//, "").replace(/\/$/, ""); +const { + entry: { + data: { title }, + }, +} = Astro.locals.starlightRoute; +const isDocs = slug.startsWith("docs") + +let encodedTitle = ''; +let ogImage = `${config.url}/social-share.png`; + +if (isDocs) { + // Truncate to fit S3's max key size + encodedTitle = encodeURIComponent( + Base64.encode( + // Convert to ASCII + encodeURIComponent( + // Truncate to fit S3's max key size + title.substring(0, 700) + ) + ) + ); + ogImage = `${config.socialCard}/opencode-docs/${encodedTitle}.png`; +} +--- + +<Default {...Astro.props}><slot /></Default> + +{ (isDocs || !slug.startsWith("s")) && ( + <meta property="og:image" content={ogImage} /> + <meta property="twitter:image" content={ogImage} /> +)} diff --git a/packages/web/src/pages/s/[id].astro b/packages/web/src/pages/s/[id].astro index 7e8c7238f..a81d2e786 100644 --- a/packages/web/src/pages/s/[id].astro +++ b/packages/web/src/pages/s/[id].astro @@ -2,6 +2,7 @@ import { Base64 } from "js-base64"; import config from "virtual:starlight/user-config"; +import config from '../../../config.mjs' import StarlightPage from '@astrojs/starlight/components/StarlightPage.astro'; import Share from "../../components/Share.tsx"; @@ -38,7 +39,7 @@ const encodedTitle = encodeURIComponent( ) ); -const ogImage = `https://social-cards.sst.dev/opencode-share/${encodedTitle}.png?model=${Array.from(models).join(",")}&version=${version}&id=${id}`; +const ogImage = `${config.socialCard}/opencode-share/${encodedTitle}.png?model=${Array.from(models).join(",")}&version=${version}&id=${id}`; --- <StarlightPage |
