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/components/SiteLayout.astro | 219 ++++++++++++++++++++++++++++++++ 1 file changed, 219 insertions(+) create mode 100644 website/src/components/SiteLayout.astro (limited to 'website/src/components/SiteLayout.astro') diff --git a/website/src/components/SiteLayout.astro b/website/src/components/SiteLayout.astro new file mode 100644 index 00000000..be42efe9 --- /dev/null +++ b/website/src/components/SiteLayout.astro @@ -0,0 +1,219 @@ +--- +/* The chassis every non-docs page shares: one dark ground, the framed grid, + the same nav and footer as the homepage. Pages supply their own
. + Docs keep Starlight's shell and are themed through src/styles/starlight.css. */ +interface Props { + title: string; + description: string; + canonicalPath: string; + ogType?: 'website' | 'article'; + ogImage?: string; + ogImageAlt?: string; +} + +const { + title, + description, + canonicalPath, + ogType = 'website', + ogImage = '/assets/og-card-v9.png', + ogImageAlt = 'Herdr — run them anywhere, leave them running.', +} = Astro.props; + +import { fmt, releaseVersion, siteStats } from '../site-data'; + +const canonicalUrl = new URL(canonicalPath, 'https://herdr.dev').toString(); +const ogImageUrl = new URL(ogImage, 'https://herdr.dev').toString(); +const year = new Date().getFullYear(); + +/* Same build-time source the homepage uses, so the nav count and the footer + version agree across every page without being written down twice. */ +const { starCount } = await siteStats(); +const version = await releaseVersion(); +const facts = version ? `v${version} · Apache 2.0` : 'Apache 2.0'; +--- + + + + + + + {title} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + +
+ + + + -- cgit v1.2.3