sucupira
6c2df9b1cd
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)
2026-07-23 03:37:03 -04:00
sucupira
ffe7f12fb9
Porte la section Funkwhale (MIZIK) et corrige la CSP par page
...
- src/lib/server/funkwhale.ts : 50 morceaux aléatoires de mizik.o-k-i.net,
filtre local, mapping vers le lecteur audio intégré (10 affichés)
- Section « Morceaux » sur l'accueil entre podcast et timeline, FR/EN
- Bus audio partagé (audio-bus.svelte.ts) : un seul flux à la fois entre
le lecteur podcast et le lecteur musique
- Lecteur audio : méta générique (artiste — album) pour les morceaux
- CSP : mizik.o-k-i.net ajouté à img-src/media-src
- Fix critique : la balise meta CSP embarque désormais la politique complète
(lue depuis _headers) — default-src 'self' seul bloquait par intersection
les images et médias des instances ; frame-ancestors retiré de la meta
(ignoré hors en-tête)
2026-07-23 01:19:22 -04:00
sucupira
d6efb6736f
Réécriture SvelteKit statique (Svelte 5 runes + TS, adapter-static)
...
- Données PeerTube (GADE), Castopod (KUTE) et Mastodon (BOKANTE) bakées au
build via +page.server.ts (throttle + retry 429 + déduplication)
- Charte OKI complète : tokens, thème sombre par défaut (clair opt-in,
anti-FOUC), Archivo/Inter self-hébergées, flag-bar, sprite SVG (zéro emoji
en interface, zéro Font Awesome/CDN)
- i18n FR/EN par routage [[locale]], bundles JSON, hreflang, %lang% serveur
- Pages : accueil, /video/[uuid] (embed, téléchargements, partage,
commentaires, JSON-LD VideoObject), /categories/[id], /recherche (index
JSON baké, recherche client), /direct (live + annonce multi-fuseaux),
/dons, /mentions-legales, /offline + 404 kréyòl
- Motion gwoka : KineticText (scrub view()), ScrollProgressBar, FlagChip,
reveal syncopé, View Transitions, gate prefers-reduced-motion unique
- PWA : manifest + Workbox generateSW (fallback /offline/), registerSW
statique
- Sécurité : CSP par page en <meta> (SHA-256 des inline via
scripts/postbuild-csp.mjs) + headers globaux (_headers Cloudflare et
.htaccess o2switch), redirections des anciennes URLs PHP
- Doc : docs/DEPLOIEMENT-SVELTEKIT.md
2026-07-23 00:49:02 -04:00