From 5b7ccf0b671e2999b62befc729a3e517a0433728 Mon Sep 17 00:00:00 2001 From: Bertrand Yuan Date: Mon, 15 Dec 2025 23:48:10 +0800 Subject: initial commit -- the front-end prototype The initial code is base on Anirudh's work. More to see at: https://github.com/techwithanirudh/shadcn-blog Therefore, the code in this commit is under MIT license. --- src/app/banner.png/og.tsx | 53 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 src/app/banner.png/og.tsx (limited to 'src/app/banner.png/og.tsx') diff --git a/src/app/banner.png/og.tsx b/src/app/banner.png/og.tsx new file mode 100644 index 0000000..1a520c0 --- /dev/null +++ b/src/app/banner.png/og.tsx @@ -0,0 +1,53 @@ +import type { ImageResponseOptions } from 'next/dist/compiled/@vercel/og/types'; +import { ImageResponse } from 'next/og'; +import type { ReactElement } from 'react'; + +interface GenerateProps { + title?: string; + subtitle?: string; +} + +export function generateOGImage( + options: GenerateProps & ImageResponseOptions, +): ImageResponse { + const { title, subtitle, ...rest } = options; + + return new ImageResponse( + generate({ + title, + subtitle, + }), + { + width: 1200, + height: 630, + ...rest, + }, + ); +} + +export function generate({ title = 'John Doe' }: GenerateProps): ReactElement { + return ( +
+
+
+
+
+
+
20 ? 64 : 80, + letterSpacing: '-0.04em', + }} + > + {title} +
+
+
+ ); +} -- cgit v1.2.3