From f57754d3ae1f87712bf142dcb04def6a795ca9a2 Mon Sep 17 00:00:00 2001 From: Kevin Longe <273747162+kvlonge@users.noreply.github.com> Date: Sun, 1 Nov 2026 12:27:20 +0000 Subject: [PATCH] docs(website): add SQLStack parent-brand attribution Amp-Thread-ID: https://ampcode.com/threads/T-01a1970a-5666-76e3-9c02-09c919827520 --- website/README.md | 3 ++ website/astro.config.mjs | 1 + website/public/assets/sqlstack-dark.png | Bin 0 -> 5364 bytes website/public/assets/sqlstack.png | Bin 0 -> 5215 bytes website/public/index.html | 24 +++++++-- website/public/styles.css | 53 ++++++++++++++++++- website/src/components/Footer.astro | 67 ++++++++++++++++++++++++ website/src/components/SiteTitle.astro | 32 +++++++++-- website/src/styles/sqlclean.css | 2 +- 9 files changed, 172 insertions(+), 10 deletions(-) create mode 100644 website/public/assets/sqlstack-dark.png create mode 100644 website/public/assets/sqlstack.png create mode 100644 website/src/components/Footer.astro diff --git a/website/README.md b/website/README.md index c0a2f6a..b403678 100644 --- a/website/README.md +++ b/website/README.md @@ -13,6 +13,9 @@ The SQLClean website: the homepage at `/` and the documentation at `/docs/`, bui - `public/fonts/`: self-hosted fonts, each with its licence. - `recordings/`: the VHS tapes behind the README demo; see `recordings/README.md`. +The footer's SQLStack symbols (`public/assets/sqlstack.png` and `sqlstack-dark.png`) are unchanged +copies from [`sqlstack-io/sqlstack` at `9b37b9e`](https://github.com/sqlstack-io/sqlstack/tree/9b37b9e128d36930e1fe0c5880606525100b228b/assets/icons). + Search uses Pagefind, and `llms.txt`, `llms-small.txt` and `llms-full.txt` are generated at build time. The Website workflow builds the site and checks its links on every change; it does not deploy. Cloudflare Pages deploys it: every push to `main` publishes https://sqlclean.io, and every other diff --git a/website/astro.config.mjs b/website/astro.config.mjs index 8ed8762..c73c1f8 100644 --- a/website/astro.config.mjs +++ b/website/astro.config.mjs @@ -36,6 +36,7 @@ export default defineConfig({ SiteTitle: './src/components/SiteTitle.astro', Pagination: './src/components/Pagination.astro', ThemeSelect: './src/components/ThemeSelect.astro', + Footer: './src/components/Footer.astro', }, customCss: ['./src/styles/fonts.css', './src/styles/sqlclean.css'], expressiveCode: { diff --git a/website/public/assets/sqlstack-dark.png b/website/public/assets/sqlstack-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..d29890b7dd10ccaab52c910ec5d7253c1f3b5fcf GIT binary patch literal 5364 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 Z{Xf&PWiBODt#AMU002ovPDHLkV1k~N^$Y+2 literal 0 HcmV?d00001 diff --git a/website/public/index.html b/website/public/index.html index c1c925f..e834a3f 100644 --- a/website/public/index.html +++ b/website/public/index.html @@ -33,10 +33,13 @@