From a5cb9f7ad4b2bcb7ac367854147f661ab83c5ec1 Mon Sep 17 00:00:00 2001 From: Paul Buetow Date: Sat, 25 Apr 2026 22:13:32 +0300 Subject: can swap themes dynamically --- internal/generator/doc.go | 33 +- internal/generator/favicon.go | 27 +- internal/generator/generator.go | 198 ++- internal/generator/generator_test.go | 32 +- internal/generator/templates.go | 11 +- internal/generator/templates/embed.go | 65 +- .../generator/templates/shared/favicon_head.tmpl | 2 - internal/generator/templates/shared/nav.tmpl | 1772 +------------------- internal/generator/templates/shared/shared.css | 925 ++++++++++ internal/generator/templates/shared/shared.js | 1343 +++++++++++++++ internal/generator/templates/shell.tmpl | 77 + internal/generator/templates/themes/aurora.tmpl | 359 ---- .../generator/templates/themes/aurora/meta.json | 7 + .../generator/templates/themes/aurora/theme.css | 94 ++ .../generator/templates/themes/aurora/theme.js | 200 +++ internal/generator/templates/themes/biomech.tmpl | 217 --- .../generator/templates/themes/biomech/meta.json | 7 + .../generator/templates/themes/biomech/theme.css | 52 + .../generator/templates/themes/biomech/theme.js | 98 ++ internal/generator/templates/themes/brutalist.tmpl | 260 --- .../generator/templates/themes/brutalist/meta.json | 7 + .../generator/templates/themes/brutalist/theme.css | 65 + .../generator/templates/themes/brutalist/theme.js | 132 ++ internal/generator/templates/themes/cathedral.tmpl | 303 ---- .../generator/templates/themes/cathedral/meta.json | 7 + .../generator/templates/themes/cathedral/theme.css | 79 + .../generator/templates/themes/cathedral/theme.js | 155 ++ internal/generator/templates/themes/cosmos.tmpl | 385 ----- .../generator/templates/themes/cosmos/meta.json | 7 + .../generator/templates/themes/cosmos/theme.css | 81 + .../generator/templates/themes/cosmos/theme.js | 239 +++ internal/generator/templates/themes/dos.tmpl | 302 ---- internal/generator/templates/themes/dos/meta.json | 7 + internal/generator/templates/themes/dos/theme.css | 79 + internal/generator/templates/themes/dos/theme.js | 157 ++ internal/generator/templates/themes/matrix.tmpl | 315 ---- .../generator/templates/themes/matrix/meta.json | 7 + .../generator/templates/themes/matrix/theme.css | 76 + .../generator/templates/themes/matrix/theme.js | 172 ++ internal/generator/templates/themes/neon.tmpl | 348 ---- internal/generator/templates/themes/neon/meta.json | 7 + internal/generator/templates/themes/neon/theme.css | 94 ++ internal/generator/templates/themes/neon/theme.js | 155 ++ internal/generator/templates/themes/noir.tmpl | 308 ---- internal/generator/templates/themes/noir/meta.json | 7 + internal/generator/templates/themes/noir/theme.css | 77 + internal/generator/templates/themes/noir/theme.js | 162 ++ internal/generator/templates/themes/ocean.tmpl | 387 ----- .../generator/templates/themes/ocean/meta.json | 7 + .../generator/templates/themes/ocean/theme.css | 69 + internal/generator/templates/themes/ocean/theme.js | 254 +++ internal/generator/templates/themes/plasma.tmpl | 306 ---- .../generator/templates/themes/plasma/meta.json | 7 + .../generator/templates/themes/plasma/theme.css | 78 + .../generator/templates/themes/plasma/theme.js | 164 ++ internal/generator/templates/themes/retro.tmpl | 309 ---- .../generator/templates/themes/retro/meta.json | 7 + .../generator/templates/themes/retro/theme.css | 79 + internal/generator/templates/themes/retro/theme.js | 167 ++ .../generator/templates/themes/retrofuture.tmpl | 374 ----- .../templates/themes/retrofuture/meta.json | 7 + .../templates/themes/retrofuture/theme.css | 105 ++ .../templates/themes/retrofuture/theme.js | 193 +++ internal/generator/templates/themes/spaceage.tmpl | 350 ---- .../generator/templates/themes/spaceage/meta.json | 7 + .../generator/templates/themes/spaceage/theme.css | 80 + .../generator/templates/themes/spaceage/theme.js | 205 +++ .../generator/templates/themes/surveillance.tmpl | 224 --- .../templates/themes/surveillance/meta.json | 7 + .../templates/themes/surveillance/theme.css | 50 + .../templates/themes/surveillance/theme.js | 107 ++ internal/generator/templates/themes/synthwave.tmpl | 326 ---- .../generator/templates/themes/synthwave/meta.json | 7 + .../generator/templates/themes/synthwave/theme.css | 85 + .../generator/templates/themes/synthwave/theme.js | 174 ++ internal/generator/templates/themes/terminal.tmpl | 275 --- .../generator/templates/themes/terminal/meta.json | 7 + .../generator/templates/themes/terminal/theme.css | 70 + .../generator/templates/themes/terminal/theme.js | 141 ++ internal/generator/templates/themes/tropicale.tmpl | 575 ------- .../generator/templates/themes/tropicale/meta.json | 7 + .../generator/templates/themes/tropicale/theme.css | 81 + .../generator/templates/themes/tropicale/theme.js | 429 +++++ internal/generator/templates/themes/volcano.tmpl | 400 ----- .../generator/templates/themes/volcano/meta.json | 7 + .../generator/templates/themes/volcano/theme.css | 69 + .../generator/templates/themes/volcano/theme.js | 267 +++ internal/generator/themes.go | 33 +- 88 files changed, 7812 insertions(+), 8196 deletions(-) delete mode 100644 internal/generator/templates/shared/favicon_head.tmpl create mode 100644 internal/generator/templates/shared/shared.css create mode 100644 internal/generator/templates/shared/shared.js create mode 100644 internal/generator/templates/shell.tmpl delete mode 100644 internal/generator/templates/themes/aurora.tmpl create mode 100644 internal/generator/templates/themes/aurora/meta.json create mode 100644 internal/generator/templates/themes/aurora/theme.css create mode 100644 internal/generator/templates/themes/aurora/theme.js delete mode 100644 internal/generator/templates/themes/biomech.tmpl create mode 100644 internal/generator/templates/themes/biomech/meta.json create mode 100644 internal/generator/templates/themes/biomech/theme.css create mode 100644 internal/generator/templates/themes/biomech/theme.js delete mode 100644 internal/generator/templates/themes/brutalist.tmpl create mode 100644 internal/generator/templates/themes/brutalist/meta.json create mode 100644 internal/generator/templates/themes/brutalist/theme.css create mode 100644 internal/generator/templates/themes/brutalist/theme.js delete mode 100644 internal/generator/templates/themes/cathedral.tmpl create mode 100644 internal/generator/templates/themes/cathedral/meta.json create mode 100644 internal/generator/templates/themes/cathedral/theme.css create mode 100644 internal/generator/templates/themes/cathedral/theme.js delete mode 100644 internal/generator/templates/themes/cosmos.tmpl create mode 100644 internal/generator/templates/themes/cosmos/meta.json create mode 100644 internal/generator/templates/themes/cosmos/theme.css create mode 100644 internal/generator/templates/themes/cosmos/theme.js delete mode 100644 internal/generator/templates/themes/dos.tmpl create mode 100644 internal/generator/templates/themes/dos/meta.json create mode 100644 internal/generator/templates/themes/dos/theme.css create mode 100644 internal/generator/templates/themes/dos/theme.js delete mode 100644 internal/generator/templates/themes/matrix.tmpl create mode 100644 internal/generator/templates/themes/matrix/meta.json create mode 100644 internal/generator/templates/themes/matrix/theme.css create mode 100644 internal/generator/templates/themes/matrix/theme.js delete mode 100644 internal/generator/templates/themes/neon.tmpl create mode 100644 internal/generator/templates/themes/neon/meta.json create mode 100644 internal/generator/templates/themes/neon/theme.css create mode 100644 internal/generator/templates/themes/neon/theme.js delete mode 100644 internal/generator/templates/themes/noir.tmpl create mode 100644 internal/generator/templates/themes/noir/meta.json create mode 100644 internal/generator/templates/themes/noir/theme.css create mode 100644 internal/generator/templates/themes/noir/theme.js delete mode 100644 internal/generator/templates/themes/ocean.tmpl create mode 100644 internal/generator/templates/themes/ocean/meta.json create mode 100644 internal/generator/templates/themes/ocean/theme.css create mode 100644 internal/generator/templates/themes/ocean/theme.js delete mode 100644 internal/generator/templates/themes/plasma.tmpl create mode 100644 internal/generator/templates/themes/plasma/meta.json create mode 100644 internal/generator/templates/themes/plasma/theme.css create mode 100644 internal/generator/templates/themes/plasma/theme.js delete mode 100644 internal/generator/templates/themes/retro.tmpl create mode 100644 internal/generator/templates/themes/retro/meta.json create mode 100644 internal/generator/templates/themes/retro/theme.css create mode 100644 internal/generator/templates/themes/retro/theme.js delete mode 100644 internal/generator/templates/themes/retrofuture.tmpl create mode 100644 internal/generator/templates/themes/retrofuture/meta.json create mode 100644 internal/generator/templates/themes/retrofuture/theme.css create mode 100644 internal/generator/templates/themes/retrofuture/theme.js delete mode 100644 internal/generator/templates/themes/spaceage.tmpl create mode 100644 internal/generator/templates/themes/spaceage/meta.json create mode 100644 internal/generator/templates/themes/spaceage/theme.css create mode 100644 internal/generator/templates/themes/spaceage/theme.js delete mode 100644 internal/generator/templates/themes/surveillance.tmpl create mode 100644 internal/generator/templates/themes/surveillance/meta.json create mode 100644 internal/generator/templates/themes/surveillance/theme.css create mode 100644 internal/generator/templates/themes/surveillance/theme.js delete mode 100644 internal/generator/templates/themes/synthwave.tmpl create mode 100644 internal/generator/templates/themes/synthwave/meta.json create mode 100644 internal/generator/templates/themes/synthwave/theme.css create mode 100644 internal/generator/templates/themes/synthwave/theme.js delete mode 100644 internal/generator/templates/themes/terminal.tmpl create mode 100644 internal/generator/templates/themes/terminal/meta.json create mode 100644 internal/generator/templates/themes/terminal/theme.css create mode 100644 internal/generator/templates/themes/terminal/theme.js delete mode 100644 internal/generator/templates/themes/tropicale.tmpl create mode 100644 internal/generator/templates/themes/tropicale/meta.json create mode 100644 internal/generator/templates/themes/tropicale/theme.css create mode 100644 internal/generator/templates/themes/tropicale/theme.js delete mode 100644 internal/generator/templates/themes/volcano.tmpl create mode 100644 internal/generator/templates/themes/volcano/meta.json create mode 100644 internal/generator/templates/themes/volcano/theme.css create mode 100644 internal/generator/templates/themes/volcano/theme.js (limited to 'internal/generator') diff --git a/internal/generator/doc.go b/internal/generator/doc.go index d7d4a53..be82bdc 100644 --- a/internal/generator/doc.go +++ b/internal/generator/doc.go @@ -4,21 +4,26 @@ // Responsibilities by area (file → role): // // - generator.go — Orchestration: load posts from disk, sort newest-first, -// paginate, parse theme+nav templates, write index.html / pageN.html, -// then call atom.Generate. -// - themes.go — Theme registry (name → template string) and getTheme / -// ListThemes for the CLI. -// - theme_*.go — One file per visual theme: full-page HTML that invokes -// {{template "navSharedCSSInner"}} inside