feat(og): add logo and dynamic faded background image to OG templates
Some checks failed
Build & Deploy / 🔍 Prepare (push) Successful in 11s
Build & Deploy / 🧪 QA (push) Successful in 1m31s
Build & Deploy / 🚀 Deploy (push) Has been cancelled
Build & Deploy / 🧪 Post-Deploy Verification (push) Has been cancelled
Build & Deploy / 🔔 Notify (push) Has been cancelled
Build & Deploy / 🏗️ Build (push) Has been cancelled
Some checks failed
Build & Deploy / 🔍 Prepare (push) Successful in 11s
Build & Deploy / 🧪 QA (push) Successful in 1m31s
Build & Deploy / 🚀 Deploy (push) Has been cancelled
Build & Deploy / 🧪 Post-Deploy Verification (push) Has been cancelled
Build & Deploy / 🔔 Notify (push) Has been cancelled
Build & Deploy / 🏗️ Build (push) Has been cancelled
This commit is contained in:
@@ -55,3 +55,36 @@ export const OG_IMAGE_SIZE = {
|
||||
width: 1200,
|
||||
height: 630,
|
||||
};
|
||||
|
||||
/**
|
||||
* Loads a local image and converts it to a base64 data URI for Satori
|
||||
*/
|
||||
export function getLocalImageBase64(filename: string): string | undefined {
|
||||
try {
|
||||
const filePath = join(process.cwd(), 'public', filename);
|
||||
const buffer = readFileSync(filePath);
|
||||
const ext = filename.split('.').pop()?.toLowerCase();
|
||||
const mimeType =
|
||||
ext === 'png'
|
||||
? 'image/png'
|
||||
: ext === 'jpg' || ext === 'jpeg'
|
||||
? 'image/jpeg'
|
||||
: 'image/svg+xml';
|
||||
return `data:${mimeType};base64,${buffer.toString('base64')}`;
|
||||
} catch (error) {
|
||||
console.error(`[OG] Failed to load local image ${filename}:`, error);
|
||||
return undefined;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns standard assets for OG images
|
||||
*/
|
||||
export function getOgAssets() {
|
||||
return {
|
||||
logo: getLocalImageBase64('logo-white.png'),
|
||||
bgImage: getLocalImageBase64(
|
||||
'media/aerial-view-of-electricity-station-surrounded-with-2023-11-27-05-33-40-utc-scaled.jpg',
|
||||
),
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user