mirror of
https://github.com/aljazceru/opencode.git
synced 2025-12-21 17:54:23 +01:00
share og image
This commit is contained in:
3
bun.lock
3
bun.lock
@@ -64,6 +64,7 @@
|
|||||||
"ai": "catalog:",
|
"ai": "catalog:",
|
||||||
"astro": "5.7.13",
|
"astro": "5.7.13",
|
||||||
"diff": "8.0.2",
|
"diff": "8.0.2",
|
||||||
|
"js-base64": "3.7.7",
|
||||||
"luxon": "3.6.1",
|
"luxon": "3.6.1",
|
||||||
"marked": "15.0.12",
|
"marked": "15.0.12",
|
||||||
"rehype-autolink-headings": "7.1.0",
|
"rehype-autolink-headings": "7.1.0",
|
||||||
@@ -938,6 +939,8 @@
|
|||||||
|
|
||||||
"joycon": ["joycon@3.1.1", "", {}, "sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw=="],
|
"joycon": ["joycon@3.1.1", "", {}, "sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw=="],
|
||||||
|
|
||||||
|
"js-base64": ["js-base64@3.7.7", "", {}, "sha512-7rCnleh0z2CkXhH67J8K1Ytz0b2Y+yxTPL+/KOJoa20hfnVQ/3/T6W/KflYI4bRHRagNeXeU2bkNGI3v1oS/lw=="],
|
||||||
|
|
||||||
"js-tokens": ["js-tokens@4.0.0", "", {}, "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="],
|
"js-tokens": ["js-tokens@4.0.0", "", {}, "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="],
|
||||||
|
|
||||||
"js-yaml": ["js-yaml@4.1.0", "", { "dependencies": { "argparse": "^2.0.1" }, "bin": { "js-yaml": "bin/js-yaml.js" } }, "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA=="],
|
"js-yaml": ["js-yaml@4.1.0", "", { "dependencies": { "argparse": "^2.0.1" }, "bin": { "js-yaml": "bin/js-yaml.js" } }, "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA=="],
|
||||||
|
|||||||
@@ -20,6 +20,7 @@
|
|||||||
"ai": "catalog:",
|
"ai": "catalog:",
|
||||||
"astro": "5.7.13",
|
"astro": "5.7.13",
|
||||||
"diff": "8.0.2",
|
"diff": "8.0.2",
|
||||||
|
"js-base64": "3.7.7",
|
||||||
"luxon": "3.6.1",
|
"luxon": "3.6.1",
|
||||||
"marked": "15.0.12",
|
"marked": "15.0.12",
|
||||||
"rehype-autolink-headings": "7.1.0",
|
"rehype-autolink-headings": "7.1.0",
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
---
|
---
|
||||||
|
import { Base64 } from "js-base64";
|
||||||
import config from "virtual:starlight/user-config";
|
import config from "virtual:starlight/user-config";
|
||||||
|
|
||||||
import StarlightPage from '@astrojs/starlight/components/StarlightPage.astro';
|
import StarlightPage from '@astrojs/starlight/components/StarlightPage.astro';
|
||||||
@@ -12,15 +13,49 @@ const data = await res.json();
|
|||||||
|
|
||||||
console.log(data.info)
|
console.log(data.info)
|
||||||
|
|
||||||
---
|
const title = "Share";
|
||||||
|
|
||||||
|
const encodedTitle = encodeURIComponent(
|
||||||
|
Base64.encode(
|
||||||
|
// Convert to ASCII
|
||||||
|
encodeURIComponent(
|
||||||
|
// Truncate to fit S3's max key size
|
||||||
|
title.substring(0, 700)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
const cardService = "https://social-cards.sst.dev";
|
||||||
|
const cost = "$0.12";
|
||||||
|
const model = "claude-sonnet-4-20250514,claude-opus-4-20250514";
|
||||||
|
const version = "v0.1.1";
|
||||||
|
// ?cost=$0.12&model=claude-sonnet-4-20250514,claude-opus-4-20250514&version=v0.1.1&id=43120e6b
|
||||||
|
const ogImageUrl = `${cardService}/opencode-share/${encodedTitle}.png?cost=${cost}&model=${model}&version=${version}&id=${id}`;
|
||||||
|
|
||||||
|
---
|
||||||
<StarlightPage
|
<StarlightPage
|
||||||
hasSidebar={false}
|
hasSidebar={false}
|
||||||
frontmatter={{
|
frontmatter={{
|
||||||
title: "Share",
|
title: title,
|
||||||
pagefind: false,
|
pagefind: false,
|
||||||
template: "splash",
|
template: "splash",
|
||||||
tableOfContents: false,
|
tableOfContents: false,
|
||||||
|
head: [
|
||||||
|
{
|
||||||
|
tag: "meta",
|
||||||
|
attrs: {
|
||||||
|
property: "og:image",
|
||||||
|
content: ogImageUrl,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
tag: "meta",
|
||||||
|
attrs: {
|
||||||
|
name: "twitter:image",
|
||||||
|
content: ogImageUrl,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
],
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<Share api={apiUrl} data={data.messages} client:only="solid" />
|
<Share api={apiUrl} data={data.messages} client:only="solid" />
|
||||||
|
|||||||
Reference in New Issue
Block a user