From 22bb476d646ccadec71f584b90c2a135fec92929 Mon Sep 17 00:00:00 2001 From: Ogulcan Celik Date: Mon, 3 Aug 2026 21:33:33 +0300 Subject: feat(website): rebuild marketing pages on new brand chassis --- website/src/pages/index.astro | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) (limited to 'website/src/pages/index.astro') diff --git a/website/src/pages/index.astro b/website/src/pages/index.astro index e46ccbe6..26a048d4 100644 --- a/website/src/pages/index.astro +++ b/website/src/pages/index.astro @@ -1,7 +1,33 @@ --- import { readFile } from 'node:fs/promises'; +import { agentCount, fmt, releaseVersion, siteStats } from '../site-data'; +/* The numbers in the nav and hero strip are baked here at build time from the + snapshots and latest.json, so the page ships with real values, renders + correctly without JS, and can never be more than one deploy stale. A small + script on the page refreshes the counts live afterwards. */ const homepage = await readFile(new URL('../../index.html', import.meta.url), 'utf8'); + +const { starCount, installCount, pluginCount } = await siteStats(); +const version = await releaseVersion(); +const facts = version ? `v${version} · Apache 2.0` : 'Apache 2.0'; + +/* the line drops out entirely rather than showing a placeholder if the + manifests can't be read — a missing sentence beats a wrong number */ +const agents = await agentCount(); +const agentsNote = agents ? `${agents} agents detected out of the box` : ''; +/* the strip carried a hardcoded 19; same source as row 04 now */ +const agentsCount = agents ? String(agents) : '—'; + +/* replaceAll, not replace: the star count appears in the nav as well as the + strip, and replace() would fill only the first of them. */ +const page = homepage + .replaceAll('', fmt(starCount)) + .replaceAll('', fmt(installCount)) + .replaceAll('', fmt(pluginCount)) + .replaceAll('', facts) + .replaceAll('', agentsNote) + .replaceAll('', agentsCount); --- - + -- cgit v1.2.3