251 Commits

Author SHA1 Message Date
sucupira 3c0b094e92 Réécrit le README pour la version SvelteKit
Remplace la documentation PHP par celle de la branche svelte (FR/EN) :
architecture statique et bake au build, fonctionnalités portées (Funkwhale
inclus), référence de src/lib/config.ts, modèle CSP par page, PWA, structure
du projet, prérequis Node + ImageMagick, mesures Lighthouse, déploiement
2026-07-23 08:04:41 -04:00
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 28c2334927 Complète le portage des fonctionnalités du README
- Bloc « À propos » configurable (titre, 2 paragraphes, image légendée)
  + aside hashtags, masqué tant que non défini (ex-MOVEMENT_*)
- JSON-LD CollectionPage (catégories) et BreadcrumbList (vidéo, catégorie)
- Indicateur visuel de perte de connexion (online/offline)
- Verrou maintenance par compte à rebours multi-fuseaux (ex-COUNTDOWN_*) :
  build-time, titre kréyòl, redirection automatique à l'échéance
- browserconfig.xml (tuiles Windows)
2026-07-23 01:05:01 -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
cedric 5b1a78782a docs: add one-command README HTML/PDF export 2026-07-23 05:48:43 +04:00
cedric 3d28d3832f docs: rewrite README as bilingual FR/EN reference 2026-07-23 05:10:04 +04:00
cedric eaacd23702 docs: rebrand fork for ANNU KUTE CED podcast hub 2026-07-23 04:17:49 +04:00
cedric 62d4d99bfb fix: remove COEP header to allow cross-origin embeds 2026-07-08 07:39:09 +04:00
cedric 3e249bbc34 feat: improve security headers and csp nonce handling 2026-07-08 07:33:40 +04:00
cedric 05d01fb7bc fix: prevent stale mastodon instance config from cache 2026-07-08 07:21:48 +04:00
cedric 9a017f5479 typo: bokantaj => bokante 2026-07-08 07:00:59 +04:00
cedric b5985eda06 refactor: fix new images 2025-10-18 18:29:00 +04:00
cedric 6d4cae02c6 refactor: change mobile images 2025-10-18 18:17:20 +04:00
cedric e79af4f11d fix: short error on click 2025-10-18 01:20:04 +04:00
cedric 6ac195b089 feat: permit to play Castopod files 2025-10-17 21:28:14 +04:00
cedric b3ee9d9837 feat: permit to play Funkwhale songs 2025-10-17 21:23:44 +04:00
cedric 95de788114 feat: add Funkwhale integration 2025-10-17 21:10:20 +04:00
cedric 0319fa20c3 feat: add last podcast from castopod 2025-10-17 17:38:16 +04:00
cedric b35dbde8c9 feat: permit display one video in index 2025-10-17 14:23:31 +04:00
cedric 8905d09b48 docs: update README 2025-10-17 12:29:12 +04:00
cedric 50d472a9a4 feat: improve index & change meta informations 2025-10-17 12:29:12 +04:00
cedric 8fa410cfba feat: add pleroma adaptater 2025-10-17 12:29:11 +04:00
cedric 184b3d4893 feat: replace direct element 2025-10-17 12:29:11 +04:00
cedric 444fb4bc26 refactor: remove movement_presentation image 2025-10-17 12:29:11 +04:00
cedric 4b4cffa0f3 feat: hide video count 2025-10-17 12:29:10 +04:00
cedric 2602d4099d feat: remplace kaubuntu by OKI 2025-10-17 12:29:10 +04:00
cedric a5fc9843e3 feat: improve donate page and rename it 2025-10-17 12:29:10 +04:00
cedric 2e4a1c7b41 feat: adapt default config with OKI informations 2025-10-17 12:20:17 +04:00
cedric c9ea3dc1c5 feat: replace kaubuntu by OKI in sample files 2025-10-17 12:19:43 +04:00
cedric a23714c06f feat: replace logos by OKI logos 2025-10-17 12:16:07 +04:00
cedric 66de41b118 docs: update README with requirement & new variable 2025-10-08 20:55:40 +04:00
cedric 4b1452ee79 feat: improve live info style 2025-10-08 20:53:36 +04:00
cedric e4dc8b0e15 config: add more variables in config.local.php.sample 2025-10-08 20:53:09 +04:00
cedric 04a7e4c6eb refactor: use variable DEFAULT_TIMEZONE 2025-10-08 20:52:40 +04:00
cedric f1f056f7f3 fix: adapt carousel control on mobile 2025-10-08 20:50:52 +04:00
cedric b7ccfce43e feat: add next live announcement with multi-timezone display 2025-10-08 17:00:40 +04:00
cedric e6b2b60edc feat: improve shorts style 2025-10-03 08:20:11 +04:00
cedric f68a6e152c fix: change short alignment 2025-10-03 08:06:24 +04:00
cedric 006194fcdb fix: add security exception to allow S3 media 2025-09-29 18:58:14 +04:00
cedric 5bbc6f1c66 feat: add PayPal donation 2025-09-28 20:39:47 +04:00
cedric 1365953b97 feat: improve cache including WordPress 2025-09-28 20:38:51 +04:00
cedric 57e0a0d35f feat: show WordPress posts 2025-09-17 22:30:09 +04:00
cedric 63f947fefc fix: add space to timezone country 2025-09-14 14:38:58 +04:00
cedric 6a25f6b4cd feat: add cache-busting for css files 2025-09-14 14:27:00 +04:00
cedric 3c8d47ed52 fix: handle long text in COUNTDOWN_TIMEZONES 2025-09-14 14:19:33 +04:00
cedric 3301f26b29 feat: upgrade font-awesome to v7 2025-09-14 13:49:57 +04:00
cedric 041494f87e fix: resolve scrolling error on mobile device 2025-09-14 11:33:45 +04:00
cedric 458c5498c0 fix: add hour to cache format 2025-09-14 11:28:43 +04:00
cedric 17b91af2e2 feat: change cache format for SW 2025-09-14 11:19:47 +04:00