Refonte complète en SvelteKit (méthode OKI, AI-Overview ready)

Reconstruit le site statique mono-page (Bulma + htmx + Strapi) en SvelteKit 2 +
Svelte 5 (runes) + TypeScript, 100 % statique (adapter-static), auto-hébergé.

- Contenu enrichi à partir du dossier documentaire sourcé : 28 pages (histoire,
  Mé 67, procès 1968, 9 fiches militants, idéologie, héritage, publications,
  charte, orientation, sources, FAQ, actualités, contact, mentions légales).
- Souveraineté : retrait de Bulma/htmx/mustache/ionicons/Plausible/Google Fonts
  et de l'API Strapi. Polices Archivo/Inter et sprite SVG auto-hébergés (zéro emoji).
- Identité GONG (drapeau vert/blanc/rouge), thème sombre par défaut + clair AA,
  cadences motion gwoka, KineticText, timeline, 404 kréyòl, PWA hors-ligne.
- SEO/AI-Overview : HTML sémantique, JSON-LD (Organization, Person, Event,
  FAQPage, Article...), hreflang, sitemap dynamique, robots/humans.txt.
- Sécurité : CSP hachée + en-têtes (.htaccess o2switch + _headers Cloudflare), HSTS.
- Actualités éditées via Sveltia CMS (git-based) ; Strapi retiré.

