feat(landing): rename crew to "El valle" + source downloads from launcher.json
Rename all "crew" mentions (en/es/eu) to the untranslated proper name "El valle" across hero, members, and features copy in i18n/ui.ts. Rewire the homepage launcher download list to the custom-launcher build output launcher.json (productName/version/files[]) instead of the never-produced launcher-manifest.json shape. site.ts now reads launcher.json and normalizes files[] -> internal builds[]; launcher.example.json is the committed fallback. Drop the stale launcher-manifest.example/schema, update .gitignore and docs (CLAUDE.md, plan/18). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -35,14 +35,16 @@ authlib step.
|
||||
your credentials. (No authlib URL — launcher is preconfigured.)
|
||||
3. **Join the server** — launch, connect to `site.serverAddress` (IP copy chip).
|
||||
|
||||
**Launcher manifest (delivery = synced local file, option B):**
|
||||
- Contract: `landing/src/data/launcher-manifest.schema.json` (already written;
|
||||
JSON-Schema draft 2020-12).
|
||||
- The `custom-launcher` release flow **produces** `launcher-manifest.json` and syncs
|
||||
it into `landing/src/data/launcher-manifest.json` (gitignored, generated), same
|
||||
pattern as `sync-server-mods.sh`.
|
||||
- Landing **imports** it at build → renders per-OS buttons from `builds[]`. Missing
|
||||
file → hide the buttons (build must not fail).
|
||||
**Launcher list (delivery = synced local file, option B):**
|
||||
- Source of truth: the `custom-launcher` build output `launcher.json` (shape
|
||||
`productName/version/baseUrl/files[]`, each file `{name,os,arch,ext,size,url}`),
|
||||
published to `https://distribution.${BASE}/launcher/launcher.json`.
|
||||
- The release flow syncs it into `landing/src/data/launcher.json` (gitignored,
|
||||
generated), same pattern as `sync-server-mods.sh`. `launcher.example.json`
|
||||
committed as the documented fallback shape.
|
||||
- Landing reads it at build (`site.ts` `loadLauncherManifest`), normalizes
|
||||
`files[]` → internal `builds[]`, renders per-OS buttons. Missing file → hide
|
||||
the buttons (build must not fail).
|
||||
|
||||
**Fjord — alternative path, OWN page, off the homepage:** new `/fjord` (+ `/es`,
|
||||
`/eu`). Download Fjord (existing `/launcher/` mirror), add authlib-injector account
|
||||
@@ -174,7 +176,7 @@ Tasks:
|
||||
- [ ] `site.ts`: feed `stats[0]` count from `mods.json`.
|
||||
- [ ] Run the generator pre-`pnpm build`; document in `12-build-order.md` /
|
||||
`14-deploy.md`. `.gitignore`: `landing/src/data/mods.json`,
|
||||
`landing/src/data/launcher-manifest.json`, `landing/src/data/players.json` (if
|
||||
`landing/src/data/launcher.json`, `landing/src/data/players.json` (if
|
||||
any baked), `landing/public/mod-logos/`.
|
||||
|
||||
---
|
||||
@@ -182,7 +184,7 @@ Tasks:
|
||||
## Verification (whole rework)
|
||||
|
||||
- **Build:** `cd landing && set -a && . ../.env && set +a && pnpm run build` then
|
||||
`pnpm check`. Must pass offline even if `launcher-manifest.json` / `mods.json` are
|
||||
`pnpm check`. Must pass offline even if `launcher.json` / `mods.json` are
|
||||
absent (buttons/list hidden).
|
||||
- `grep -ri packwiz landing/` → no live join references remain (Fjord page may mention
|
||||
its own import).
|
||||
@@ -201,4 +203,5 @@ Tasks:
|
||||
- `15-mc-status.md` — the mc-status service (now also serves the roster).
|
||||
- `16-landing-registration.md` — the browser-direct Drasl pattern WS4 reuses.
|
||||
- `17-mod-shortlist.md` — the mod gap doc + the `mods.json` dataset.
|
||||
- `landing/src/data/launcher-manifest.schema.json` — the launcher manifest contract.
|
||||
- `launcher.json` — the `custom-launcher` build output (download list); landing
|
||||
syncs it to `landing/src/data/launcher.json`, `launcher.example.json` committed.
|
||||
|
||||
Reference in New Issue
Block a user