feat(app): app page at /, mockup gallery moved to /mockups/
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
c11c2ef079
commit
3235df8bea
@@ -12,7 +12,7 @@ shared credits snippet.
|
||||
| Path | Responsibility |
|
||||
|---|---|
|
||||
| `src/server.ts` | `startServer(port, { contentDir? })`: routes `/`, `/mockups/NN-slug/` (+ 302 from the no-slash form), `/content/*` via `src/content/routes.ts`, 404 otherwise. Runs when `import.meta.main`; `PORT` env, default 3000. |
|
||||
| `src/index.html`, `src/index.ts`, `src/index.css` | Index page: static cards linking each mockup, then `mountCredits()`. |
|
||||
| `src/mockups/index.html`, `index.ts`, `index.css` | Mockup gallery at `/mockups/`: static cards linking each mockup, then `mountCredits()`. |
|
||||
| `src/mockups/registry.ts` | `mockups: MockupInfo[]` — slug, number, name, pitch, what to try. |
|
||||
| `src/mockups/NN-slug/` | One design direction: `index.html` (links `../../shared/credits.css`, has `<footer data-fan-credits>`), `main.ts`, `style.css`, plus optional helper modules (e.g. `scene.ts`, `layout.ts`). |
|
||||
| `src/data/types.ts` | `Saga`, `Song`, `Part`, `Motif`, `StoryTime`, `OdysseyRef`, `Video`. |
|
||||
@@ -43,7 +43,7 @@ the site works and `/content/*` answers 404. Otherwise none. Fonts (`@fontsource
|
||||
|
||||
## Invariants
|
||||
- Every page renders `FAN_NOTICE` via `mountCredits()`.
|
||||
- `src/server.ts` routes, `src/mockups/registry.ts` and the cards in `src/index.html` list the same slugs
|
||||
- `src/server.ts` routes, `src/mockups/registry.ts` and the cards in `src/mockups/index.html` list the same slugs
|
||||
(`tests/server.test.ts`).
|
||||
- Every motif id used by a part exists; every motif appears in at least one song (`tests/data.test.ts`).
|
||||
- No two mockups ship byte-identical `style.css` (the build fails otherwise).
|
||||
|
||||
Reference in New Issue
Block a user