diff --git a/src/lib/components/socialImageCard.svelte b/src/lib/components/socialImageCard.svelte
index 21359df..5a3aede 100644
--- a/src/lib/components/socialImageCard.svelte
+++ b/src/lib/components/socialImageCard.svelte
@@ -1,14 +1,65 @@
-
-
- {title}
-
-
-
-
-
\ No newline at end of file
+
+
+
\ No newline at end of file
diff --git a/src/routes/(app)/+page.server.ts b/src/routes/(app)/+page.server.ts
index 1aee354..63f2005 100644
--- a/src/routes/(app)/+page.server.ts
+++ b/src/routes/(app)/+page.server.ts
@@ -14,7 +14,9 @@ export const load = async ({ fetch, url }) => {
description: 'Bored Game, keep track of your games',
images: [
{
- url: `${new URL(url.pathname, url.origin).href}og?title=Home | Bored Game`,
+ url: `${
+ new URL(url.pathname, url.origin).href
+ }og?title=Home | Bored Game&description=Bored Game, keep track of your games`,
width: 1200,
height: 630
}
diff --git a/src/routes/og/+server.ts b/src/routes/og/+server.ts
index 8681f04..f137f29 100644
--- a/src/routes/og/+server.ts
+++ b/src/routes/og/+server.ts
@@ -9,33 +9,40 @@ const height = 630;
const width = 1200;
export const GET: RequestHandler = async ({ url }) => {
- const title = url.searchParams.get('title') ?? undefined;
- const result = SocialImageCard.render({ title });
- const element = toReactNode(`${result.html}`);
- const svg = await satori(element, {
- fonts: [
- {
- name: 'Noto Sans',
- data: Buffer.from(NotoSans),
- style: 'normal'
+ try {
+ const ogImage = `${new URL(url.origin).href}images/bored-game.png`;
+ const title = url.searchParams.get('title') ?? undefined;
+ const description = url.searchParams.get('description') ?? '';
+ const result = SocialImageCard.render({ title, image: ogImage, description });
+ console.log('result', result);
+ const element = toReactNode(`${result.html}`);
+ const svg = await satori(element, {
+ fonts: [
+ {
+ name: 'Noto Sans',
+ data: Buffer.from(NotoSans),
+ style: 'normal'
+ }
+ ],
+ height,
+ width
+ });
+
+ const resvg = new Resvg(svg, {
+ fitTo: {
+ mode: 'width',
+ value: width
}
- ],
- height,
- width
- });
+ });
- const resvg = new Resvg(svg, {
- fitTo: {
- mode: 'width',
- value: width
- }
- });
+ const image = resvg.render();
- const image = resvg.render();
-
- return new Response(image.asPng(), {
- headers: {
- 'content-type': 'image/png'
- }
- });
+ return new Response(image.asPng(), {
+ headers: {
+ 'content-type': 'image/png'
+ }
+ });
+ } catch (e) {
+ console.error(e);
+ }
};