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
+184
View File
@@ -0,0 +1,184 @@
<script lang="ts">
import Seo from '$lib/components/Seo.svelte';
import Breadcrumb from '$lib/components/Breadcrumb.svelte';
import Resume from '$lib/components/Resume.svelte';
import SectionTitle from '$lib/components/SectionTitle.svelte';
import { reveal } from '$lib/motion/reveal';
import { webPage } from '$lib/seo';
import { ideologie as id } from '$lib/data/gong';
const crumbs = [
{ name: 'Accueil', path: '/' },
{ name: 'Idéologie', path: '/ideologie/' }
];
</script>
<Seo
title="L'idéologie du GONG"
description="Marxisme-léninisme d'inspiration maoïste, tiers-mondisme et anticolonialisme : les influences (Fanon, Guevara, Nkrumah, Mao…), les objectifs et l'évolution des mots d'ordre du GONG de 1960 à 1967."
path="/ideologie/"
type="article"
graph={[webPage('/ideologie/', 'Idéologie du GONG', 'Marxisme-léninisme, tiers-mondisme et lutte de libération nationale.')]}
breadcrumb={crumbs}
/>
<main id="contenu" class="section">
<div class="container">
<Breadcrumb items={crumbs} />
<h1>Idéologie</h1>
<div class="lecture">
<Resume
lead="Le GONG se réclamait du marxisme-léninisme d'inspiration maoïste, du tiers-mondisme et de l'anticolonialisme. Il voulait conduire la Guadeloupe à l'indépendance nationale puis à une révolution socialiste."
points={[
'Courant : marxisme-léninisme (tendance maoïste), tiers-mondisme.',
'Influences : Marx, Lénine, Fanon, Guevara, Nkrumah, Castro, Mao.',
'Objectif central : lindépendance nationale de la Guadeloupe.',
'Mot dordre de 1967 : « Briser les urnes colonialistes ».'
]}
/>
</div>
<section class="section--tight">
<SectionTitle title="Un courant révolutionnaire" as="h2" id="courant" />
<div class="lecture prose">
<p><strong>{id.courantPrincipal}.</strong></p>
<p>{id.autoDefinition}</p>
<p>{id.programmeExtrait}</p>
</div>
</section>
<section class="section--tight">
<SectionTitle title="Les influences" as="h2" id="influences" />
<ul class="influences">
{#each id.influences as inf, i (inf.penseur)}
<li class="card" use:reveal={i}>
<h3>{inf.penseur}</h3>
<p>{inf.apport}</p>
</li>
{/each}
</ul>
</section>
<section class="section--tight">
<SectionTitle title="Les objectifs" as="h2" id="objectifs" />
<ol class="objectifs lecture">
{#each id.objectifs as o (o)}
<li>{o}</li>
{/each}
</ol>
</section>
<section class="section--tight">
<SectionTitle title="L'évolution des mots d'ordre (1960-1967)" as="h2" id="mots-ordre" />
<p class="lecture muted">
En sept ans, le mot d'ordre passe de l'autonomie à l'indépendance, puis à l'appel
révolutionnaire de 1967.
</p>
<ol class="evolution">
{#each id.evolutionMotsOrdre as e, i (e.periode)}
<li class="evo" use:reveal={i}>
<span class="evo__periode">{e.periode}</span>
<span class="evo__mot">« {e.motOrdre} »</span>
<span class="evo__ctx">{e.contexte}</span>
</li>
{/each}
</ol>
</section>
<p class="src lecture">Sources : {id.source}.</p>
<nav class="suite" aria-label="Poursuivre la lecture">
<a class="btn btn--ghost" href="/charte/">La charte de 1963 →</a>
<a class="btn btn--ghost" href="/orientation/">Orientation & stratégie →</a>
<a class="btn btn--ghost" href="/publications/">Les publications →</a>
</nav>
</div>
</main>
<style>
.influences {
list-style: none;
margin: 0;
padding: 0;
display: grid;
grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
gap: var(--space-2);
}
.influences h3 {
font-size: 1.05rem;
text-transform: none;
margin: 0 0 0.3rem;
}
.influences p {
color: var(--muted);
margin: 0;
font-size: 0.95rem;
}
.objectifs {
max-width: var(--container-lecture);
display: grid;
gap: 0.5rem;
padding-left: 1.2rem;
}
.objectifs li {
color: var(--creme);
}
.evolution {
list-style: none;
margin: 0;
padding: 0;
display: grid;
gap: var(--space-2);
}
.evo {
display: grid;
grid-template-columns: 140px 1fr;
gap: 0.4rem var(--space-2);
background: var(--card-bg);
border: 1px solid var(--line);
border-left: 4px solid var(--accent);
border-radius: var(--radius-md);
padding: var(--space-2) var(--space-3);
}
.evo__periode {
font-family: var(--font-display);
font-weight: 800;
color: var(--accent);
grid-row: span 2;
}
.evo__mot {
font-weight: 700;
color: var(--creme);
}
.evo__ctx {
grid-column: 2;
color: var(--muted);
font-size: 0.92rem;
}
.muted {
color: var(--muted);
}
.src {
color: var(--muted-fort);
font-size: 0.85rem;
margin-top: var(--space-3);
}
.suite {
display: flex;
gap: 0.6rem;
flex-wrap: wrap;
margin-top: var(--space-4);
}
@media (max-width: 560px) {
.evo {
grid-template-columns: 1fr;
}
.evo__periode {
grid-row: auto;
}
.evo__ctx {
grid-column: 1;
}
}
</style>