npm run build : vert · npm run check : 0 erreur / 0 warning · JS 97 Ko gzip.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
sucupira
2026-07-24 23:57:37 -04:00
co-authored by Claude Opus 4.8
parent b89c1a80b7
commit cd9b9b093c
104 changed files with 14569 additions and 1383 deletions
+165
View File
@@ -0,0 +1,165 @@
<svg xmlns="http://www.w3.org/2000/svg" style="display:none">
<!-- Set GONG — viewBox 24×24, stroke 2px, currentColor, angles nets. -->
<!-- ka : tambour ka — icône maîtresse (404, loader) -->
<symbol id="ka" viewBox="0 0 24 24">
<path d="M5 7l14-3v13" />
<path d="M5 7v10l14 3V17" />
<path d="M5 7l14 10" />
<path d="M5 17l14-10" />
</symbol>
<!-- glo : poing levé géométrique — luttes -->
<symbol id="glo" viewBox="0 0 24 24">
<path d="M7 21v-6h10v6" />
<path d="M7 15V9l3-1 3 1 4 1v5" />
<path d="M10 8V4l1-1 1 1v4" />
</symbol>
<!-- kle : cadenas ouvert — liberté, open-source -->
<symbol id="kle" viewBox="0 0 24 24">
<rect x="5" y="11" width="14" height="9" />
<path d="M8 11V7a4 4 0 0 1 8 0" />
</symbol>
<!-- flag : drapeau -->
<symbol id="flag" viewBox="0 0 24 24">
<path d="M5 21V4" />
<path d="M5 4h13l-2 4 2 4H5" />
</symbol>
<!-- star : étoile 4 branches -->
<symbol id="star" viewBox="0 0 24 24">
<path d="M12 3l2.2 6.8L21 12l-6.8 2.2L12 21l-2.2-6.8L3 12l6.8-2.2z" />
</symbol>
<!-- document : fichier -->
<symbol id="document" viewBox="0 0 24 24">
<path d="M14 3H6v18h12V7z" />
<path d="M14 3v4h4" />
<path d="M9 12h6M9 16h6" />
</symbol>
<!-- download -->
<symbol id="download" viewBox="0 0 24 24">
<path d="M12 3v11" />
<path d="M7 10l5 5 5-5" />
<path d="M4 20h16" />
</symbol>
<!-- mail -->
<symbol id="mail" viewBox="0 0 24 24">
<rect x="3" y="5" width="18" height="14" />
<path d="M3 6l9 7 9-7" />
</symbol>
<!-- arrow-right -->
<symbol id="arrow-right" viewBox="0 0 24 24">
<path d="M4 12h16" />
<path d="M13 5l7 7-7 7" />
</symbol>
<!-- external : lien externe -->
<symbol id="external" viewBox="0 0 24 24">
<path d="M14 4h6v6" />
<path d="M20 4l-9 9" />
<path d="M18 14v5H5V6h5" />
</symbol>
<!-- close -->
<symbol id="close" viewBox="0 0 24 24">
<path d="M6 6l12 12M18 6L6 18" />
</symbol>
<!-- close-circle -->
<symbol id="close-circle" viewBox="0 0 24 24">
<circle cx="12" cy="12" r="9" />
<path d="M9 9l6 6M15 9l-6 6" />
</symbol>
<!-- calendar : date -->
<symbol id="calendar" viewBox="0 0 24 24">
<rect x="4" y="5" width="16" height="16" />
<path d="M4 9h16M8 3v4M16 3v4" />
</symbol>
<!-- clock : chronologie -->
<symbol id="clock" viewBox="0 0 24 24">
<circle cx="12" cy="12" r="9" />
<path d="M12 7v5l3 3" />
</symbol>
<!-- book : publications, sources -->
<symbol id="book" viewBox="0 0 24 24">
<path d="M4 4h9v16H4z" />
<path d="M13 4h7v16h-7" />
<path d="M4 4a3 3 0 0 1 3 3v13" />
</symbol>
<!-- quote -->
<symbol id="quote" viewBox="0 0 24 24">
<path d="M9 6H5v6h4V8H6" />
<path d="M19 6h-4v6h4V8h-3" />
</symbol>
<!-- users : militants -->
<symbol id="users" viewBox="0 0 24 24">
<circle cx="9" cy="8" r="3" />
<path d="M3 20v-1a5 5 0 0 1 10 0v1" />
<path d="M16 6a3 3 0 0 1 0 6" />
<path d="M17 15a5 5 0 0 1 4 4v1" />
</symbol>
<!-- scale : justice, procès -->
<symbol id="scale" viewBox="0 0 24 24">
<path d="M12 3v18" />
<path d="M6 21h12" />
<path d="M4 7h16" />
<path d="M7 3l-3 8h6z" />
<path d="M17 3l3 8h-6z" />
</symbol>
<!-- memory : mémoire, héritage (flamme) -->
<symbol id="memory" viewBox="0 0 24 24">
<path d="M12 3c3 3 5 5 5 9a5 5 0 0 1-10 0c0-2 1-3 2-4 0 2 1 3 2 3-1-3 1-5 1-8z" />
</symbol>
<!-- map-pin : lieu -->
<symbol id="map-pin" viewBox="0 0 24 24">
<path d="M12 21s7-6 7-12a7 7 0 0 0-14 0c0 6 7 12 7 12z" />
<circle cx="12" cy="9" r="2.5" />
</symbol>
<!-- menu -->
<symbol id="menu" viewBox="0 0 24 24">
<path d="M4 7h16M4 12h16M4 17h16" />
</symbol>
<!-- chevron-down -->
<symbol id="chevron-down" viewBox="0 0 24 24">
<path d="M6 9l6 6 6-6" />
</symbol>
<!-- sun -->
<symbol id="sun" viewBox="0 0 24 24">
<circle cx="12" cy="12" r="4" />
<path d="M12 2v2M12 20v2M4 12H2M22 12h-2M5 5l1.5 1.5M17.5 17.5L19 19M19 5l-1.5 1.5M6.5 17.5L5 19" />
</symbol>
<!-- moon -->
<symbol id="moon" viewBox="0 0 24 24">
<path d="M20 14a8 8 0 0 1-10-10 8 8 0 1 0 10 10z" />
</symbol>
<!-- globe : langue -->
<symbol id="globe" viewBox="0 0 24 24">
<circle cx="12" cy="12" r="9" />
<path d="M3 12h18M12 3c3 3 3 15 0 18M12 3c-3 3-3 15 0 18" />
</symbol>
<!-- video : PeerTube -->
<symbol id="video" viewBox="0 0 24 24">
<rect x="3" y="6" width="12" height="12" />
<path d="M15 10l6-3v10l-6-3z" />
</symbol>
</svg>

After

Width:  |  Height:  |  Size: 4.3 KiB