From 27a6e7106ffa9e40aa49c81fd6f919cdbc183de7 Mon Sep 17 00:00:00 2001 From: Ryan Malloy Date: Tue, 17 Feb 2026 03:53:07 -0700 Subject: [PATCH] Custom OG image renderer with pg_orbit branding Replace generic blackAndWhite preset with custom renderer using site colors (#0a0e17 dark background, #f59e0b amber accents), decorative orbital rings watermark, branded footer with pg_orbit name and site URL. Inter font in 400/700 weights. --- docs/astro.config.mjs | 5 +- docs/src/og-renderer.tsx | 183 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 186 insertions(+), 2 deletions(-) create mode 100644 docs/src/og-renderer.tsx diff --git a/docs/astro.config.mjs b/docs/astro.config.mjs index 18b731d..4bcae5a 100644 --- a/docs/astro.config.mjs +++ b/docs/astro.config.mjs @@ -5,7 +5,8 @@ import remarkMath from "remark-math"; import rehypeKatex from "rehype-katex"; import mermaid from "astro-mermaid"; import icon from "astro-icon"; -import opengraphImages, { presets } from "astro-opengraph-images"; +import opengraphImages from "astro-opengraph-images"; +import { pgOrbitOgImage } from "./src/og-renderer.js"; import * as fs from "fs"; export default defineConfig({ @@ -135,7 +136,7 @@ export default defineConfig({ }, ], }, - render: presets.blackAndWhite, + render: pgOrbitOgImage, }), ], diff --git a/docs/src/og-renderer.tsx b/docs/src/og-renderer.tsx new file mode 100644 index 0000000..82b3adf --- /dev/null +++ b/docs/src/og-renderer.tsx @@ -0,0 +1,183 @@ +import React from "react"; +import type { RenderFunctionInput } from "astro-opengraph-images"; + +export async function pgOrbitOgImage({ + title, + description, +}: RenderFunctionInput): Promise { + return Promise.resolve( +
+ {/* Top accent bar */} +
+ + {/* Decorative orbital rings (top-right) */} + + + + + + + + {/* Content area */} +
+ {/* Title + description */} +
+
+ {title} +
+ {description && ( +
+ {description} +
+ )} +
+ + {/* Footer */} +
+
+ {/* Amber dot */} +
+
+ pg_orbit +
+
+ Celestial mechanics for PostgreSQL +
+
+
+ pg-orbit.warehack.ing +
+
+
+ + {/* Bottom accent bar */} +
+
, + ); +}