Optimise les images distantes au build et fiabilise la QA

- scripts/fetch-podcast-cover.mjs : pochettes Castopod (flux + épisodes)
  téléchargées et converties en WebP 512px au prebuild (2,3 Mo → 59 Ko)
- scripts/optimize-remote-images.mjs : vignettes PeerTube (640px), avatars
  (96px) et médias Mastodon (800px) optimisés en WebP + mapping
  src/lib/server/image-map.json consommé par mapImage()
- a11y : liens footer soulignés dans les paragraphes, cibles tactiles ≥24px
  sur les liens des posts Mastodon
- image-map.ts : import JSON statique (le createRequire pointait sur le bundle)
- doc : étape prebuild documentée (dépendance ImageMagick)

Lighthouse mobile : 97/100/100/100 — LCP 2,4s, TBT 50ms, CLS 0,
poids accueil 900 Ko (budgets du playbook respectés)
This commit is contained in:
sucupira
2026-07-23 03:37:03 -04:00
parent ffe7f12fb9
commit 6c2df9b1cd
73 changed files with 286 additions and 6 deletions
+3 -1
View File
@@ -6,7 +6,9 @@ Branche `svelte` : le hub est un site **100 % statique** (SvelteKit + adapter-st
```bash
npm ci
npm run build # génère build/ + injecte la CSP par page (scripts/postbuild-csp.mjs)
npm run build # prebuild : optimise les pochettes Castopod (scripts/fetch-podcast-cover.mjs,
# nécessite ImageMagick) et les vignettes/médias distants (scripts/optimize-remote-images.mjs)
# puis génère build/ + injecte la CSP par page (scripts/postbuild-csp.mjs)
npm run preview # vérification locale
```