From 2e2846a2ef38dda44c201b5bd5206cf334c61143 Mon Sep 17 00:00:00 2001 From: Natalie Date: Sun, 3 May 2026 00:27:12 -0400 Subject: [PATCH] =?UTF-8?q?feat(@projects/@magic-civilization):=20?= =?UTF-8?q?=E2=9C=A8=20reorganize=20guide=20navigation=20into=20categories?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Lilith Autocommit --- .../guide/src/pages/HomePage.tsx | 76 ++++++++++++++----- scripts/apricot-run.sh | 12 +-- 2 files changed, 65 insertions(+), 23 deletions(-) diff --git a/public/games/age-of-dwarves/guide/src/pages/HomePage.tsx b/public/games/age-of-dwarves/guide/src/pages/HomePage.tsx index 21c79b19..26473848 100644 --- a/public/games/age-of-dwarves/guide/src/pages/HomePage.tsx +++ b/public/games/age-of-dwarves/guide/src/pages/HomePage.tsx @@ -189,22 +189,57 @@ const CardIcon = styled.span` // ─── Data ──────────────────────────────────────────────────────────────────── +interface NavSection { + category: string + links: Array<{ icon: string; label: string; to: string }> +} + // Game 1 scope: no /magic/* routes exist in App.tsx. The Magic Schools / // Spells / Archons pages were purged during p2-09's scope-narrow pass. // Those entries were previously here and redirected to `/` via the wildcard // catch-all route — a broken UX reported by the user. When Game 2/3 routes // return, add them back wrapped in an episode-gate filter so they only // render in the dev bundle (VITE_DEV_GUIDE=1). Tracked by p1-14. -const SECTIONS = [ - { icon: '🗺', label: 'Terrain', to: '/map/terrain' }, - { icon: '💎', label: 'Resources', to: '/map/resources' }, - { icon: '🧝', label: 'Races', to: '/empire/races' }, - { icon: '🏛', label: 'Government', to: '/empire/government' }, - { icon: '🔬', label: 'Tech Tree', to: '/research/tech-tree' }, - { icon: '⚔', label: 'Units', to: '/military/units' }, - { icon: '🗡', label: 'Combat', to: '/military/combat' }, - { icon: '🏗', label: 'Buildings', to: '/buildings/buildings' }, - { icon: '🌍', label: 'Climate', to: '/climate' }, +const GUIDE_SECTIONS: readonly NavSection[] = [ + { + category: 'The Map', + links: [ + { icon: '🗺', label: 'Terrain', to: '/map/terrain' }, + { icon: '💎', label: 'Resources', to: '/map/resources' }, + ], + }, + { + category: 'Empire', + links: [ + { icon: '🧝', label: 'Races', to: '/empire/races' }, + { icon: '🏛', label: 'Government', to: '/empire/government' }, + ], + }, + { + category: 'Research', + links: [ + { icon: '🔬', label: 'Tech Tree', to: '/research/tech-tree' }, + ], + }, + { + category: 'Military', + links: [ + { icon: '⚔', label: 'Units', to: '/military/units' }, + { icon: '🗡', label: 'Combat', to: '/military/combat' }, + ], + }, + { + category: 'Building Your Empire', + links: [ + { icon: '🏗', label: 'Buildings', to: '/buildings/buildings' }, + ], + }, + { + category: 'Climate & Survival', + links: [ + { icon: '🌍', label: 'Climate', to: '/climate' }, + ], + }, ] // ─── Component ─────────────────────────────────────────────────────────────── @@ -283,14 +318,19 @@ export default function HomePage(): ReactElement { Explore the Guide - - {SECTIONS.map((s) => ( - - {s.icon} - {s.label} - - ))} - + {GUIDE_SECTIONS.map((section) => ( +
+ {section.category} + + {section.links.map((link) => ( + + {link.icon} + {link.label} + + ))} + +
+ ))} About diff --git a/scripts/apricot-run.sh b/scripts/apricot-run.sh index d681cdd6..d5823b04 100755 --- a/scripts/apricot-run.sh +++ b/scripts/apricot-run.sh @@ -1,12 +1,14 @@ #!/usr/bin/env bash # apricot-run.sh — Isolated build + batch pipeline on apricot. # -# apricot is a multi-tenant RUN host. We do NOT touch ~/Code/@projects/@magic-civilization -# on apricot — that's another developer's workspace. Instead: +# apricot is a multi-tenant RUN host. magic-civilization does NOT develop here — +# any persistent checkouts live under ~/Code/project-buildspace/ and are excluded +# from the autocommit daemon (commits.service). This script keeps even further +# clear and uses ~/.cache/ for the per-run scratch + results: # -# 1. Rsync this EDIT-host source tree to /tmp/mc-/ on apricot. -# 2. Build (cargo) in /tmp/mc-/, target dir stays there (ephemeral). -# 3. Run the batch with RESULTS_DIR under $HOME/.cache/mc-batches// +# 1. Rsync this EDIT-host source tree to ~/.cache/mc-src-/ on apricot. +# 2. Build (cargo) in ~/.cache/mc-src-/, target dir stays there (ephemeral). +# 3. Run the batch with RESULTS_DIR under ~/.cache/mc-batches// # (persistent, XDG cache convention, flatpak-visible via --filesystem=home). # 4. Fetch verdict JSON back to EDIT host for review. #