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>
@@ -67,3 +67,15 @@ $RECYCLE.BIN/
|
|||||||
# Windows shortcuts
|
# Windows shortcuts
|
||||||
*.lnk
|
*.lnk
|
||||||
|
|
||||||
|
|
||||||
|
# ---> SvelteKit
|
||||||
|
node_modules/
|
||||||
|
/build/
|
||||||
|
/.svelte-kit/
|
||||||
|
/package/
|
||||||
|
.env
|
||||||
|
.env.*
|
||||||
|
!.env.example
|
||||||
|
vite.config.js.timestamp-*
|
||||||
|
vite.config.ts.timestamp-*
|
||||||
|
dev-dist/
|
||||||
|
|||||||
@@ -0,0 +1,68 @@
|
|||||||
|
# Déploiement — gong.gp (SvelteKit statique)
|
||||||
|
|
||||||
|
Site **100 % statique** (SvelteKit + `adapter-static`, tout pré-rendu). Aucun serveur Node
|
||||||
|
n'est requis en production. Doctrine : **souveraineté** — zéro service tiers, tout auto-hébergé.
|
||||||
|
|
||||||
|
## Build
|
||||||
|
|
||||||
|
```bash
|
||||||
|
npm install
|
||||||
|
npm run build # → dossier build/
|
||||||
|
npm run preview # prévisualisation locale
|
||||||
|
```
|
||||||
|
|
||||||
|
Le dossier `build/` contient le site complet (HTML pré-rendu, `_app/`, `fonts/`, `images/`,
|
||||||
|
`sitemap.xml`, `sw.js`, `manifest.webmanifest`, `.htaccess`, `_headers`, `404.html`).
|
||||||
|
|
||||||
|
## Hébergement
|
||||||
|
|
||||||
|
### Option A — o2switch / Apache (mutualisé)
|
||||||
|
Copier le contenu de `build/` à la racine web. Le `.htaccess` fourni gère : HTTPS forcé,
|
||||||
|
en-têtes de sécurité, cache immuable, `ErrorDocument 404 /404.html`. Vérifier que
|
||||||
|
`mod_headers`, `mod_rewrite`, `mod_expires`, `mod_deflate` sont actifs.
|
||||||
|
|
||||||
|
### Option B — Cloudflare Pages
|
||||||
|
Build command : `npm run build` · Output directory : `build`. Le fichier `_headers` applique
|
||||||
|
les en-têtes de sécurité et le CSP d'en-tête.
|
||||||
|
|
||||||
|
Dans les deux cas, le CSP `script-src`/`style-src` est porté par la balise `<meta>` **hachée**
|
||||||
|
générée par SvelteKit (`kit.csp`) ; les `_headers`/`.htaccess` n'ajoutent que les directives
|
||||||
|
d'en-tête (`frame-ancestors`, HSTS…).
|
||||||
|
|
||||||
|
## Administration des actualités — Sveltia CMS
|
||||||
|
|
||||||
|
L'admin est servie à `/admin/` (bundle Sveltia **auto-hébergé**, `static/admin/sveltia-cms.js`).
|
||||||
|
Elle édite les fichiers `content/actualites/*.md` directement dans le dépôt Git (backend Gitea).
|
||||||
|
|
||||||
|
**Configuration unique (à faire côté forge Gitea `labola.o-k-i.net`) :**
|
||||||
|
1. Créer une application OAuth2 : *Paramètres → Applications → Nouvelle application OAuth2*.
|
||||||
|
- URL de redirection : `https://gong.gp/admin/`
|
||||||
|
2. Reporter le *Client ID* dans `static/admin/config.yml` → `backend.app_id`.
|
||||||
|
3. Vérifier `backend.branch` = branche déployée en production.
|
||||||
|
|
||||||
|
Chaque publication depuis l'admin crée un commit ; un nouveau build/déploiement régénère le site.
|
||||||
|
Le bundle Sveltia a été vendorisé depuis le paquet npm `@sveltia/cms` (mise à jour : recopier
|
||||||
|
`node_modules/@sveltia/cms/dist/sveltia-cms.js` dans `static/admin/`).
|
||||||
|
|
||||||
|
## Retrait de Strapi (api.gong.gp)
|
||||||
|
|
||||||
|
Le back-office Strapi (serveur Node + SQLite) **n'est plus utilisé** : les actualités passent par
|
||||||
|
Sveltia (git-based) et le contenu historique est figé dans le dépôt (`src/lib/data/gong.ts`).
|
||||||
|
Le dépôt `api.gong.gp` peut être archivé. Les éventuels articles Strapi existants sont à
|
||||||
|
ré-exporter manuellement en `content/actualites/*.md` (front-matter : `titre`, `date`, `chapeau`,
|
||||||
|
`couverture`, `couvertureAlt`, `top` + corps markdown).
|
||||||
|
|
||||||
|
## Push sur la forge (labola.o-k-i.net)
|
||||||
|
|
||||||
|
Voir le mémo `GITEA.md` de l'écosystème OKI. En résumé :
|
||||||
|
```bash
|
||||||
|
git push origin svelte # branche de travail
|
||||||
|
# après validation, fusionner dans la branche de production
|
||||||
|
```
|
||||||
|
|
||||||
|
## Vérifications avant mise en ligne (DoD)
|
||||||
|
|
||||||
|
- `npm run build && npm run check` : 0 erreur, 0 warning.
|
||||||
|
- Aucun domaine tiers dans `build/` (`grep -rE 'cdnjs|jsdelivr|plausible|googleapis|api.gong'`).
|
||||||
|
- `sitemap.xml` et `robots.txt` accessibles ; JSON-LD présents (Rich Results Test).
|
||||||
|
- Lighthouse mobile ≥ 90/95/95/95.
|
||||||
@@ -1,3 +1,40 @@
|
|||||||
# gong.gp
|
# gong.gp
|
||||||
|
|
||||||
Groupe d'Organisation Nationale de la Guadeloupe
|
**GONG — Groupe d'Organisation Nationale de la Guadeloupe** (1963-1968).
|
||||||
|
|
||||||
|
Site documentaire sourcé sur le mouvement indépendantiste guadeloupéen : histoire, Mé 67,
|
||||||
|
procès de 1968, militants, idéologie, héritage. Reconstruit en **SvelteKit 2 + Svelte 5 (runes)
|
||||||
|
+ TypeScript**, 100 % statique et auto-hébergé (souveraineté numérique, zéro service tiers).
|
||||||
|
|
||||||
|
## Stack
|
||||||
|
|
||||||
|
- SvelteKit 2 · Svelte 5 (runes) · TypeScript strict · `@sveltejs/adapter-static` (prerender intégral)
|
||||||
|
- Polices Archivo/Inter auto-hébergées · sprite SVG maison (zéro emoji)
|
||||||
|
- PWA légère (`vite-plugin-pwa`) · CSP hachée · en-têtes de sécurité (`.htaccess` + `_headers`)
|
||||||
|
- SEO / AI-Overview : HTML sémantique, JSON-LD (Organization, Person, Event, FAQPage, Article…),
|
||||||
|
hreflang, sitemap dynamique
|
||||||
|
- Actualités éditées via **Sveltia CMS** (git-based, `content/actualites/*.md`)
|
||||||
|
|
||||||
|
## Développement
|
||||||
|
|
||||||
|
```bash
|
||||||
|
npm install
|
||||||
|
npm run dev # serveur de dev
|
||||||
|
npm run check # vérification TypeScript / Svelte
|
||||||
|
npm run build # build statique → build/
|
||||||
|
npm run preview # prévisualisation du build
|
||||||
|
```
|
||||||
|
|
||||||
|
## Contenu
|
||||||
|
|
||||||
|
- `src/lib/data/gong.ts` — dossier documentaire sourcé (figé).
|
||||||
|
- `content/documents/*.md` — charte 1963, orientation & stratégie, mentions légales.
|
||||||
|
- `content/actualites/*.md` — actualités (éditées via `/admin`).
|
||||||
|
|
||||||
|
## Déploiement
|
||||||
|
|
||||||
|
Voir [`DEPLOIEMENT.md`](./DEPLOIEMENT.md).
|
||||||
|
|
||||||
|
## Licence
|
||||||
|
|
||||||
|
AGPL-3.0. En hommage à Pierre Sainton (1924-2018) et à toutes les victimes de Mé 67.
|
||||||
|
|||||||
@@ -0,0 +1,20 @@
|
|||||||
|
---
|
||||||
|
titre: "Mé 67 : se souvenir, pour ne pas oublier"
|
||||||
|
date: "2026-05-26"
|
||||||
|
chapeau: "Chaque 26 mai, la Guadeloupe se souvient des tueries de mai 1967. Retour sur une mémoire longtemps occultée."
|
||||||
|
couverture: ""
|
||||||
|
couvertureAlt: "Commémoration des événements de mai 1967 en Guadeloupe"
|
||||||
|
top: "true"
|
||||||
|
---
|
||||||
|
|
||||||
|
Le **26 mai 1967**, une grève des ouvriers du bâtiment pour une augmentation de salaire de 2,5 % dégénère à Pointe-à-Pitre. Les forces de l'ordre tirent à balles réelles sur les manifestants. **Jacques Nestor**, militant du GONG âgé de 26 ans, est la première victime, abattu vers 15h30 sur la place de la Victoire.
|
||||||
|
|
||||||
|
Les jours suivants, la répression se généralise. Le bilan officiel fait état de **7 à 8 morts**. Les historiens estiment le nombre réel de victimes — morts, blessés et disparus — entre **80 et 200**.
|
||||||
|
|
||||||
|
## Une vérité longtemps enfouie
|
||||||
|
|
||||||
|
Pendant des décennies, ces événements sont restés dans l'ombre. Ce n'est qu'en **avril 2016** que le rapport du commissaire Gévaudan, rédigé en avril 1967, a été déclassifié. Ce document démontrait pourtant, dès l'époque, l'absence de responsabilité directe du GONG dans le déclenchement des émeutes.
|
||||||
|
|
||||||
|
Aujourd'hui, le **26 mai** est devenu une date de commémoration. La stèle de Delgrès au Matouba reste un lieu de mémoire lié à l'histoire du mouvement.
|
||||||
|
|
||||||
|
> « Les générations futures se doivent de continuer le combat [...] de telle sorte qu'un jour notre pays et les Guadeloupéens soient libérés des ventouses tentaculaires et séculaires qu'est le colonialisme français. » — Serge Glaude, co-fondateur du GONG
|
||||||
@@ -0,0 +1,155 @@
|
|||||||
|
Ces dernières années écoulées ont vu l'effondrement quasi général du système colonial dans le monde. Avec l'accession de l'Algérie à l'indépendance, après la libération des pays de l'Afrique Noire, l'empire colonial français s'est presque évanoui.
|
||||||
|
|
||||||
|
Tout près de la Guadeloupe, le renversement de la dictature sanglante de Batista par le glorieux peuple cubain, la transformation de Cuba en un état libre et socialiste, l'accession des Antilles sous domination britannique à l'autonomie et à l'indépendance a ouvert la voie au mouvement de décolonisation au sein même de la Caraïbe.
|
||||||
|
|
||||||
|
Les ex-colonies, fortes de leur dignité et de leur souveraineté retrouvées, sont entrées avec enthousiasme dans la voie de leur développement économique et social, bénéficiant de l'aide des autres états plus développés ou des organismes internationaux. Ces nouveaux États jouent sur le plan international un rôle dont l'importance n'échappe à personne.
|
||||||
|
|
||||||
|
Cependant, la Guadeloupe, ainsi que les quatre autres « départements d'Outre-mer », continue à subir le joug colonial français.
|
||||||
|
|
||||||
|
Les adaptations successives apportées à la politique dite d'assimilation ne peuvent plus masquer cette évidence. C'est pourquoi, le colonialisme français, dans un dernier sursaut de nostalgie, essaie de tout mettre en œuvre pour conserver ce dernier carré de la colonisation.
|
||||||
|
|
||||||
|
Malgré tout, il s'est développé durant ces dernières années, un véritable courant pour l'autonomie dans tous les milieux guadeloupéens. Mais ce courant n'a pu jusqu'à présent constituer une force organisée capable de briser le joug colonialiste.
|
||||||
|
|
||||||
|
Les faiblesses du mouvement autonomiste sur le plan pratique résultent du fait que l'élite politique n'a pas été capable de s'unir pour offrir des perspectives claires et nettes au peuple, que les partis politiques existants n'ont pas su toujours se dégager de la gangue électoraliste et des habitudes importées par la domination française et envisager hardiment l'avenir et enfin parce que le travail systématique et nécessaire d'éducation et d'organisation des masses n'a pas été convenablement fait. Tout cela s'explique par le fait que la question de la libération politique de la Guadeloupe ne s'est jamais posée comme une lutte évolutive de libération nationale.
|
||||||
|
|
||||||
|
L'analyse objective de toutes ces considérations eut au cours des deux années écoulées pour conséquence d'insuffler aux différents courants autonomistes qui sporadiquement se manifestaient dans la capitale française un enthousiasme nouveau, générateur d'objectifs bien définis et de moyens de lutte inédits. Ce fut donc dans l'euphorie générale que naquit ce qu'il était convenu d'appeler le Front Antillo-Guyanais. Cependant l'objectivité nous commande d'affirmer que, l'impossibilité pour cette organisation de se relever d'une part, à la suite de la mesure de dissolution qui la frappait et de se développer d'autre part, découle de l'esprit de clocher voisin de l'autoritarisme qui présidait aux décisions essentielles, d'un manque de structuration organique, et enfin de divergences idéologiques sur la conception même du devenir respectif des pays intéressés.
|
||||||
|
|
||||||
|
Si les tâtonnements et les indécisions étaient inévitables en fonction même des conditions dans lesquelles le problème de l'autonomie se trouvait et se trouve encore posé leur perpétuation pourrait, à très brève échéance, plonger la Guadeloupe dans les plus terribles calamités.
|
||||||
|
|
||||||
|
Déjà la détérioration cumulative de la situation en Guadeloupe pose de façon non équivoque l'urgence de la mise en place des solutions adéquates. Elle pose en même temps et dramatiquement la nécessité d'une mobilisation générale de tous les Guadeloupéens pour la prise en main du destin de leur pays.
|
||||||
|
|
||||||
|
C'est pour toutes ces raisons, et profondément pénétrés du rôle qu'il leur appartient de jouer dans l'évolution de la Guadeloupe, qu'un certain nombre de Guadeloupéens, pour la plupart :
|
||||||
|
|
||||||
|
- Jeunes intellectuels en début de carrière ;
|
||||||
|
- Étudiants en fin d'études ;
|
||||||
|
- Travailleurs, ont décidé de créer une organisation en vue de tout mettre en œuvre pour :
|
||||||
|
- Réaliser la révolution politique, économique et sociale en Guadeloupe ;
|
||||||
|
- Construire une Guadeloupe nouvelle, souveraine et heureuse. Cette organisation prendra la dénomination de Groupe d'organisation nationale de la Guadeloupe (G.O.N.G.) (…)
|
||||||
|
|
||||||
|
## 1. Le droit du peuple guadeloupéen à disposer de lui-même
|
||||||
|
|
||||||
|
Le droit à l'autodétermination est un droit inaliénable et imprescriptible reconnu à tous les peuples et expressément notifié par la Charte des Nations unies. Les Guadeloupéens constituent un peuple majeur différent du peuple français. Communauté stable d'hommes avec un territoire propre, une histoire propre, une culture, une formation psychique, une langue (en dehors du français), une mentalité, des intérêts économiques, des mœurs, des besoins et des aspirations fondamentaux propres, ils constituent aujourd'hui une nation en pleine gestation certes, mais dont les composantes sont suffisamment nettes pour qu'elle revendique tous ses droits.
|
||||||
|
|
||||||
|
Il ne peut s'agir ici d'une minorité nationale pouvant s'intégrer à un ensemble national (français) plus grand. Il n'y a ici rien de comparable avec les exigences propres aux minorités nationales telles qu'on les rencontre en Corse, en Alsace, ou en Bretagne par exemple.
|
||||||
|
|
||||||
|
## 2. La Guadeloupe a le droit à la pleine souveraineté nationale
|
||||||
|
|
||||||
|
C'est un principe constant sur lequel on ne saurait transiger quand bien même le peuple guadeloupéen consentirait à hiérarchiser les étapes par lesquelles inéluctablement il atteindrait son objectif final.
|
||||||
|
|
||||||
|
Cette revendication du reste, bien que reflétant forcément les conditions objectives et subjectives qui la déterminent à un moment donné, s'inscrit en conséquence dans un cadre national.
|
||||||
|
|
||||||
|
La lutte du peuple guadeloupéen pour le triomphe de ses aspirations est par conséquent une lutte à caractère national pour la raison même que ces aspirations sont le reflet d'un désir encore plus ou moins conscient de libération du joug oppresseur.
|
||||||
|
|
||||||
|
## 3. La lutte pour ce droit est une lutte juste
|
||||||
|
|
||||||
|
Elle s'inscrit dans le grand courant de décolonisation qui constitue l'événement historique fondamental de notre époque.
|
||||||
|
|
||||||
|
Des conditions favorables existent aujourd'hui pour engager et mener à bien une telle lutte. Elles sont à la fois externes et internes.
|
||||||
|
|
||||||
|
**I. Externes.** La désagrégation générale du système colonial depuis la fin de la Deuxième Guerre mondiale fait qu'aujourd'hui les plus petits pays encore colonisés ont le droit de prétendre eux aussi rejeter le joug colonial.
|
||||||
|
|
||||||
|
- La condamnation ferme de l'O.N.U. du colonialisme et sa résolution tendant à la libération de tous les pays colonisés dans le courant de 1963.
|
||||||
|
- L'accession du Tiers Monde à la souveraineté nationale et internationale.
|
||||||
|
- L'existence du camp socialiste qui groupe plus du tiers de la population du globe et qui milite en faveur de l'émancipation des peuples sous tutelle.
|
||||||
|
|
||||||
|
Enfin l'accession récente de l'Algérie (naguère « départements français ») à l'indépendance de même que la transformation politique opérée dans les Antilles britanniques et la marche triomphante de la révolution cubaine en dépit de tous les mauvais coups de ses adversaires impérialistes, sont de nature à hâter l'évolution politique en Guadeloupe.
|
||||||
|
|
||||||
|
**II. Internes.** Ces conditions sont à la fois objectives et subjectives.
|
||||||
|
|
||||||
|
La preuve est faite que le système d'appartenance à la France ne saurait résoudre les problèmes spécifiques de la Guadeloupe car il existe un antagonisme fondamental entre les intérêts des travailleurs et consommateurs guadeloupéens d'une part et les intérêts des trusts monopolistes français d'autre part qui détiennent à la fois, la terre, les moyens de production et de transport, le commerce et l'administration. Il est de plus en plus acquis dans les plus larges couches que les problèmes guadeloupéens ne peuvent être résolus que par la prise en main par le peuple guadeloupéen de tous les leviers de commande de la vie politique, économique et sociale ; la lutte des travailleurs est indissolublement liée à la lutte pour la souveraineté nationale ; ces deux objectifs forment naturellement un tout qu'il est impossible de dissocier.
|
||||||
|
|
||||||
|
- Le cheminement progressif de l'idée autonomiste au sein des masses laborieuses.
|
||||||
|
- Le désintéressement significatif du peuple guadeloupéen pour tout ce qui concerne la politique française, marqué notamment par un absentéisme important des électeurs lors du dernier référendum et des élections législatives (près de 60 % d'abstention en dépit du bourrage massif et frauduleux des urnes organisé sous le patronage officiel).
|
||||||
|
- Enfin le fait le plus déterminant est encore l'engagement total de la jeunesse quelle que soit son origine sociale, et singulièrement de la grande masse des étudiants dans la lutte pour l'émancipation politique.
|
||||||
|
|
||||||
|
## 4. Nécessité d'une lutte révolutionnaire
|
||||||
|
|
||||||
|
La revendication du peuple guadeloupéen est une revendication nationale. Elle vise avant tout à transformer l'état de choses existant dans ce qu'il a de plus fondamental et de plus essentiel. Il s'agit de transformer radicalement la Guadeloupe, de créer une Guadeloupe libre et socialiste conformément aux exigences de notre temps, aux aspirations et aux besoins les plus impératifs de notre peuple.
|
||||||
|
|
||||||
|
La politique d'adaptation ou de réformes qui ne touchent pas aux structures en place débouche fatalement sur une impasse. Elle relève de la démagogie.
|
||||||
|
|
||||||
|
C'est donc une véritable révolution qu'il faut réaliser en Guadeloupe. (…)
|
||||||
|
|
||||||
|
## 6. Les objectifs de la révolution
|
||||||
|
|
||||||
|
Il résulte de l'analyse faite plus haut que la Révolution doit amener nécessairement la Guadeloupe à la pleine souveraineté.
|
||||||
|
|
||||||
|
Le mot d'ordre d'autonomie a constitué une étape nécessaire dans le processus de libération idéologique de la Guadeloupe. S'il a tenu compte des conditions subjectives liées d'une part aux difficultés de poser de façon concrète le problème, à un certain complexe sur les possibilités d'avenir d'une Guadeloupe totalement émancipée et, d'autre part, à certains sentiments d'attachement pour la France, aujourd'hui ce mot d'ordre paraît insuffisant ou insuffisamment explicité en raison du fait même que l'idée a largement pénétré dans les masses et que, pris en lui-même, le mot d'autonomie couvre un champ trop vaste d'interprétations.
|
||||||
|
|
||||||
|
Pour répondre aux aspirations de notre peuple et apporter des solutions conformes aux exigences de notre temps, la Révolution devra nécessairement déboucher sur un régime de démocratie.
|
||||||
|
|
||||||
|
Tout cela implique donc deux impératifs fondamentaux de la Révolution :
|
||||||
|
|
||||||
|
1. Accession de la Guadeloupe à la pleine souveraineté ;
|
||||||
|
2. Établissement en Guadeloupe d'un régime de démocratie populaire.
|
||||||
|
|
||||||
|
### La pleine souveraineté nationale
|
||||||
|
|
||||||
|
La lutte révolutionnaire a pour objectif de soustraire la Guadeloupe à la tutelle coloniale et à toute tutelle étrangère. Les Guadeloupéens veulent construire leur destin à l'exemple de tous les autres peuples et non subir un destin qu'on leur impose ; cela implique l'édification de la Guadeloupe en un état souverain dirigé par :
|
||||||
|
|
||||||
|
1. Une assemblée législative élue par le peuple ;
|
||||||
|
2. Un gouvernement révolutionnaire appuyé sur le peuple et contrôlé par lui.
|
||||||
|
|
||||||
|
Ces deux pouvoirs détenant les attributs de la souveraineté nationale.
|
||||||
|
|
||||||
|
### Rapports avec la France
|
||||||
|
|
||||||
|
La destruction des structures coloniales, l'accession à la pleine souveraineté, signifient l'établissement de nouveaux rapports entre l'ancienne métropole et la Guadeloupe. Seule l'issue de la lutte déterminera le caractère de ces nouveaux rapports.
|
||||||
|
|
||||||
|
### La Guadeloupe dans la Caraïbe
|
||||||
|
|
||||||
|
La Guadeloupe, de par sa situation même, est à vocation caraïbe. Le peuple, dans sa grande majorité, est sensible à tout ce qui se passe dans la Caraïbe et dans l'Amérique latine ; les progrès de la révolution cubaine sont suivis avec un intérêt croissant par les masses laborieuses. C'est la conjonction des divers colonialismes français, britannique, hollandais, espagnol et américain qui a dressé l'artificielle barrière qui existe entre les différents peuples de la Caraïbe.
|
||||||
|
|
||||||
|
Une des tâches essentielles de la Révolution sera de combattre cette barrière et de faciliter le rapprochement entre les différents pays de la Caraïbe.
|
||||||
|
|
||||||
|
À l'égard de nos frères de la Martinique et de la Guyane, la Révolution adoptera une attitude de solidarité agissante et fera tout pour faciliter le mouvement vers l'unité.
|
||||||
|
|
||||||
|
En dépit des spécificités propres à chacun des pays, de nombreuses raisons rapprochent ces trois pays et singulièrement la Guadeloupe et la Martinique :
|
||||||
|
|
||||||
|
- **Dans l'immédiat :** une solidarité étroite dans la lutte, une entente conjointe sur les objectifs ainsi qu'une coordination d'action ne pourront que renforcer le mouvement d'émancipation dans ces pays et hâter le moment de leur libération ;
|
||||||
|
- **Pour l'avenir :** une coopération étroite de ces pays dans tous les domaines, politique, économique, culturel, ne pourra que consolider le devenir respectif de chacun d'eux et faciliter leur édification en États modernes.
|
||||||
|
|
||||||
|
En tout état de cause, la construction en commun, l'établissement de liens organiques entre ces pays ne peuvent être possibles et efficaces que s'ils sont réalisés par des peuples devenus libres et que si, une fois libérés, ils s'engagent dans des voies démocratiques semblables. C'est pourquoi nous ne pouvons souscrire d'ores et déjà à telle ou telle forme d'union, car ce serait établir un préalable qui pourrait par la suite se révéler dangereux pour le devenir respectif de ces pays, dans la mesure où il pourrait faire le jeu de l'impérialisme dans la pratique.
|
||||||
|
|
||||||
|
Entre la dilution au sein d'un groupement vague niant l'originalité, les besoins et les aspirations respectifs de chaque partie et le confinement dans un particularisme national, étroit et chauvin, il y a assurément la place pour une entente profonde et durable.
|
||||||
|
|
||||||
|
Les aspirations à l'unité se situent dans une perspective historique juste. Elles traduisent le besoin de libération des masses, leur désir de mettre le maximum de forces en mouvement pour briser tous les obstacles à leur promotion.
|
||||||
|
|
||||||
|
> « L'unité entre des pays distincts est une œuvre gigantesque qui doit se poser dans le cadre d'options idéologiques, politiques et économiques communes correspondant aux intérêts des masses populaires. »
|
||||||
|
|
||||||
|
### Ouverture sur le monde
|
||||||
|
|
||||||
|
Un des facteurs non négligeables de notre développement est la possibilité pour notre pays de bénéficier de l'aide technique et financière des autres pays du monde.
|
||||||
|
|
||||||
|
C'est pourquoi, en matière de politique étrangère, la Guadeloupe doit jouir d'une liberté d'action. C'est pourquoi la Guadeloupe doit pouvoir se faire représenter auprès des principaux organismes internationaux.
|
||||||
|
|
||||||
|
L'argument répandu selon lequel la libération politique des Antilles transformerait ces pays en bases militaires au service d'un bloc ne résiste pas à l'examen. Il est directement inspiré par les colonialistes qui visent, en spéculant sur la volonté pacifiste de nos peuples, à mobiliser la sensibilité antillaise au service de leurs intérêts et à prolonger la tutelle coloniale.
|
||||||
|
|
||||||
|
### Un régime démocratique et populaire
|
||||||
|
|
||||||
|
La prise en main par notre peuple de ses propres affaires suppose l'orientation de la Révolution vers un régime démocratique et populaire ; c'est-à-dire l'union consciente de toutes les couches de la population pour la construction de la Guadeloupe dans le cadre des principes socialistes.
|
||||||
|
|
||||||
|
Le but primordial de la Révolution doit être la transformation radicale du système économique actuel de profit en une économie de besoins : la satisfaction des besoins essentiels du peuple.
|
||||||
|
|
||||||
|
Seule une perspective socialiste peut créer les conditions adéquates à cette transformation. L'édification de la Guadeloupe en État moderne, la résolution efficace des problèmes, le triomphe contre les obstacles de toutes sortes et les immenses difficultés ne seront possibles que dans le cadre d'un régime qui permet l'initiative, la vigilance et le contrôle du peuple.
|
||||||
|
|
||||||
|
Le développement accéléré du sens de la responsabilité collective est en l'occurrence facteur de progrès et gage de succès.
|
||||||
|
|
||||||
|
Les objectifs suivants constituent les principes fondamentaux de la Révolution en matière économique :
|
||||||
|
|
||||||
|
1. Réforme agraire assurant le contrôle du peuple sur la propriété foncière et sur la production agricole ;
|
||||||
|
2. Refonte du commerce ;
|
||||||
|
3. Industrialisation, source d'activités nouvelles et d'utilisation du potentiel humain de travail ;
|
||||||
|
4. La planification scientifique et démocratique seule capable d'assurer le développement harmonieux, proportionné et rapide de l'économie dans tous ses secteurs (agriculture, industrie, commerce, transport, pêche, etc.) constituera le principe essentiel, le moteur qui permettra d'atteindre dans toute leur ampleur ces objectifs.
|
||||||
|
|
||||||
|
## 7. Les conditions du succès
|
||||||
|
|
||||||
|
Telles sont dans leurs grandes lignes les conditions de l'émancipation de notre pays.
|
||||||
|
|
||||||
|
Jamais les chances de succès n'ont été si grandes ; il faut savoir les saisir.
|
||||||
|
|
||||||
|
> « La force du mouvement national est fonction du degré de participation à ce mouvement de vastes couches de la nation, du prolétariat et de la paysannerie. »
|
||||||
|
|
||||||
|
Toutes les difficultés, toutes les oppositions, toute résistance du colonialisme seront rapidement balayées quand le peuple aura compris la nécessité de s'unir sur la base de ces principes pour briser le cadre d'une domination triséculaire.
|
||||||
|
|
||||||
|
**Le G.O.N.G. — Adopté en Assemblée générale — juin 1963.**
|
||||||
@@ -0,0 +1,76 @@
|
|||||||
|
## Définitions
|
||||||
|
|
||||||
|
**Client :** tout professionnel ou personne physique capable au sens des articles 1123 et suivants du Code civil, ou personne morale, qui visite le Site objet des présentes conditions générales.
|
||||||
|
|
||||||
|
**Prestations et Services :** gong.gp met à disposition des Clients un ensemble de contenus documentaires et historiques.
|
||||||
|
|
||||||
|
**Contenu :** ensemble des éléments constituant l'information présente sur le Site, notamment textes, images, vidéos.
|
||||||
|
|
||||||
|
**Informations clients :** ci-après dénommées « Information(s) », elles correspondent à l'ensemble des données personnelles susceptibles d'être détenues par gong.gp pour la gestion de votre compte, de la relation client et à des fins d'analyses et de statistiques.
|
||||||
|
|
||||||
|
**Utilisateur :** internaute se connectant et utilisant le site susnommé.
|
||||||
|
|
||||||
|
**Informations personnelles :** « les informations qui permettent, sous quelque forme que ce soit, directement ou non, l'identification des personnes physiques auxquelles elles s'appliquent » (article 4 de la loi n° 78-17 du 6 janvier 1978).
|
||||||
|
|
||||||
|
Les termes « données à caractère personnel », « personne concernée », « sous-traitant » et « données sensibles » ont le sens défini par le Règlement Général sur la Protection des Données (RGPD : n° 2016-679).
|
||||||
|
|
||||||
|
## 1. Présentation du site internet
|
||||||
|
|
||||||
|
En vertu de l'article 6 de la loi n° 2004-575 du 21 juin 2004 pour la confiance dans l'économie numérique, il est précisé aux utilisateurs du site internet gong.gp l'identité des différents intervenants dans le cadre de sa réalisation et de son suivi :
|
||||||
|
|
||||||
|
- **Propriétaire :** ORGANISATION KA INTERNATIONALE — 36 rue Lethière, 97100 Basse-Terre.
|
||||||
|
- **Responsable publication :** ORGANISATION KA INTERNATIONALE — kontak@o-k-i.net. Le responsable publication est une personne physique ou une personne morale.
|
||||||
|
- **Webmaster :** Cédric Famibelle-Pronzola — contact@cedric-pronzola.dev.
|
||||||
|
- **Hébergeur :** OVH — 2 rue Kellermann, 59100 Roubaix.
|
||||||
|
- **Délégué à la protection des données :** ORGANISATION KA INTERNATIONALE — kontak@o-k-i.net.
|
||||||
|
|
||||||
|
## 2. Conditions générales d'utilisation du site et des services proposés
|
||||||
|
|
||||||
|
Le Site constitue une œuvre de l'esprit protégée par les dispositions du Code de la Propriété Intellectuelle et des réglementations internationales applicables. Le Client ne peut en aucune manière réutiliser, céder ou exploiter pour son propre compte tout ou partie des éléments ou travaux du Site en dehors du cadre de la licence indiquée à l'article 5.
|
||||||
|
|
||||||
|
L'utilisation du site gong.gp implique l'acceptation pleine et entière des conditions générales d'utilisation ci-après décrites. Ces conditions d'utilisation sont susceptibles d'être modifiées ou complétées à tout moment ; les utilisateurs du site gong.gp sont donc invités à les consulter de manière régulière.
|
||||||
|
|
||||||
|
Ce site internet est normalement accessible à tout moment aux utilisateurs. Une interruption pour raison de maintenance technique peut toutefois être décidée par gong.gp, qui s'efforcera alors de communiquer préalablement aux utilisateurs les dates et heures de l'intervention.
|
||||||
|
|
||||||
|
## 3. Description des services fournis
|
||||||
|
|
||||||
|
Le site internet gong.gp a pour objet de fournir une information concernant l'histoire du Groupe d'Organisation Nationale de la Guadeloupe. gong.gp s'efforce de fournir des informations aussi précises que possible. Toutefois, il ne pourra être tenu responsable des oublis, des inexactitudes et des carences dans la mise à jour, qu'elles soient de son fait ou du fait des tiers partenaires qui lui fournissent ces informations.
|
||||||
|
|
||||||
|
Toutes les informations indiquées sur le site gong.gp sont données à titre indicatif et sont susceptibles d'évoluer. Les renseignements figurant sur le site ne sont pas exhaustifs et sont donnés sous réserve de modifications ayant été apportées depuis leur mise en ligne.
|
||||||
|
|
||||||
|
## 4. Limitations contractuelles sur les données techniques
|
||||||
|
|
||||||
|
Le site utilise la technologie JavaScript. Le site internet ne pourra être tenu responsable de dommages matériels liés à son utilisation. L'utilisateur s'engage à accéder au site en utilisant un matériel récent, ne contenant pas de virus et avec un navigateur de dernière génération mis à jour.
|
||||||
|
|
||||||
|
Le site gong.gp est hébergé chez un prestataire sur le territoire de l'Union européenne conformément aux dispositions du Règlement Général sur la Protection des Données (RGPD : n° 2016-679).
|
||||||
|
|
||||||
|
## 5. Propriété intellectuelle et licence
|
||||||
|
|
||||||
|
Le site internet **gong.gp** et les éléments qui y sont accessibles (textes, images, graphismes, logos, vidéos, icônes, sons, etc.) sont, sauf mention contraire, mis à disposition sous la licence [GNU Affero General Public License Version 3 (AGPL-3.0)](https://www.gnu.org/licenses/agpl-3.0.html). Cette licence garantit aux utilisateurs les libertés suivantes :
|
||||||
|
|
||||||
|
- liberté d'exécuter le programme pour tous les usages ;
|
||||||
|
- liberté d'étudier le fonctionnement du programme et de l'adapter à vos besoins ;
|
||||||
|
- liberté de redistribuer des copies du programme ;
|
||||||
|
- liberté d'améliorer le programme et de publier vos modifications.
|
||||||
|
|
||||||
|
Conformément aux exigences de la licence AGPL-3.0, si vous redistribuez ou modifiez des éléments du site, vous devez également fournir le code source complet, incluant vos modifications, sous la même licence. Les textes historiques reproduits sur ce site (charte, documents de 1963, extraits d'archives) appartiennent au patrimoine documentaire et sont cités à des fins de mémoire, de recherche et d'éducation, avec mention de leur provenance.
|
||||||
|
|
||||||
|
## 6. Limitations de responsabilité
|
||||||
|
|
||||||
|
gong.gp agit en tant qu'éditeur du site. gong.gp ne pourra être tenu responsable des dommages directs et indirects causés au matériel de l'utilisateur lors de l'accès au site, résultant soit de l'utilisation d'un matériel ne répondant pas aux spécifications indiquées au point 4, soit de l'apparition d'un bug ou d'une incompatibilité.
|
||||||
|
|
||||||
|
## 7. Gestion des données personnelles
|
||||||
|
|
||||||
|
Le site gong.gp est un site statique à but documentaire. Il ne collecte pas de données personnelles à des fins commerciales et ne les revend pas. Conformément au RGPD (n° 2016-679) et à la loi Informatique et Libertés, les utilisateurs disposent des droits d'accès, de rectification, d'effacement, de limitation, d'opposition et de portabilité de leurs données.
|
||||||
|
|
||||||
|
Pour exercer ces droits, l'utilisateur peut contacter le responsable du traitement : ORGANISATION KA INTERNATIONALE — DPO, 36 rue Lethière, 97100 Basse-Terre. Les utilisateurs peuvent également déposer une réclamation auprès de la CNIL ([www.cnil.fr](https://www.cnil.fr/fr/plaintes)).
|
||||||
|
|
||||||
|
## 8. Liens hypertextes et cookies
|
||||||
|
|
||||||
|
Le site gong.gp contient des liens hypertextes vers d'autres sites, mis en place avec l'autorisation de l'éditeur. Cependant, gong.gp n'a pas la possibilité de vérifier le contenu des sites ainsi visités et n'assumera en conséquence aucune responsabilité de ce fait.
|
||||||
|
|
||||||
|
Dans sa version SvelteKit statique, le site ne dépose pas de cookies de suivi publicitaire ni de traceurs tiers. Seule une préférence de thème (clair/sombre) peut être enregistrée localement dans le navigateur ; elle n'est jamais transmise à un serveur.
|
||||||
|
|
||||||
|
## 9. Droit applicable et attribution de juridiction
|
||||||
|
|
||||||
|
Tout litige en relation avec l'utilisation du site gong.gp est soumis au droit français. En dehors des cas où la loi ne le permet pas, il est fait attribution exclusive de juridiction aux tribunaux compétents de Guadeloupe.
|
||||||
@@ -0,0 +1,139 @@
|
|||||||
|
Au cours de la journée d'étude du 1er mai, en présence de représentants de l'AGEC, de l'A.A.C., le bureau provisoire a débattu des voies et moyens et du programme d'activités de l'année 1963. Considérant l'extrême importance de connaître concrètement pourquoi nous voulons notre libération, comment nous entendons mener notre lutte, nous avons décidé de poser quelques conclusions fondamentales qui doivent constituer l'option politique et stratégique du militant du G.O.N.G. Nous ne pouvons aller de l'avant si nous ne tombons pas tous d'accord sur l'attitude politique à observer, la méthode d'action de lutte à appliquer.
|
||||||
|
|
||||||
|
L'adoption de ce rapport engagera clairement tous les militants et sera leur constante référence jusqu'à l'intervention de données exceptionnelles capables de modifier le processus de notre lutte.
|
||||||
|
|
||||||
|
Un examen très approfondi a porté sur les questions suivantes :
|
||||||
|
|
||||||
|
1. Lutte de masse et lutte de classe.
|
||||||
|
2. Lutte de masse en tant que moyen de lutte révolutionnaire.
|
||||||
|
3. La lutte révolutionnaire armée.
|
||||||
|
4. La violence libératrice.
|
||||||
|
5. Les exemples de lutte de libération nationale.
|
||||||
|
6. Les possibilités concrètes de la lutte en Guadeloupe.
|
||||||
|
7. La voie révolutionnaire de la Guadeloupe.
|
||||||
|
8. L'établissement du programme d'action du G.O.N.G.
|
||||||
|
|
||||||
|
Voici les conclusions qui ont été dégagées.
|
||||||
|
|
||||||
|
## Points 1 et 2 : de la lutte de masse en tant que moyen de lutte de libération nationale
|
||||||
|
|
||||||
|
La lutte de masse est l'entrée en action des plus larges couches de la population dans une mobilisation générale pour le triomphe d'une revendication bien définie. Elle est basée en pays sous-développé sur la recherche du mieux-être et l'aspiration à la dignité.
|
||||||
|
|
||||||
|
La lutte de masse peut être le résultat de l'organisation d'une alliance temporaire comportant des avantages immédiats pour les deux partis : la classe ouvrière et paysanne dans une société avancée d'un côté et la bourgeoisie de l'autre. En ce qui concerne la Guadeloupe, la lutte de masse doit être le résultat de l'organisation des différentes catégories sociales mobilisées sur un thème unitaire : la revendication nationale, un statut d'État souverain associé avec un programme révolutionnaire qui doit tenir compte essentiellement des intérêts de l'ensemble de la population et en premier lieu des paysans et ouvriers constituant la force motrice de la révolution. Car l'analyse dialectique permet d'affirmer que la contradiction principale est celle qui existe entre les catégories sociales du peuple dans son entier et le colonialisme et l'impérialisme français. La résolution de cette contradiction constitue le caractère national de notre lutte de libération. Des contradictions internes entre les intérêts de diverses catégories sociales existent, elles doivent tendre vers une solution acceptable pour tous, vers une responsabilité de plus en plus élargie aux couches les plus nombreuses de la population guadeloupéenne. La résolution de ces contradictions internes menées sous le nom de la lutte de classe constitue le caractère démocratique de notre lutte. Dans une stratégie générale, la lutte pour la Démocratie doit nécessairement être menée en même temps que la lutte de libération. Elle ne doit pas bloquer le travail d'organisation nationale ; bien comprise, elle ne saurait être invoquée pour rejeter les cadres nationaux capables d'apporter qualitativement et quantitativement un sérieux appoint à notre lutte.
|
||||||
|
|
||||||
|
Chaque responsable, chaque militant doit tenir compte de cette attitude politique dans le travail d'unification et d'organisation politiques. Nous faisons nôtre cette appréciation de Staline : « La force du mouvement national est fonction du degré de participation des vastes couches de la nation, du prolétariat et de la paysannerie » ; et c'est l'occasion de rappeler avec Mao le rôle des jeunes intellectuels et étudiants militant au G.O.N.G. Ils doivent aller aux masses paysannes et ouvrières pour les mobiliser et les organiser selon ces principes. Ils seront jugés, évalués non sur leurs connaissances livresques et techniques mais sur leur capacité à s'intégrer au peuple, à mener une action concrète, à réaliser une tâche définie dans le sens de cette orientation de lutte. Éduquer, mobiliser, organiser, voilà la ligne à suivre.
|
||||||
|
|
||||||
|
### Position sur un des moyens de lutte de masse : le suffrage universel
|
||||||
|
|
||||||
|
Le suffrage universel doit être considéré comme une arme du peuple ; il l'utilise pour la défense de sa revendication nationale, pour exprimer à la face du monde, par le choix d'un ou plusieurs représentants authentiques, sa volonté de faire aboutir le programme défendu. Tout représentant élu démocratiquement doit obligatoirement avoir pour tâche de combattre le système de dépendance et de faire de l'agitation pour le changement de statut politique. Dans les conditions démocratiques de vote, le peuple doit participer aux élections, exprimer sa volonté, du moment que ces élections vont dans le sens de ses intérêts, et qu'il a la garantie du respect de ses suffrages. Cependant il est à noter que dans le rapport actuel des forces, le colonialisme se sert le plus souvent du geste électoral du Guadeloupéen pour cautionner, grâce à la fraude et à la force policière, les fantoches qui servent son intérêt. Le peuple doit refuser d'aller aux urnes chaque fois qu'il s'agit d'une mascarade organisée par le colonialisme, sous le joug de ses forces armées. Bien plus, il doit supprimer le moyen d'oppression par un boycott systématique et organisé de telle sorte que cette action devienne un événement politique positif pour sa lutte de libération nationale. Dans le cas d'une élection globale devant décider de l'avenir politique du peuple guadeloupéen, la position du G.O.N.G. est que la participation aux urnes ne sera valable que si toutes les garanties sont réunies par un contrôle neutre et international.
|
||||||
|
|
||||||
|
Nous voyons que l'ensemble de la lutte révolutionnaire ne saurait tendre ni uniquement, ni principalement à faire élire des représentants chargés de faire de l'agitation et de poser dans les formes constitutionnelles la Revendication Nationale. Nous constatons que les actuels « mal élus » ne pourront à aucun moment prétendre négocier au nom du peuple guadeloupéen. Nous constatons que tant que l'arme du suffrage universel ne sera pas contrôlée par le peuple, l'électoralisme doit être liquidé en tant que moyen de lutte révolutionnaire de libération nationale.
|
||||||
|
|
||||||
|
## Points 3 et 4 : lutte révolutionnaire armée, violence libératrice
|
||||||
|
|
||||||
|
Tout le monde admet que le passage de la lutte politique à la lutte armée constitue un tournant extrêmement grave et important pour le salut national. Lénine nous enseigne que l'insurrection doit s'appuyer sur l'essor révolutionnaire des masses et non sur un complot. L'histoire nous enseigne que le colonialisme ne recule que devant des actions de force à l'échelle du peuple opprimé.
|
||||||
|
|
||||||
|
La force doit s'entendre aussi bien dans le sens matériel que moral. Elle se traduit par les rapports existant entre les avantages et les faiblesses des parties opposées.
|
||||||
|
|
||||||
|
Tenant compte des luttes des peuples qui se sont libérés du joug du colonialisme, des conditions spécifiques de la lutte en Guadeloupe, le G.O.N.G. admet la violence libératrice spécifique comme moyen intégré de notre lutte de libération nationale. Mais nous précisons que l'action terroriste au stade actuel ne ferait que défavoriser notre cause. Nous devons à tout prix éviter l'extermination de nos forces naissantes. Les interventions armées ne peuvent, en aucun cas, être déclenchées avant que le peuple, soutien logistique de la Révolution, ne les ait admises et rendues possibles.
|
||||||
|
|
||||||
|
L'analyse brève et comparative des forces nous montre que l'adversaire est avantagé sur les points suivants :
|
||||||
|
|
||||||
|
- la qualité et la quantité des armes,
|
||||||
|
- les forces de répression bien entraînées,
|
||||||
|
- un sens élevé de l'organisation,
|
||||||
|
- une propagande largement orchestrée à l'intérieur comme à l'extérieur.
|
||||||
|
|
||||||
|
Nos avantages :
|
||||||
|
|
||||||
|
- Notre cause est juste. Nous luttons contre l'oppression politique, économique, sociale, pour le droit de nous diriger nous-mêmes (« souveraineté nationale »).
|
||||||
|
- L'ensemble de notre population est d'accord pour un changement de statut.
|
||||||
|
- La lutte se passera en tout premier lieu sur un sol où vit un peuple qui en a une parfaite connaissance et soutient ses fils.
|
||||||
|
- Le soutien international des peuples libérés du colonialisme et des peuples du camp socialiste.
|
||||||
|
- Les contradictions internes de l'impérialisme.
|
||||||
|
|
||||||
|
Notre faiblesse sur le plan matériel apparaît clairement. Il faut noter que ces avantages du camp colonialiste portent sur des points secondaires ; dans une évaluation dialectique correcte, le passage de l'état d'infériorité initiale à l'état de supériorité finale est possible, car notre force est, elle, capable de se développer plus vite sur les points essentiels au cours même de la lutte :
|
||||||
|
|
||||||
|
- participation des larges masses à la lutte de libération,
|
||||||
|
- soutien de plus en plus large de l'opinion internationale.
|
||||||
|
|
||||||
|
Ainsi apparaît une notion fondamentale à retenir : notre stratégie de lutte de libération doit être envisagée sous l'angle d'une résistance de longue durée. Toute conception née de l'impatience visant à enlever une victoire rapide serait une grave erreur et devrait être combattue.
|
||||||
|
|
||||||
|
C'est à une **victoire politique** que doivent tendre toutes nos forces.
|
||||||
|
|
||||||
|
Pourquoi victoire politique ? Toute lutte aboutit nécessairement à une négociation ; celle que nous visons doit entraîner des conséquences telles que le colonialisme se trouvera objectivement dans l'incapacité de poursuivre son œuvre d'exploitation et de domination, des conséquences telles que notre destin soit assuré par notre responsabilité. D'où cette notion fondamentale de penser la stratégie d'organisation du peuple comme une lutte de construction nationale. En résumé : abattre l'impérialisme, préparer les structures organisationnelles d'une Guadeloupe libre, souveraine, moderne, heureuse. Nous voyons que les conditions de succès de notre lutte révolutionnaire anticolonialiste, anti-impérialiste, de libération et de construction nationales sont précisément l'existence d'un mouvement puissant et agissant. « La révolution est impossible sans lutte nationale généralisée. »
|
||||||
|
|
||||||
|
## Point 5 : des exemples de lutte de libération nationale
|
||||||
|
|
||||||
|
Nous savons que chaque révolution, chaque lutte de libération nationale est dans chacun des cas un phénomène unique, propre à telle époque historique, à tel pays — c'est-à-dire aux conditions politique, économique et physique du peuple qui mène la lutte. Cependant, nous affirmons que toutes les révolutions confirment la loi fondamentale suivante : « Il ne suffit pas, pour que la révolution ait lieu, que les masses exploitées et opprimées soient conscientes de l'impossibilité de vivre comme autrefois et réclament le changement. Il faut, pour que la révolution ait lieu, que les exploiteurs, les colonialistes et leurs suppôts ne puissent pas vivre et gouverner comme autrefois. »
|
||||||
|
|
||||||
|
Nous décidons, non pas de mener la lutte révolutionnaire à la manière du Vietnam, de Cuba ou de l'Algérie, mais de bénéficier de leur expérience de la lutte de libération, de leur aide, de leurs apports positifs à la lutte mondiale de décolonisation.
|
||||||
|
|
||||||
|
## Points 6 et 7 : possibilité concrète de la lutte, voie révolutionnaire en Guadeloupe
|
||||||
|
|
||||||
|
**Sur le plan politique.** L'analyse des forces politiques et sociales montre que les forces autonomistes (A.G.E.G., P.G.G., M.D.A., syndicats, personnalités progressistes) n'ont pu jusqu'à présent réaliser l'unité politique sur la base d'une lutte de libération nationale, et sur un programme minimum à contenu social et économique entraînant l'adhésion du peuple.
|
||||||
|
|
||||||
|
Mais des possibilités concrètes d'unité se dégagent. L'A.G.E.G., force nationale, offre des possibilités concrètes d'organiser la jeunesse guadeloupéenne sur une base nationale. Elle a adopté le mot d'ordre « Unité et organisation » du peuple. Les débats sur le thème de l'unité ont, malgré les divergences idéologiques, imposé à tous la lutte de libération nationale, au P.C.G. comme chez le M.D.A.
|
||||||
|
|
||||||
|
Les ouvriers guadeloupéens de Paris se regroupent au sein de l'A.G.T.A.G., afin de participer au combat de libération.
|
||||||
|
|
||||||
|
En Guadeloupe et à Paris, l'existence de groupes de jeunes révolutionnaires prouve, s'il en était besoin, que la crise générale progresse.
|
||||||
|
|
||||||
|
**Sur le plan de la résistance physique.** La résistance physique, l'emploi de certaines formes d'actions armées, de la violence spécifique, sont dans nos possibilités. Car pendant la guerre colonialiste menée au Vietnam par la France, pendant son combat d'extermination mené contre le peuple algérien, plusieurs générations de jeunes guadeloupéens ont servi contre leurs frères coloniaux. Ils ont compris par l'action, par la vue directe, que leur position auprès de l'oppresseur était incompatible avec leur origine, leurs aspirations. Ils sont dans la grande majorité d'accord pour risquer leur vie en pleine conscience, pour leur dignité, leur liberté, contre ces mêmes forces qui les avaient embrigadés d'office.
|
||||||
|
|
||||||
|
Mais il existe, aussi bien dans les partis de gauche, dans le camp des étudiants et bien entendu dans les rangs des valets et des personnalités, des hommes qui prônent un verbalisme révolutionnaire tendant à maintenir nos forces dans un pacifisme garanti. Il nous faut combattre ces pacifistes si nous voulons faire avancer l'idée d'une lutte réelle ; il nous faut écarter les obstacles nombreux qu'ils accumulent pour repousser indéfiniment la réalisation des conditions objectives de la lutte de libération nationale.
|
||||||
|
|
||||||
|
Notre position est que notre peuple ne se refusera pas à manier les armes, à en avoir pour défendre son droit à la liberté après que son sang ait été prélevé pour des raisons contraires à son intérêt. Dans le cas contraire, nous mériterions notre esclavage.
|
||||||
|
|
||||||
|
La conclusion qui s'impose est que la voie guadeloupéenne est celle d'une lutte politique de masse généralisée portant sur tous les plans et dans tous les domaines, utilisant tous les moyens, y compris les actions armées, la violence spécifique, dans la mesure des possibilités concrètes de la Guadeloupe.
|
||||||
|
|
||||||
|
Voici, condensées, les lignes générales de notre orientation et stratégie. Ces lignes sont pour l'instant propulsées et appliquées par le G.O.N.G. Nous espérons qu'elles seront dans leur plus grande part adoptées par le mouvement national guadeloupéen.
|
||||||
|
|
||||||
|
### En ce qui concerne la lutte de masse
|
||||||
|
|
||||||
|
La phase préliminaire, dans cette étape pré-révolutionnaire actuelle, comporte une préparation systématique, impérieuse, intransigeante et accélérée des cadres révolutionnaires. L'accélération de l'histoire nous impose des mesures d'urgence et une réduction du temps de maturation. Les militants doivent rapidement apprendre les méthodes d'agitation, d'organisation, de mobilisation et de direction.
|
||||||
|
|
||||||
|
Il s'agit de développer et de renforcer l'action pour :
|
||||||
|
|
||||||
|
- généraliser la prise de conscience ;
|
||||||
|
- poser la revendication nationale dans tous les domaines de la vie quotidienne : sur les lieux de travail, dans les écoles, les églises, les syndicats, les partis politiques, les associations culturelles ou sportives, les sociétés mutualistes ;
|
||||||
|
- accroître l'agitation politique afin de créer un état de tension révolutionnaire par l'édition de tracts, d'affiches, d'inscriptions sur les murs, par l'organisation de meetings, le noyautage de manifestations officielles placées sous l'égide du système. Créer et multiplier les organisations de masse pour la lutte en plein jour. Mais surtout passer à l'organisation concrète des groupes révolutionnaires, d'organisations nouvelles sur la base des catégories des activités professionnelles en y développant l'idéologie de la lutte de libération nationale avancée par le G.O.N.G. — d'où l'apparition d'organisations telles que :
|
||||||
|
- Syndicat national,
|
||||||
|
- Mouvement national de la jeunesse,
|
||||||
|
- Association des artisans et des petits commerçants,
|
||||||
|
- Union nationale des femmes.
|
||||||
|
|
||||||
|
L'union des paysans et des petits planteurs est certainement la tâche qui entraînera la phase du regroupement des forces guadeloupéennes sous une direction unifiée et à forte cohésion interne en un vaste Front Uni ou mouvement national de la Guadeloupe.
|
||||||
|
|
||||||
|
### Sur la question de la violence
|
||||||
|
|
||||||
|
Le moment de son entrée en scène sera déterminé après une évaluation dialectique de nos forces, selon les conditions et les besoins de la lutte. Les militants doivent faire de la propagande pour l'action armée ou la violence afin de la préparer, de la rendre possible, puisque nous devons y recourir.
|
||||||
|
|
||||||
|
De toute évidence, il faut que les premières conditions soient remplies, ou presque en totalité, pour qu'interviennent :
|
||||||
|
|
||||||
|
- la grève générale,
|
||||||
|
- le boycott du commerce et de l'économie colonialiste,
|
||||||
|
- le boycott de l'administration colonialiste en même temps que la création d'une administration parallèle guadeloupéenne,
|
||||||
|
- le boycott des élections législatives et générales.
|
||||||
|
|
||||||
|
Les actions armées contre les institutions et corps constitués représentant concrètement la tutelle (préfecture, gendarmerie, casernes de C.R.S.…), la liquidation des traîtres, des valets, et des représentants de la tutelle, et l'insurrection.
|
||||||
|
|
||||||
|
Les actions contre les institutions administratives et économiques doivent être politiques (ex. précédents).
|
||||||
|
|
||||||
|
**À l'extérieur :**
|
||||||
|
|
||||||
|
- Poser de manière systématique et claire le problème guadeloupéen et notre revendication nationale devant la conscience française.
|
||||||
|
- Entraîner l'aide effective des organisations anticolonialistes en France par des activités concrètes de soutien en plein jour.
|
||||||
|
- Utiliser la solidarité agissante des nations sœurs pour l'obtention d'une aide matérielle, financière et technique à la révolution guadeloupéenne. Démasquer le gouvernement français devant l'opinion publique internationale quand il prétend avoir terminé la décolonisation.
|
||||||
|
- Dénoncer les hommes de l'ancien Front Antillo-Guyanais qui volent la représentativité de notre peuple auprès des pays du tiers monde, les arrivistes guadeloupéens liés à ces usurpateurs.
|
||||||
|
- Préparer les techniciens à formation polymorphe pour la lutte armée, les commandos destinés à accomplir les tâches spéciales de la révolution.
|
||||||
|
|
||||||
|
La mise en route et la réussite d'une telle stratégie supposent :
|
||||||
|
|
||||||
|
1. **Une ligne politique juste :** notre revendication de souveraineté nationale est juste ; le contenu social qui sera proposé à notre peuple tiendra compte essentiellement de ses intérêts, et aura un caractère démocratique.
|
||||||
|
2. **Un bloc unitaire national :** notre tâche d'unité, d'organisation de tout le peuple est réalisable car elle reflète un besoin de tous les Guadeloupéens.
|
||||||
|
3. **Un plan de lutte correctement élaboré :** l'engagement de tout notre peuple organisé pour se battre sur tous les plans est un gage indéniable de succès.
|
||||||
|
|
||||||
|
## « Nous vaincrons »
|
||||||
|
|
||||||
|
Rangeons-nous sous la bannière du G.O.N.G. pour poursuivre la lutte contre l'impérialisme, contre le colonialisme français et ses valets locaux.
|
||||||
@@ -1,80 +0,0 @@
|
|||||||
.card {
|
|
||||||
cursor: pointer;
|
|
||||||
display: flex;
|
|
||||||
flex-direction: column;
|
|
||||||
height: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.card-content {
|
|
||||||
flex-grow: 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
.footer {
|
|
||||||
padding: .5rem 1rem;
|
|
||||||
position: fixed;
|
|
||||||
bottom: 0;
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.footer q {
|
|
||||||
font-size: 0.9rem;
|
|
||||||
line-height: 1.2;
|
|
||||||
}
|
|
||||||
|
|
||||||
.footer small {
|
|
||||||
font-size: 0.8rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.has-border-top {
|
|
||||||
border-top: 2px solid #da131a;
|
|
||||||
}
|
|
||||||
|
|
||||||
.has-shadow-top {
|
|
||||||
box-shadow: 0px 4px 6px rgba(0, 0, 0, 0.1);
|
|
||||||
}
|
|
||||||
|
|
||||||
hr {
|
|
||||||
margin-block: .5rem !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
#kontak {
|
|
||||||
display: flex;
|
|
||||||
justify-content: center;
|
|
||||||
margin-bottom: .6em;
|
|
||||||
}
|
|
||||||
|
|
||||||
#kontak button {
|
|
||||||
margin-right: .6em;
|
|
||||||
}
|
|
||||||
|
|
||||||
.orientation-modal, .charte-modal {
|
|
||||||
color: #da131a;
|
|
||||||
transition: color 0.3s ease;
|
|
||||||
text-decoration: underline;
|
|
||||||
}
|
|
||||||
|
|
||||||
.orientation-modal:hover, .charte-modal:hover {
|
|
||||||
color: rgb(255, 20, 28);
|
|
||||||
}
|
|
||||||
|
|
||||||
strong {
|
|
||||||
color: #f5f5f5;
|
|
||||||
}
|
|
||||||
|
|
||||||
#template {
|
|
||||||
margin-bottom: 10em;
|
|
||||||
}
|
|
||||||
|
|
||||||
@media (max-width: 768px) {
|
|
||||||
.columns.is-multiline {
|
|
||||||
max-width: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.footer {
|
|
||||||
font-size: xx-small;
|
|
||||||
}
|
|
||||||
|
|
||||||
#template {
|
|
||||||
margin-bottom: 15em;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,113 +0,0 @@
|
|||||||
document.addEventListener('DOMContentLoaded', () => {
|
|
||||||
// Functions to open and close a modal
|
|
||||||
function openModal($el) {
|
|
||||||
$el.classList.add('is-active');
|
|
||||||
}
|
|
||||||
|
|
||||||
function closeModal($el) {
|
|
||||||
$el.classList.remove('is-active');
|
|
||||||
}
|
|
||||||
|
|
||||||
function closeAllModals() {
|
|
||||||
(document.querySelectorAll('.modal') || []).forEach(($modal) => {
|
|
||||||
closeModal($modal);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
// Add a click event on buttons to open a specific modal
|
|
||||||
(document.querySelectorAll('.js-modal-trigger') || []).forEach(($trigger) => {
|
|
||||||
const modal = $trigger.dataset.target;
|
|
||||||
const $target = document.getElementById(modal);
|
|
||||||
|
|
||||||
$trigger.addEventListener('click', () => {
|
|
||||||
openModal($target);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
// Add a click event on various child elements to close the parent modal
|
|
||||||
(document.querySelectorAll('.modal-background, .modal-close, .modal-card-head .delete, .modal-card-foot .button') || []).forEach(($close) => {
|
|
||||||
const $target = $close.closest('.modal');
|
|
||||||
|
|
||||||
$close.addEventListener('click', () => {
|
|
||||||
closeModal($target);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
// Add a keyboard event to close all modals
|
|
||||||
document.addEventListener('keydown', (event) => {
|
|
||||||
if(event.key === "Escape") {
|
|
||||||
closeAllModals();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
function openModalFromTemplate() {
|
|
||||||
const $target = document.getElementById('modal-article');
|
|
||||||
$target.classList.add('is-active');
|
|
||||||
}
|
|
||||||
|
|
||||||
(document.querySelectorAll('.modal-background, .modal-close, .modal-card-head .delete, .modal-card-foot .button') || []).forEach(($close) => {
|
|
||||||
const $target = $close.closest('.modal');
|
|
||||||
|
|
||||||
$close.addEventListener('click', () => {
|
|
||||||
closeModal($target);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
document.addEventListener('keydown', (event) => {
|
|
||||||
if(event.key === "Escape") {
|
|
||||||
closeAllModals();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
function closeModal($el) {
|
|
||||||
$el.classList.remove('is-active');
|
|
||||||
}
|
|
||||||
|
|
||||||
function closeAllModals() {
|
|
||||||
(document.querySelectorAll('.modal') || []).forEach(($modal) => {
|
|
||||||
closeModal($modal);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
document.addEventListener('htmx:afterSwap', function(event) {
|
|
||||||
if (event.detail.target.classList[0] === 'modal-request') {
|
|
||||||
const articleTitre = document.querySelector('#article-titre');
|
|
||||||
const articleChapeau = document.querySelector('#article-chapeau');
|
|
||||||
const articleContenu = document.querySelector('#article-contenu');
|
|
||||||
const articleCouverture = document.querySelector('#article-couverture');
|
|
||||||
|
|
||||||
const response = JSON.parse(event.detail.xhr.response);
|
|
||||||
document.querySelector('.modal-request').innerHTML = ''
|
|
||||||
|
|
||||||
articleTitre.innerHTML = response.data.attributes.titre;
|
|
||||||
articleChapeau.innerHTML = response.data.attributes.chapeau;
|
|
||||||
articleContenu.innerHTML = response.data.attributes.contenu;
|
|
||||||
|
|
||||||
articleCouverture.setAttribute("src", `https://api.gong.gp${response.data.attributes.couverture.data.attributes.url}`);
|
|
||||||
if (response.data.attributes.couverture.data.attributes.alternativeText) {
|
|
||||||
articleCouverture.setAttribute("alt", response.data.attributes.couverture.data.attributes.alternativeText);
|
|
||||||
}
|
|
||||||
|
|
||||||
const fichiers = response.data.attributes.fichiers.data;
|
|
||||||
|
|
||||||
const articleFichiers = document.querySelector('#article-fichiers');
|
|
||||||
articleFichiers.innerHTML = '';
|
|
||||||
|
|
||||||
if (fichiers) {
|
|
||||||
|
|
||||||
articleFichiers.innerHTML = '';
|
|
||||||
|
|
||||||
fichiers.forEach(fichier => {
|
|
||||||
articleFichiers.insertAdjacentHTML('beforeend', `
|
|
||||||
<p id="fichier-${fichier.id}">
|
|
||||||
<span class="icon">
|
|
||||||
<ion-icon name="document"></ion-icon>
|
|
||||||
</span>
|
|
||||||
<a class="has-text-success" href="https://api.gong.gp${fichier.attributes.url}">${fichier.attributes.name}</a>
|
|
||||||
</p>
|
|
||||||
`);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
@@ -0,0 +1,34 @@
|
|||||||
|
{
|
||||||
|
"name": "gong.gp",
|
||||||
|
"version": "2.0.0",
|
||||||
|
"description": "GONG — Groupe d'Organisation Nationale de la Guadeloupe (site SvelteKit)",
|
||||||
|
"license": "AGPL-3.0",
|
||||||
|
"private": true,
|
||||||
|
"type": "module",
|
||||||
|
"scripts": {
|
||||||
|
"dev": "vite dev",
|
||||||
|
"build": "vite build",
|
||||||
|
"preview": "vite preview",
|
||||||
|
"check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json",
|
||||||
|
"check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"@fontsource/archivo": "^5.1.0",
|
||||||
|
"@fontsource/inter": "^5.1.0",
|
||||||
|
"@sveltejs/adapter-static": "^3.0.6",
|
||||||
|
"@sveltejs/kit": "^2.15.0",
|
||||||
|
"@sveltejs/vite-plugin-svelte": "^5.0.3",
|
||||||
|
"@vite-pwa/sveltekit": "^0.6.7",
|
||||||
|
"marked": "^15.0.12",
|
||||||
|
"svelte": "^5.16.0",
|
||||||
|
"svelte-check": "^4.1.1",
|
||||||
|
"typescript": "^5.7.2",
|
||||||
|
"vite": "^6.0.6",
|
||||||
|
"vite-imagetools": "^7.0.5",
|
||||||
|
"vite-plugin-pwa": "^0.21.1"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"gsap": "^3.12.5",
|
||||||
|
"lenis": "^1.1.18"
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
|
|
||||||
<url>
|
|
||||||
<loc>https://gong.gp</loc>
|
|
||||||
</url>
|
|
||||||
</urlset>
|
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
// See https://svelte.dev/docs/kit/types#app.d.ts
|
||||||
|
declare global {
|
||||||
|
namespace App {
|
||||||
|
// interface Error {}
|
||||||
|
// interface Locals {}
|
||||||
|
// interface PageData {}
|
||||||
|
// interface PageState {}
|
||||||
|
// interface Platform {}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export {};
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
<!doctype html>
|
||||||
|
<html lang="%lang%" class="has-no-js">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||||
|
<link rel="icon" href="%sveltekit.assets%/favicon.ico" sizes="32x32" />
|
||||||
|
<link rel="icon" href="%sveltekit.assets%/icon.png" type="image/png" sizes="192x192" />
|
||||||
|
<link rel="apple-touch-icon" href="%sveltekit.assets%/apple-icon.png" />
|
||||||
|
<link rel="manifest" href="%sveltekit.assets%/manifest.webmanifest" />
|
||||||
|
<meta name="theme-color" content="#0D0D0D" />
|
||||||
|
<link rel="preload" href="%sveltekit.assets%/fonts/archivo-latin-700-normal.woff2" as="font" type="font/woff2" crossorigin />
|
||||||
|
<link rel="stylesheet" href="%sveltekit.assets%/fonts/fonts.css" />
|
||||||
|
<!-- Anti-FOUC thème : pose .js / .light-theme avant le premier paint (CSP script-src 'self') -->
|
||||||
|
<script src="%sveltekit.assets%/theme.js"></script>
|
||||||
|
%sveltekit.head%
|
||||||
|
</head>
|
||||||
|
<body data-sveltekit-preload-data="hover">
|
||||||
|
<div style="display: contents">%sveltekit.body%</div>
|
||||||
|
<script src="%sveltekit.assets%/registerSW.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
import type { Handle } from '@sveltejs/kit';
|
||||||
|
import { localeFromPath } from '$lib/i18n';
|
||||||
|
|
||||||
|
// Injecte l'attribut lang correct dans app.html selon la locale de la route.
|
||||||
|
export const handle: Handle = async ({ event, resolve }) => {
|
||||||
|
const lang = localeFromPath(event.url.pathname);
|
||||||
|
return resolve(event, {
|
||||||
|
transformPageChunk: ({ html }) => html.replace('%lang%', lang)
|
||||||
|
});
|
||||||
|
};
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
// Déclarations vite-imagetools. Ce fichier NE DOIT PAS être un module
|
||||||
|
// (aucun import/export au niveau racine) pour que les `declare module` soient globaux.
|
||||||
|
|
||||||
|
declare module '*&as=picture' {
|
||||||
|
const value: {
|
||||||
|
sources: Record<string, string>;
|
||||||
|
img: { src: string; w: number; h: number };
|
||||||
|
};
|
||||||
|
export default value;
|
||||||
|
}
|
||||||
|
|
||||||
|
declare module '*&as=metadata' {
|
||||||
|
const value: { src: string; width: number; height: number; format: string };
|
||||||
|
export default value;
|
||||||
|
}
|
||||||
@@ -0,0 +1,54 @@
|
|||||||
|
<script lang="ts">
|
||||||
|
// Fil d'Ariane visible. Le JSON-LD BreadcrumbList est émis en parallèle par <Seo>.
|
||||||
|
interface Props {
|
||||||
|
items: { name: string; path: string }[];
|
||||||
|
}
|
||||||
|
let { items }: Props = $props();
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<nav class="fil" aria-label="Fil d'Ariane">
|
||||||
|
<ol>
|
||||||
|
{#each items as item, i (item.path)}
|
||||||
|
<li>
|
||||||
|
{#if i < items.length - 1}
|
||||||
|
<a href={item.path} class="no-underline">{item.name}</a>
|
||||||
|
<span class="fil__sep" aria-hidden="true">/</span>
|
||||||
|
{:else}
|
||||||
|
<span aria-current="page">{item.name}</span>
|
||||||
|
{/if}
|
||||||
|
</li>
|
||||||
|
{/each}
|
||||||
|
</ol>
|
||||||
|
</nav>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
.fil {
|
||||||
|
font-size: 0.82rem;
|
||||||
|
color: var(--muted);
|
||||||
|
}
|
||||||
|
.fil ol {
|
||||||
|
list-style: none;
|
||||||
|
display: flex;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
gap: 0.4rem;
|
||||||
|
margin: 0 0 var(--space-3);
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
.fil li {
|
||||||
|
display: inline-flex;
|
||||||
|
gap: 0.4rem;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
.fil a {
|
||||||
|
color: var(--muted);
|
||||||
|
}
|
||||||
|
.fil a:hover {
|
||||||
|
color: var(--accent);
|
||||||
|
}
|
||||||
|
.fil [aria-current='page'] {
|
||||||
|
color: var(--creme);
|
||||||
|
}
|
||||||
|
.fil__sep {
|
||||||
|
color: var(--muted-fort);
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@@ -0,0 +1,188 @@
|
|||||||
|
<script lang="ts">
|
||||||
|
import Icon from './Icon.svelte';
|
||||||
|
import { contact } from '$lib/data/gong';
|
||||||
|
|
||||||
|
const sections = [
|
||||||
|
{
|
||||||
|
titre: 'Le mouvement',
|
||||||
|
liens: [
|
||||||
|
{ href: '/histoire/', label: 'Histoire' },
|
||||||
|
{ href: '/me-67/', label: 'Mé 67 (1967)' },
|
||||||
|
{ href: '/proces-1968/', label: 'Procès de 1968' },
|
||||||
|
{ href: '/militants/', label: 'Militants & fondateurs' },
|
||||||
|
{ href: '/ideologie/', label: 'Idéologie' },
|
||||||
|
{ href: '/heritage/', label: 'Héritage' }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
titre: 'Documents',
|
||||||
|
liens: [
|
||||||
|
{ href: '/charte/', label: 'Charte de 1963' },
|
||||||
|
{ href: '/orientation/', label: 'Orientation & stratégie' },
|
||||||
|
{ href: '/publications/', label: 'Publications' },
|
||||||
|
{ href: '/sources/', label: 'Sources & bibliographie' },
|
||||||
|
{ href: '/faq/', label: "Qu'est-ce que le GONG ?" }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
titre: 'Le site',
|
||||||
|
liens: [
|
||||||
|
{ href: '/actualites/', label: 'Actualités' },
|
||||||
|
{ href: '/contact/', label: 'Contact' },
|
||||||
|
{ href: '/mentions-legales/', label: 'Mentions légales' }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
];
|
||||||
|
const annee = new Date().getFullYear();
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<footer class="site-footer">
|
||||||
|
<div class="flag-bar" aria-hidden="true"></div>
|
||||||
|
<div class="container site-footer__inner">
|
||||||
|
<blockquote class="site-footer__cite">
|
||||||
|
<p lang="fr">
|
||||||
|
« Les générations futures se doivent de continuer le combat, avec les moyens qu'elles ont
|
||||||
|
maintenant à leur disposition, et le mener à son terme, de telle sorte qu'un jour notre pays
|
||||||
|
et les Guadeloupéens soient libérés des ventouses tentaculaires et séculaires qu'est le
|
||||||
|
colonialisme français. »
|
||||||
|
</p>
|
||||||
|
<cite>Serge Glaude — co-fondateur du GONG</cite>
|
||||||
|
</blockquote>
|
||||||
|
|
||||||
|
<nav class="site-footer__grid" aria-label="Plan du site">
|
||||||
|
{#each sections as s (s.titre)}
|
||||||
|
<div>
|
||||||
|
<h2 class="site-footer__title">{s.titre}</h2>
|
||||||
|
<ul>
|
||||||
|
{#each s.liens as l (l.href)}
|
||||||
|
<li><a href={l.href} class="no-underline">{l.label}</a></li>
|
||||||
|
{/each}
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
{/each}
|
||||||
|
<div>
|
||||||
|
<h2 class="site-footer__title">Nous suivre</h2>
|
||||||
|
<div class="site-footer__social">
|
||||||
|
<a href="mailto:{contact.email}" class="no-underline" aria-label="E-mail (ProtonMail)">
|
||||||
|
<Icon name="mail" /> <span>{contact.email}</span>
|
||||||
|
</a>
|
||||||
|
<a
|
||||||
|
href={contact.bokantaj}
|
||||||
|
rel="external noopener noreferrer"
|
||||||
|
target="_blank"
|
||||||
|
class="no-underline"
|
||||||
|
aria-label="Bokantaj (réseau social)"
|
||||||
|
>
|
||||||
|
<Icon name="globe" /> <span>Bokantaj</span>
|
||||||
|
</a>
|
||||||
|
<a
|
||||||
|
href={contact.gade}
|
||||||
|
rel="external noopener noreferrer"
|
||||||
|
target="_blank"
|
||||||
|
class="no-underline"
|
||||||
|
aria-label="Gade (vidéos PeerTube)"
|
||||||
|
>
|
||||||
|
<Icon name="video" /> <span>Gade — vidéos</span>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</nav>
|
||||||
|
|
||||||
|
<div class="site-footer__federe">
|
||||||
|
<p>
|
||||||
|
<img src="/img/gong.png" alt="" width="28" height="28" />
|
||||||
|
Un site opéré par
|
||||||
|
<a href="https://o-k-i.net" rel="external noopener noreferrer" target="_blank">ORGANISATION KA INTERNATIONALE</a>
|
||||||
|
· <span lang="gcf">An mémwè a tout sé moun-la ki goumé.</span>
|
||||||
|
</p>
|
||||||
|
<p class="site-footer__legal">
|
||||||
|
© {annee} GONG — Contenu sous licence
|
||||||
|
<a href="https://www.gnu.org/licenses/agpl-3.0.html" rel="external noopener noreferrer" target="_blank">AGPL-3.0</a>.
|
||||||
|
<a href="/mentions-legales/" class="no-underline">Mentions légales</a>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</footer>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
.site-footer {
|
||||||
|
margin-top: var(--space-6);
|
||||||
|
background: var(--noir-profond);
|
||||||
|
border-top: 1px solid var(--line);
|
||||||
|
}
|
||||||
|
.site-footer__inner {
|
||||||
|
padding-block: var(--space-4);
|
||||||
|
display: grid;
|
||||||
|
gap: var(--space-4);
|
||||||
|
}
|
||||||
|
.site-footer__cite {
|
||||||
|
margin: 0;
|
||||||
|
max-width: 62ch;
|
||||||
|
border-left: 4px solid var(--accent);
|
||||||
|
padding-left: var(--space-2);
|
||||||
|
}
|
||||||
|
.site-footer__cite p {
|
||||||
|
font-style: italic;
|
||||||
|
color: var(--muted);
|
||||||
|
}
|
||||||
|
.site-footer__cite cite {
|
||||||
|
font-style: normal;
|
||||||
|
font-weight: 600;
|
||||||
|
color: var(--creme);
|
||||||
|
font-size: 0.9rem;
|
||||||
|
}
|
||||||
|
.site-footer__grid {
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
|
||||||
|
gap: var(--space-3);
|
||||||
|
}
|
||||||
|
.site-footer__title {
|
||||||
|
font-size: 0.78rem;
|
||||||
|
letter-spacing: 0.08em;
|
||||||
|
color: var(--muted-fort);
|
||||||
|
margin-bottom: 0.6rem;
|
||||||
|
}
|
||||||
|
.site-footer__grid ul {
|
||||||
|
list-style: none;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
display: grid;
|
||||||
|
gap: 0.4rem;
|
||||||
|
}
|
||||||
|
.site-footer__grid a {
|
||||||
|
color: var(--muted);
|
||||||
|
font-size: 0.92rem;
|
||||||
|
}
|
||||||
|
.site-footer__grid a:hover {
|
||||||
|
color: var(--accent);
|
||||||
|
}
|
||||||
|
.site-footer__social {
|
||||||
|
display: grid;
|
||||||
|
gap: 0.55rem;
|
||||||
|
}
|
||||||
|
.site-footer__social a {
|
||||||
|
display: inline-flex;
|
||||||
|
align-items: center;
|
||||||
|
gap: 0.5rem;
|
||||||
|
color: var(--muted);
|
||||||
|
font-size: 0.9rem;
|
||||||
|
}
|
||||||
|
.site-footer__social a:hover {
|
||||||
|
color: var(--accent);
|
||||||
|
}
|
||||||
|
.site-footer__federe {
|
||||||
|
border-top: 1px solid var(--line);
|
||||||
|
padding-top: var(--space-3);
|
||||||
|
font-size: 0.85rem;
|
||||||
|
color: var(--muted);
|
||||||
|
}
|
||||||
|
.site-footer__federe img {
|
||||||
|
display: inline;
|
||||||
|
vertical-align: middle;
|
||||||
|
margin-right: 0.3rem;
|
||||||
|
}
|
||||||
|
.site-footer__legal {
|
||||||
|
margin: 0.4rem 0 0;
|
||||||
|
font-size: 0.8rem;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
<script lang="ts">
|
||||||
|
// Icône du sprite GONG. <Icon name="ka" /> → <use href="/icons.svg#ka">.
|
||||||
|
// Décoratif par défaut (aria-hidden) ; passer `label` pour une icône signifiante.
|
||||||
|
import { asset } from '$app/paths';
|
||||||
|
|
||||||
|
interface Props {
|
||||||
|
name: string;
|
||||||
|
label?: string;
|
||||||
|
size?: string;
|
||||||
|
class?: string;
|
||||||
|
}
|
||||||
|
let { name, label, size = '1.25em', class: cls = '' }: Props = $props();
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<svg
|
||||||
|
class="icon {cls}"
|
||||||
|
style:width={size}
|
||||||
|
style:height={size}
|
||||||
|
role={label ? 'img' : undefined}
|
||||||
|
aria-label={label}
|
||||||
|
aria-hidden={label ? undefined : 'true'}
|
||||||
|
>
|
||||||
|
<use href={asset(`/icons.svg#${name}`)} />
|
||||||
|
</svg>
|
||||||
@@ -0,0 +1,67 @@
|
|||||||
|
<script lang="ts">
|
||||||
|
// Titre cinétique : révélation mot à mot au scroll, cadence syncopée gwoka.
|
||||||
|
// Split par MOTS (jamais par caractères — apostrophes). Le texte reste intégral
|
||||||
|
// pour les lecteurs d'écran ; l'animation ne s'active que sous html.has-js + no-preference.
|
||||||
|
import { syncopatedDelay } from '$lib/motion/tokens';
|
||||||
|
import type { Action } from 'svelte/action';
|
||||||
|
|
||||||
|
interface Props {
|
||||||
|
text: string;
|
||||||
|
as?: 'h1' | 'h2' | 'h3';
|
||||||
|
id?: string;
|
||||||
|
class?: string;
|
||||||
|
}
|
||||||
|
let { text, as = 'h2', id, class: cls = '' }: Props = $props();
|
||||||
|
const mots = $derived(text.split(' '));
|
||||||
|
|
||||||
|
const kinetic: Action = (node) => {
|
||||||
|
const reduce = window.matchMedia('(prefers-reduced-motion: reduce)').matches;
|
||||||
|
if (reduce) {
|
||||||
|
node.classList.add('is-in');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
const io = new IntersectionObserver(
|
||||||
|
(entries) => {
|
||||||
|
for (const e of entries) {
|
||||||
|
if (e.isIntersecting) {
|
||||||
|
node.classList.add('is-in');
|
||||||
|
io.unobserve(node);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{ threshold: 0.4 }
|
||||||
|
);
|
||||||
|
io.observe(node);
|
||||||
|
return { destroy: () => io.disconnect() };
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<svelte:element this={as} {id} class="kinetic {cls}" use:kinetic>
|
||||||
|
{#each mots as mot, i (i)}
|
||||||
|
<span class="kinetic__w"><span class="kinetic__i" style:--d="{syncopatedDelay(i)}ms">{mot}</span></span>{' '}
|
||||||
|
{/each}
|
||||||
|
</svelte:element>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
.kinetic__w {
|
||||||
|
display: inline-block;
|
||||||
|
overflow: hidden;
|
||||||
|
vertical-align: top;
|
||||||
|
}
|
||||||
|
.kinetic__i {
|
||||||
|
display: inline-block;
|
||||||
|
}
|
||||||
|
:global(html.has-js) .kinetic:not(.is-in) .kinetic__i {
|
||||||
|
transform: translateY(105%);
|
||||||
|
}
|
||||||
|
.kinetic.is-in .kinetic__i {
|
||||||
|
transform: translateY(0);
|
||||||
|
transition: transform var(--dur-mesure) var(--ease-ka);
|
||||||
|
transition-delay: var(--d, 0ms);
|
||||||
|
}
|
||||||
|
@media (prefers-reduced-motion: reduce) {
|
||||||
|
:global(html.has-js) .kinetic .kinetic__i {
|
||||||
|
transform: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@@ -0,0 +1,268 @@
|
|||||||
|
<script lang="ts">
|
||||||
|
import { page } from '$app/state';
|
||||||
|
import Icon from './Icon.svelte';
|
||||||
|
|
||||||
|
const primaires = [
|
||||||
|
{ href: '/histoire/', label: 'Histoire' },
|
||||||
|
{ href: '/me-67/', label: 'Mé 67' },
|
||||||
|
{ href: '/militants/', label: 'Militants' },
|
||||||
|
{ href: '/ideologie/', label: 'Idéologie' },
|
||||||
|
{ href: '/heritage/', label: 'Héritage' },
|
||||||
|
{ href: '/actualites/', label: 'Actualités' }
|
||||||
|
];
|
||||||
|
const secondaires = [
|
||||||
|
{ href: '/proces-1968/', label: 'Procès de 1968' },
|
||||||
|
{ href: '/publications/', label: 'Publications' },
|
||||||
|
{ href: '/charte/', label: 'Charte de 1963' },
|
||||||
|
{ href: '/orientation/', label: 'Orientation & stratégie' },
|
||||||
|
{ href: '/sources/', label: 'Sources' },
|
||||||
|
{ href: '/faq/', label: "Qu'est-ce que le GONG ?" },
|
||||||
|
{ href: '/contact/', label: 'Contact' }
|
||||||
|
];
|
||||||
|
|
||||||
|
let menuOuvert = $state(false);
|
||||||
|
let theme = $state<'dark' | 'light'>('dark');
|
||||||
|
|
||||||
|
const chemin = $derived(page.url.pathname);
|
||||||
|
function actif(href: string): boolean {
|
||||||
|
return href === '/' ? chemin === '/' : chemin.startsWith(href);
|
||||||
|
}
|
||||||
|
|
||||||
|
$effect(() => {
|
||||||
|
theme = document.documentElement.classList.contains('light-theme') ? 'light' : 'dark';
|
||||||
|
});
|
||||||
|
|
||||||
|
function basculerTheme() {
|
||||||
|
const el = document.documentElement;
|
||||||
|
const clair = el.classList.toggle('light-theme');
|
||||||
|
theme = clair ? 'light' : 'dark';
|
||||||
|
try {
|
||||||
|
localStorage.setItem('gong-theme', clair ? 'light' : 'dark');
|
||||||
|
} catch {
|
||||||
|
/* localStorage indisponible */
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Ferme le menu à chaque changement de route.
|
||||||
|
$effect(() => {
|
||||||
|
void chemin;
|
||||||
|
menuOuvert = false;
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<svelte:window
|
||||||
|
onkeydown={(e) => {
|
||||||
|
if (e.key === 'Escape') menuOuvert = false;
|
||||||
|
}}
|
||||||
|
/>
|
||||||
|
|
||||||
|
<header class="nav">
|
||||||
|
<div class="nav__bar container">
|
||||||
|
<a href="/" class="nav__brand no-underline" aria-label="GONG — accueil">
|
||||||
|
<img src="/img/gong.png" alt="" width="40" height="40" class="nav__logo" />
|
||||||
|
<span class="nav__name">GONG</span>
|
||||||
|
</a>
|
||||||
|
|
||||||
|
<nav class="nav__primary" aria-label="Navigation principale">
|
||||||
|
{#each primaires as l (l.href)}
|
||||||
|
<a href={l.href} class="nav__link no-underline" aria-current={actif(l.href) ? 'page' : undefined}>
|
||||||
|
{l.label}
|
||||||
|
</a>
|
||||||
|
{/each}
|
||||||
|
</nav>
|
||||||
|
|
||||||
|
<div class="nav__actions">
|
||||||
|
<button
|
||||||
|
class="nav__icon-btn"
|
||||||
|
onclick={basculerTheme}
|
||||||
|
aria-label={theme === 'light' ? 'Passer au thème sombre' : 'Passer au thème clair'}
|
||||||
|
>
|
||||||
|
<Icon name={theme === 'light' ? 'moon' : 'sun'} />
|
||||||
|
</button>
|
||||||
|
<button
|
||||||
|
class="nav__icon-btn nav__menu-btn"
|
||||||
|
onclick={() => (menuOuvert = !menuOuvert)}
|
||||||
|
aria-expanded={menuOuvert}
|
||||||
|
aria-controls="menu-panneau"
|
||||||
|
aria-label="Menu"
|
||||||
|
>
|
||||||
|
<Icon name={menuOuvert ? 'close' : 'menu'} />
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="flag-bar" aria-hidden="true"></div>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
{#if menuOuvert}
|
||||||
|
<button
|
||||||
|
class="nav__scrim"
|
||||||
|
aria-label="Fermer le menu"
|
||||||
|
onclick={() => (menuOuvert = false)}
|
||||||
|
tabindex="-1"
|
||||||
|
></button>
|
||||||
|
{/if}
|
||||||
|
|
||||||
|
<div id="menu-panneau" class="nav__panel" class:open={menuOuvert} aria-hidden={!menuOuvert}>
|
||||||
|
<nav aria-label="Toutes les sections">
|
||||||
|
<p class="nav__group-title">Le mouvement</p>
|
||||||
|
{#each primaires as l (l.href)}
|
||||||
|
<a href={l.href} class="nav__panel-link no-underline" aria-current={actif(l.href) ? 'page' : undefined}>
|
||||||
|
{l.label}
|
||||||
|
</a>
|
||||||
|
{/each}
|
||||||
|
<p class="nav__group-title">Documents & mémoire</p>
|
||||||
|
{#each secondaires as l (l.href)}
|
||||||
|
<a href={l.href} class="nav__panel-link no-underline" aria-current={actif(l.href) ? 'page' : undefined}>
|
||||||
|
{l.label}
|
||||||
|
</a>
|
||||||
|
{/each}
|
||||||
|
</nav>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
.nav {
|
||||||
|
position: sticky;
|
||||||
|
top: 0;
|
||||||
|
z-index: 100;
|
||||||
|
background: color-mix(in srgb, var(--noir) 92%, transparent);
|
||||||
|
backdrop-filter: blur(8px);
|
||||||
|
border-bottom: 1px solid var(--line);
|
||||||
|
}
|
||||||
|
.nav__bar {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
gap: var(--space-3);
|
||||||
|
height: var(--nav-h);
|
||||||
|
}
|
||||||
|
.nav__brand {
|
||||||
|
display: inline-flex;
|
||||||
|
align-items: center;
|
||||||
|
gap: 0.6rem;
|
||||||
|
color: var(--creme);
|
||||||
|
flex: none;
|
||||||
|
}
|
||||||
|
.nav__logo {
|
||||||
|
width: 40px;
|
||||||
|
height: 40px;
|
||||||
|
}
|
||||||
|
.nav__name {
|
||||||
|
font-family: var(--font-display);
|
||||||
|
font-weight: 900;
|
||||||
|
font-size: 1.4rem;
|
||||||
|
letter-spacing: 0.02em;
|
||||||
|
}
|
||||||
|
.nav__primary {
|
||||||
|
display: none;
|
||||||
|
align-items: center;
|
||||||
|
gap: 0.35rem;
|
||||||
|
margin-left: auto;
|
||||||
|
}
|
||||||
|
.nav__link {
|
||||||
|
font-family: var(--font-display);
|
||||||
|
font-weight: 700;
|
||||||
|
font-size: 0.82rem;
|
||||||
|
text-transform: uppercase;
|
||||||
|
letter-spacing: 0.03em;
|
||||||
|
color: var(--muted);
|
||||||
|
padding: 0.45rem 0.6rem;
|
||||||
|
border-radius: var(--radius-sm);
|
||||||
|
transition: color var(--dur-tanbou) var(--ease-ka);
|
||||||
|
}
|
||||||
|
.nav__link:hover,
|
||||||
|
.nav__link[aria-current='page'] {
|
||||||
|
color: var(--creme);
|
||||||
|
}
|
||||||
|
.nav__link[aria-current='page'] {
|
||||||
|
box-shadow: inset 0 -2px 0 var(--accent);
|
||||||
|
}
|
||||||
|
.nav__actions {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
gap: 0.25rem;
|
||||||
|
margin-left: auto;
|
||||||
|
}
|
||||||
|
.nav__primary + .nav__actions {
|
||||||
|
margin-left: 0;
|
||||||
|
}
|
||||||
|
.nav__icon-btn {
|
||||||
|
display: inline-grid;
|
||||||
|
place-items: center;
|
||||||
|
width: 42px;
|
||||||
|
height: 42px;
|
||||||
|
background: transparent;
|
||||||
|
border: 1px solid transparent;
|
||||||
|
border-radius: var(--radius-sm);
|
||||||
|
color: var(--creme);
|
||||||
|
cursor: pointer;
|
||||||
|
transition:
|
||||||
|
border-color var(--dur-tanbou) var(--ease-ka),
|
||||||
|
color var(--dur-tanbou) var(--ease-ka);
|
||||||
|
}
|
||||||
|
.nav__icon-btn:hover {
|
||||||
|
border-color: var(--line);
|
||||||
|
color: var(--accent);
|
||||||
|
}
|
||||||
|
.nav__scrim {
|
||||||
|
position: fixed;
|
||||||
|
inset: 0;
|
||||||
|
z-index: 98;
|
||||||
|
background: rgba(0, 0, 0, 0.55);
|
||||||
|
border: 0;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
.nav__panel {
|
||||||
|
position: fixed;
|
||||||
|
top: 0;
|
||||||
|
right: 0;
|
||||||
|
z-index: 99;
|
||||||
|
width: min(88vw, 340px);
|
||||||
|
height: 100dvh;
|
||||||
|
overflow-y: auto;
|
||||||
|
padding: calc(var(--nav-h) + var(--space-3)) var(--space-3) var(--space-4);
|
||||||
|
background: var(--noir-profond);
|
||||||
|
border-left: 1px solid var(--line);
|
||||||
|
transform: translateX(100%);
|
||||||
|
transition: transform var(--dur-mesure) var(--ease-ka);
|
||||||
|
}
|
||||||
|
.nav__panel.open {
|
||||||
|
transform: translateX(0);
|
||||||
|
}
|
||||||
|
.nav__group-title {
|
||||||
|
font-family: var(--font-display);
|
||||||
|
text-transform: uppercase;
|
||||||
|
font-size: 0.72rem;
|
||||||
|
letter-spacing: 0.08em;
|
||||||
|
color: var(--muted-fort);
|
||||||
|
margin: var(--space-3) 0 0.5rem;
|
||||||
|
}
|
||||||
|
.nav__panel-link {
|
||||||
|
display: block;
|
||||||
|
font-family: var(--font-display);
|
||||||
|
font-weight: 700;
|
||||||
|
text-transform: uppercase;
|
||||||
|
font-size: 0.95rem;
|
||||||
|
color: var(--creme);
|
||||||
|
padding: 0.65rem 0.5rem;
|
||||||
|
border-bottom: 1px solid var(--line);
|
||||||
|
}
|
||||||
|
.nav__panel-link:hover,
|
||||||
|
.nav__panel-link[aria-current='page'] {
|
||||||
|
color: var(--accent);
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (min-width: 960px) {
|
||||||
|
.nav__primary {
|
||||||
|
display: flex;
|
||||||
|
}
|
||||||
|
.nav__actions {
|
||||||
|
margin-left: 0;
|
||||||
|
}
|
||||||
|
.nav__menu-btn {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
.nav__panel,
|
||||||
|
.nav__scrim {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@@ -0,0 +1,59 @@
|
|||||||
|
<script lang="ts">
|
||||||
|
// Zone A « Résumé immédiat » — critique pour Google AI Overview.
|
||||||
|
// Réponse directe en tête (lead) + points essentiels. Rendu en <aside> sémantique.
|
||||||
|
interface Props {
|
||||||
|
lead: string;
|
||||||
|
points?: string[];
|
||||||
|
titre?: string;
|
||||||
|
}
|
||||||
|
let { lead, points = [], titre = 'En résumé' }: Props = $props();
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<aside class="resume" aria-label={titre}>
|
||||||
|
<p class="resume__titre"><span class="flag-chip" aria-hidden="true"></span> {titre}</p>
|
||||||
|
<p class="resume__lead">{lead}</p>
|
||||||
|
{#if points.length}
|
||||||
|
<ul class="resume__points">
|
||||||
|
{#each points as p (p)}
|
||||||
|
<li>{p}</li>
|
||||||
|
{/each}
|
||||||
|
</ul>
|
||||||
|
{/if}
|
||||||
|
</aside>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
.resume {
|
||||||
|
background: var(--card-bg);
|
||||||
|
border: 1px solid var(--line);
|
||||||
|
border-left: 4px solid var(--vert-gong);
|
||||||
|
border-radius: var(--radius-md);
|
||||||
|
padding: var(--space-3);
|
||||||
|
margin-block: var(--space-3);
|
||||||
|
}
|
||||||
|
.resume__titre {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
gap: 0.6rem;
|
||||||
|
font-family: var(--font-display);
|
||||||
|
text-transform: uppercase;
|
||||||
|
letter-spacing: 0.05em;
|
||||||
|
font-size: 0.8rem;
|
||||||
|
color: var(--muted-fort);
|
||||||
|
margin-bottom: 0.6rem;
|
||||||
|
}
|
||||||
|
.resume__lead {
|
||||||
|
font-size: 1.12rem;
|
||||||
|
line-height: 1.5;
|
||||||
|
color: var(--creme);
|
||||||
|
margin-bottom: 0.6rem;
|
||||||
|
}
|
||||||
|
.resume__points {
|
||||||
|
margin: 0;
|
||||||
|
padding-left: 1.1rem;
|
||||||
|
display: grid;
|
||||||
|
gap: 0.3rem;
|
||||||
|
}
|
||||||
|
.resume__points li {
|
||||||
|
color: var(--muted);
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@@ -0,0 +1,58 @@
|
|||||||
|
<script lang="ts">
|
||||||
|
// Barre de progression de lecture. rAF + écriture DOM directe (jamais d'état réactif par frame).
|
||||||
|
// Gradient drapeau vert→rouge. role=progressbar. Coupée en reduced-motion via la gate CSS.
|
||||||
|
import { onMount } from 'svelte';
|
||||||
|
|
||||||
|
let bar: HTMLDivElement;
|
||||||
|
|
||||||
|
onMount(() => {
|
||||||
|
let raf = 0;
|
||||||
|
let ticking = false;
|
||||||
|
const update = () => {
|
||||||
|
const h = document.documentElement.scrollHeight - window.innerHeight;
|
||||||
|
const p = h > 0 ? Math.min(1, Math.max(0, window.scrollY / h)) : 0;
|
||||||
|
bar.style.transform = `scaleX(${p})`;
|
||||||
|
bar.setAttribute('aria-valuenow', String(Math.round(p * 100)));
|
||||||
|
ticking = false;
|
||||||
|
};
|
||||||
|
const onScroll = () => {
|
||||||
|
if (!ticking) {
|
||||||
|
ticking = true;
|
||||||
|
raf = requestAnimationFrame(update);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
update();
|
||||||
|
window.addEventListener('scroll', onScroll, { passive: true });
|
||||||
|
window.addEventListener('resize', onScroll, { passive: true });
|
||||||
|
return () => {
|
||||||
|
cancelAnimationFrame(raf);
|
||||||
|
window.removeEventListener('scroll', onScroll);
|
||||||
|
window.removeEventListener('resize', onScroll);
|
||||||
|
};
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<div
|
||||||
|
bind:this={bar}
|
||||||
|
class="progress"
|
||||||
|
role="progressbar"
|
||||||
|
aria-label="Progression de lecture"
|
||||||
|
aria-valuemin="0"
|
||||||
|
aria-valuemax="100"
|
||||||
|
aria-valuenow="0"
|
||||||
|
></div>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
.progress {
|
||||||
|
position: fixed;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
z-index: 101;
|
||||||
|
height: 3px;
|
||||||
|
width: 100%;
|
||||||
|
transform: scaleX(0);
|
||||||
|
transform-origin: left;
|
||||||
|
background: linear-gradient(to right, var(--vert-gong), var(--jaune-sable), var(--rouge-gong));
|
||||||
|
pointer-events: none;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@@ -0,0 +1,30 @@
|
|||||||
|
<script lang="ts">
|
||||||
|
// Titre de section avec ornement flag-chip + révélation cinétique (mot à mot).
|
||||||
|
import KineticText from './KineticText.svelte';
|
||||||
|
|
||||||
|
interface Props {
|
||||||
|
title: string;
|
||||||
|
as?: 'h2' | 'h3';
|
||||||
|
id?: string;
|
||||||
|
class?: string;
|
||||||
|
}
|
||||||
|
let { title, as = 'h2', id, class: cls = '' }: Props = $props();
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<div class="section-title {cls}">
|
||||||
|
<span class="flag-chip" aria-hidden="true"></span>
|
||||||
|
<KineticText text={title} {as} {id} />
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
.section-title {
|
||||||
|
margin-bottom: var(--space-3);
|
||||||
|
}
|
||||||
|
.section-title .flag-chip {
|
||||||
|
margin-bottom: 0.7rem;
|
||||||
|
}
|
||||||
|
.section-title :global(h2),
|
||||||
|
.section-title :global(h3) {
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@@ -0,0 +1,122 @@
|
|||||||
|
<script lang="ts">
|
||||||
|
// SEO / AI-Overview : meta + OpenGraph + Twitter + hreflang + JSON-LD @graph.
|
||||||
|
// Organization + WebSite sont toujours présents ; les pages ajoutent leurs nœuds
|
||||||
|
// (WebPage, BreadcrumbList, Person, Event, Article, FAQPage…) via `graph`.
|
||||||
|
import { SITE } from '$lib/data/gong';
|
||||||
|
|
||||||
|
interface Props {
|
||||||
|
title: string;
|
||||||
|
description: string;
|
||||||
|
path: string; // chemin canonique, ex. '/me-67/'
|
||||||
|
type?: string; // og:type
|
||||||
|
image?: string; // chemin absolu ou relatif au site
|
||||||
|
imageAlt?: string;
|
||||||
|
publishedTime?: string;
|
||||||
|
modifiedTime?: string;
|
||||||
|
/** Nœuds schema.org additionnels, fusionnés dans @graph. */
|
||||||
|
graph?: Record<string, unknown>[];
|
||||||
|
/** Fil d'Ariane : [{name, path}]. Génère un BreadcrumbList. */
|
||||||
|
breadcrumb?: { name: string; path: string }[];
|
||||||
|
}
|
||||||
|
let {
|
||||||
|
title,
|
||||||
|
description,
|
||||||
|
path,
|
||||||
|
type = 'website',
|
||||||
|
image = '/gong-logo.png',
|
||||||
|
imageAlt = 'Logo du GONG',
|
||||||
|
publishedTime,
|
||||||
|
modifiedTime,
|
||||||
|
graph = [],
|
||||||
|
breadcrumb
|
||||||
|
}: Props = $props();
|
||||||
|
|
||||||
|
const base = SITE.url;
|
||||||
|
const canonical = $derived(base + path);
|
||||||
|
const imageAbs = $derived(image.startsWith('http') ? image : base + image);
|
||||||
|
const fullTitle = $derived(path === '/' ? title : `${title} | ${SITE.nom}`);
|
||||||
|
|
||||||
|
const orgNode = {
|
||||||
|
'@type': ['Organization', 'PoliticalParty'],
|
||||||
|
'@id': `${base}/#organization`,
|
||||||
|
name: SITE.nomComplet,
|
||||||
|
alternateName: 'GONG',
|
||||||
|
url: base,
|
||||||
|
slogan: SITE.slogan,
|
||||||
|
foundingDate: '1963-06-23',
|
||||||
|
dissolutionDate: '1968',
|
||||||
|
foundingLocation: 'Paris, France',
|
||||||
|
areaServed: 'Guadeloupe',
|
||||||
|
logo: { '@type': 'ImageObject', url: `${base}/gong-logo.png`, width: 512, height: 512 },
|
||||||
|
founder: [
|
||||||
|
{ '@type': 'Person', name: 'Pierre Sainton' },
|
||||||
|
{ '@type': 'Person', name: 'Serge Glaude' }
|
||||||
|
],
|
||||||
|
sameAs: ['https://fr.wikipedia.org/wiki/Groupe_d%27organisation_nationale_de_la_Guadeloupe']
|
||||||
|
};
|
||||||
|
|
||||||
|
const siteNode = {
|
||||||
|
'@type': 'WebSite',
|
||||||
|
'@id': `${base}/#website`,
|
||||||
|
url: base,
|
||||||
|
name: SITE.nom,
|
||||||
|
description: SITE.description,
|
||||||
|
inLanguage: 'fr-FR',
|
||||||
|
publisher: { '@id': `${base}/#organization` }
|
||||||
|
};
|
||||||
|
|
||||||
|
const breadcrumbNode = $derived(
|
||||||
|
breadcrumb && breadcrumb.length
|
||||||
|
? [
|
||||||
|
{
|
||||||
|
'@type': 'BreadcrumbList',
|
||||||
|
'@id': `${canonical}#breadcrumb`,
|
||||||
|
itemListElement: breadcrumb.map((b, i) => ({
|
||||||
|
'@type': 'ListItem',
|
||||||
|
position: i + 1,
|
||||||
|
name: b.name,
|
||||||
|
...(i < breadcrumb.length - 1 ? { item: base + b.path } : {})
|
||||||
|
}))
|
||||||
|
}
|
||||||
|
]
|
||||||
|
: []
|
||||||
|
);
|
||||||
|
|
||||||
|
const jsonLd = $derived(
|
||||||
|
JSON.stringify({ '@context': 'https://schema.org', '@graph': [orgNode, siteNode, ...breadcrumbNode, ...graph] })
|
||||||
|
);
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<svelte:head>
|
||||||
|
<title>{fullTitle}</title>
|
||||||
|
<meta name="description" content={description} />
|
||||||
|
<meta name="author" content={SITE.nomComplet} />
|
||||||
|
<meta name="robots" content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1" />
|
||||||
|
<link rel="canonical" href={canonical} />
|
||||||
|
<link rel="alternate" hreflang="fr" href={canonical} />
|
||||||
|
<link rel="alternate" hreflang="x-default" href={canonical} />
|
||||||
|
|
||||||
|
<meta property="og:title" content={fullTitle} />
|
||||||
|
<meta property="og:description" content={description} />
|
||||||
|
<meta property="og:type" content={type} />
|
||||||
|
<meta property="og:url" content={canonical} />
|
||||||
|
<meta property="og:site_name" content={SITE.nomComplet} />
|
||||||
|
<meta property="og:locale" content="fr_FR" />
|
||||||
|
<meta property="og:image" content={imageAbs} />
|
||||||
|
<meta property="og:image:alt" content={imageAlt} />
|
||||||
|
<meta property="og:image:width" content="512" />
|
||||||
|
<meta property="og:image:height" content="512" />
|
||||||
|
{#if publishedTime}<meta property="article:published_time" content={publishedTime} />{/if}
|
||||||
|
{#if modifiedTime}<meta property="article:modified_time" content={modifiedTime} />{/if}
|
||||||
|
|
||||||
|
<meta name="twitter:card" content="summary_large_image" />
|
||||||
|
<meta name="twitter:site" content={SITE.twitter} />
|
||||||
|
<meta name="twitter:creator" content={SITE.twitter} />
|
||||||
|
<meta name="twitter:title" content={fullTitle} />
|
||||||
|
<meta name="twitter:description" content={description} />
|
||||||
|
<meta name="twitter:image" content={imageAbs} />
|
||||||
|
<meta name="twitter:image:alt" content={imageAlt} />
|
||||||
|
|
||||||
|
<!-- eslint-disable-next-line svelte/no-at-html-tags — JSON-LD first-party -->
|
||||||
|
{@html `<script type="application/ld+json">${jsonLd.replace(/<\//g, '<\\/')}</` + `script>`}
|
||||||
|
</svelte:head>
|
||||||
@@ -0,0 +1,86 @@
|
|||||||
|
<script lang="ts">
|
||||||
|
// Chronologie verticale accessible (liste ordonnée). Jalons majeurs mis en exergue.
|
||||||
|
// Révélation au scroll en cascade gwoka ; contenu complet sans JS.
|
||||||
|
import { reveal } from '$lib/motion/reveal';
|
||||||
|
import type { EvenementChrono } from '$lib/data/types';
|
||||||
|
|
||||||
|
interface Props {
|
||||||
|
evenements: EvenementChrono[];
|
||||||
|
}
|
||||||
|
let { evenements }: Props = $props();
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<ol class="timeline">
|
||||||
|
{#each evenements as e, i (e.date + e.evenement)}
|
||||||
|
<li class="timeline__item" class:is-major={e.majeur} use:reveal={i}>
|
||||||
|
<span class="timeline__dot" aria-hidden="true"></span>
|
||||||
|
<div class="timeline__body">
|
||||||
|
<p class="timeline__date">{e.date}</p>
|
||||||
|
<h3 class="timeline__event">{e.evenement}</h3>
|
||||||
|
<p class="timeline__ctx">{e.contexte}</p>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
{/each}
|
||||||
|
</ol>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
.timeline {
|
||||||
|
list-style: none;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
.timeline::before {
|
||||||
|
content: '';
|
||||||
|
position: absolute;
|
||||||
|
left: 7px;
|
||||||
|
top: 6px;
|
||||||
|
bottom: 6px;
|
||||||
|
width: 2px;
|
||||||
|
background: var(--line);
|
||||||
|
}
|
||||||
|
.timeline__item {
|
||||||
|
position: relative;
|
||||||
|
padding: 0 0 var(--space-3) var(--space-4);
|
||||||
|
}
|
||||||
|
.timeline__dot {
|
||||||
|
position: absolute;
|
||||||
|
left: 0;
|
||||||
|
top: 6px;
|
||||||
|
width: 16px;
|
||||||
|
height: 16px;
|
||||||
|
border-radius: 2px;
|
||||||
|
background: var(--noir);
|
||||||
|
border: 2px solid var(--muted-fort);
|
||||||
|
transform: rotate(45deg);
|
||||||
|
}
|
||||||
|
.is-major .timeline__dot {
|
||||||
|
border-color: var(--accent);
|
||||||
|
background: var(--accent);
|
||||||
|
box-shadow: 0 0 0 4px color-mix(in srgb, var(--accent) 22%, transparent);
|
||||||
|
}
|
||||||
|
.timeline__date {
|
||||||
|
font-family: var(--font-display);
|
||||||
|
font-weight: 700;
|
||||||
|
text-transform: uppercase;
|
||||||
|
font-size: 0.82rem;
|
||||||
|
letter-spacing: 0.05em;
|
||||||
|
color: var(--accent);
|
||||||
|
margin: 0 0 0.2rem;
|
||||||
|
}
|
||||||
|
.timeline__event {
|
||||||
|
font-size: 1.05rem;
|
||||||
|
text-transform: none;
|
||||||
|
letter-spacing: 0;
|
||||||
|
margin: 0 0 0.3rem;
|
||||||
|
}
|
||||||
|
.is-major .timeline__event {
|
||||||
|
font-size: 1.25rem;
|
||||||
|
text-transform: uppercase;
|
||||||
|
}
|
||||||
|
.timeline__ctx {
|
||||||
|
color: var(--muted);
|
||||||
|
margin: 0;
|
||||||
|
font-size: 0.96rem;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@@ -0,0 +1,753 @@
|
|||||||
|
// ============================================================================
|
||||||
|
// DOSSIER DOCUMENTAIRE GONG — source unique de vérité (contenu figé, sourcé).
|
||||||
|
// Repris à l'identique de doc2sveltekit-transition/gong.py (compilation 2026-07-24).
|
||||||
|
// « Données compilées à partir de sources académiques, journalistiques et archivistiques. »
|
||||||
|
// ============================================================================
|
||||||
|
|
||||||
|
import type {
|
||||||
|
Membre,
|
||||||
|
EvenementChrono,
|
||||||
|
Influence,
|
||||||
|
EvolutionMotOrdre,
|
||||||
|
Publication,
|
||||||
|
MouvementHeritage,
|
||||||
|
OeuvreCulturelle,
|
||||||
|
Source,
|
||||||
|
Responsable
|
||||||
|
} from './types';
|
||||||
|
|
||||||
|
export const metadata = {
|
||||||
|
titre: "Le GONG — Groupe d'Organisation Nationale de la Guadeloupe",
|
||||||
|
sousTitre: 'Dossier documentaire complet',
|
||||||
|
dateCompilation: '2026-07-24',
|
||||||
|
avertissement:
|
||||||
|
'Données compilées à partir de sources académiques, journalistiques et archivistiques. Toutes les informations sont sourcées.',
|
||||||
|
sourcesPrincipales: [
|
||||||
|
"Wikipedia FR/EN — Groupe d'organisation nationale de la Guadeloupe",
|
||||||
|
"Sylvain Mary, « Briser les urnes colonialistes. Conquérir l'indépendance nationale » (OpenEdition, 2021)",
|
||||||
|
"Michelle Zancarini-Fournel, « Pierre Sainton : disparition d'une figure emblématique » (Contretemps, 2018)",
|
||||||
|
"Lutte Ouvrière, « À propos du procès devant la cour de sécurité : qu'est-ce que le GONG ? » (1968)",
|
||||||
|
'LDH France, « Guadeloupe, Mai 1967, un drame français »',
|
||||||
|
'Hypothèses.org, « Mé 1967 en Guadeloupe : un massacre colonial longtemps occulté »',
|
||||||
|
'France Archives — Opération GONG du 4 juin 1967',
|
||||||
|
'Serge Glaude, « Le GONG c quoi ? » (2017)',
|
||||||
|
"Pierre Sainton, « Vie et survie d'un fils de Guadeloupe » (Éditions Nestor, 2008)",
|
||||||
|
"Archives nationales, 5W/734, arrêt n°838 de la Cour de sûreté de l'État"
|
||||||
|
]
|
||||||
|
};
|
||||||
|
|
||||||
|
export const presentation = {
|
||||||
|
nomComplet: "Groupe d'Organisation Nationale de la Guadeloupe",
|
||||||
|
sigle: 'GONG',
|
||||||
|
nature: 'Organisation politique indépendantiste et anticolonialiste',
|
||||||
|
dateFondation: '23 juin 1963',
|
||||||
|
lieuFondation: 'Paris, France',
|
||||||
|
dateDissolution: '1968 (de facto, suite au procès et à la répression)',
|
||||||
|
territoire: 'Guadeloupe (et diaspora guadeloupéenne en métropole)',
|
||||||
|
slogan: "Briser les urnes colonialistes. Conquérir l'indépendance nationale",
|
||||||
|
contexteFondation:
|
||||||
|
"Fondé dans la clandestinité après la dissolution du Front antillo-guyanais pour l'autonomie et après la mort « accidentelle » d'Abert Béville dans le crash de l'avion qui le conduisait en Guadeloupe en juin 1962. Les fondateurs sont d'anciens militants de l'Association générale des étudiants guadeloupéens (AGEG/AGEEG) résidant en métropole.",
|
||||||
|
installationGuadeloupe:
|
||||||
|
"Le GONG s'installe légalement en Guadeloupe le 30 mai 1964, lors d'un discours de Pierre Sainton sur la stèle de Delgrès au Matouba (Saint-Claude).",
|
||||||
|
effectifs: "Quelques dizaines de membres actifs",
|
||||||
|
soutiensInternationaux: [
|
||||||
|
'Front de Libération Nationale algérien (FLN)',
|
||||||
|
"Parti communiste belge prochinois (dirigé par Jacques Grippa) — soutien logistique pour l'impression du journal",
|
||||||
|
'Mouvement de la Tricontinentale',
|
||||||
|
"OLAS (Organisation de solidarité des peuples d'Asie, d'Afrique et d'Amérique latine)"
|
||||||
|
]
|
||||||
|
};
|
||||||
|
|
||||||
|
export const ideologie = {
|
||||||
|
courantPrincipal: 'Marxisme-léninisme (tendance maoïste), tiers-mondisme, anticolonialisme',
|
||||||
|
influences: [
|
||||||
|
{ penseur: 'Karl Marx / Lénine', apport: "Théorie marxiste comme guide de l'action révolutionnaire" },
|
||||||
|
{ penseur: 'Frantz Fanon', apport: 'Analyse du colonialisme, violence libératrice, décolonisation' },
|
||||||
|
{ penseur: 'Kwame Nkrumah', apport: 'Panafricanisme, unité des peuples colonisés' },
|
||||||
|
{ penseur: 'Che Guevara', apport: 'Théorie de la guérilla, révolution continentale' },
|
||||||
|
{ penseur: 'Fidel Castro', apport: 'Révolution cubaine comme modèle caribéen' },
|
||||||
|
{ penseur: 'Mao Zedong', apport: 'Révolution paysanne, guerre populaire prolongée' },
|
||||||
|
{ penseur: 'Théories de la dépendance', apport: 'Analyse néocoloniale des économies périphériques' }
|
||||||
|
] satisfies Influence[],
|
||||||
|
objectifs: [
|
||||||
|
"Indépendance nationale de la Guadeloupe (rupture totale avec la France)",
|
||||||
|
'Révolution socialiste (transformation des structures économiques)',
|
||||||
|
'Réforme agraire (redistribution des terres)',
|
||||||
|
"Industrialisation (développement d'une économie autonome)",
|
||||||
|
'Unité antillaise (rapprochement avec les autres îles de la Caraïbe)',
|
||||||
|
'Solidarité tiers-mondiste (intégration dans le mouvement des non-alignés)'
|
||||||
|
],
|
||||||
|
evolutionMotsOrdre: [
|
||||||
|
{ periode: '1960-1963', motOrdre: 'Autogestion, puis Autonomie', contexte: 'Période étudiante (AGEG)' },
|
||||||
|
{
|
||||||
|
periode: '1963-1966',
|
||||||
|
motOrdre: 'Abolition du statut colonial, Libération nationale',
|
||||||
|
contexte: 'Fondation du GONG'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
periode: '1966-1967',
|
||||||
|
motOrdre: 'Indépendance nationale',
|
||||||
|
contexte: "Après la Tricontinentale et l'éclatement du Front antillo-guyanais"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
periode: '1967',
|
||||||
|
motOrdre: "Briser les urnes colonialistes, Conquérir l'indépendance nationale",
|
||||||
|
contexte: 'Campagne électorale législative de mars 1967'
|
||||||
|
}
|
||||||
|
] satisfies EvolutionMotOrdre[],
|
||||||
|
autoDefinition:
|
||||||
|
"Le GONG se définit comme « le pilote du peuple guadeloupéen » incarnant « l'idéologie marxiste-léniniste ». Il se prétend « parti des ouvriers, des paysans et des intellectuels révolutionnaires ».",
|
||||||
|
programmeExtrait:
|
||||||
|
"Le n°5 de Gong-Information publie un extrait de programme affirmant que « le Marxisme est la théorie qui guide le GONG » et que la Révolution comprend une « étape démocratique nationale et populaire » et « une étape socialiste », et qu'il fallait dès la première préparer la seconde.",
|
||||||
|
source: 'Lutte Ouvrière (1968), Wikipedia FR, Sylvain Mary (2021)'
|
||||||
|
};
|
||||||
|
|
||||||
|
export const membres: Membre[] = [
|
||||||
|
{
|
||||||
|
slug: 'pierre-sainton',
|
||||||
|
nom: 'Pierre Sainton',
|
||||||
|
role: 'Fondateur principal, dirigeant, idéologue',
|
||||||
|
profession: 'Médecin généraliste à Capesterre-Belle-Eau',
|
||||||
|
biographie:
|
||||||
|
"Né vers 1924. Reprit des études de médecine à près de 30 ans. Secrétaire du Comité de Liaison des étudiants coloniaux de Paris. Responsable aux affaires extérieures de l'AGEG. Fonde le GONG en juin 1963 à Paris. Prononce le discours fondateur du GONG en Guadeloupe le 30 mai 1964 sur la stèle de Delgrès au Matouba. Arrêté en juin 1967, incarcéré à la prison de la Santé. Condamné à une peine avec sursis au procès de 1968. Reprend ses activités de médecin. Décédé le 9 décembre 2018 à l'âge de 94 ans.",
|
||||||
|
citation:
|
||||||
|
"J'ai commencé par saluer la mémoire de Delgrès [...] Je déclare solennellement, sur la stèle de Delgrès que le GONG, entame dès aujourd'hui 30 mai 1964, en Guadeloupe, sur le sol national, la lutte de Libération.",
|
||||||
|
oeuvre: "Vie et survie d'un fils de Guadeloupe (Éditions Nestor, 2008)",
|
||||||
|
source: 'Contretemps (Zancarini-Fournel, 2018), RCI Guadeloupe, France-Antilles'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
slug: 'jacques-nestor',
|
||||||
|
nom: 'Jacques Nestor',
|
||||||
|
role: 'Membre fondateur, théoricien, leader de masse',
|
||||||
|
profession: 'Pêcheur, ouvrier, syndicaliste',
|
||||||
|
biographie:
|
||||||
|
"Né le 11 mars 1941. Fils d'un Guadeloupéen et d'une Alsacienne. Militant très populaire du GONG, leader de masse parmi les jeunes souvent sans-emploi. Activement surveillé par la police depuis des mois. Première victime des émeutes de mai 1967 : abattu de deux balles dans le ventre le 26 mai 1967 vers 15h30 sur la place de la Victoire à Pointe-à-Pitre. Décède à l'Hôpital général. Il avait 26 ans.",
|
||||||
|
dateDeces: '26 mai 1967',
|
||||||
|
lieuDeces: 'Place de la Victoire, Pointe-à-Pitre',
|
||||||
|
circonstances:
|
||||||
|
"Premier mort des tueries de mai 1967. Abattu par les forces de l'ordre lors de la manifestation.",
|
||||||
|
source: 'LDH France, Hypothèses.org, La1ère, Europe-Solidaire'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
slug: 'marcel-manville',
|
||||||
|
nom: 'Marcel Manville',
|
||||||
|
role: 'Membre fondateur',
|
||||||
|
profession: 'Avocat, militant anticolonialiste',
|
||||||
|
biographie: 'Avocat et militant anticolonialiste. Co-fondateur du GONG en 1963.',
|
||||||
|
source: 'Wikipedia FR (GONG)'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
slug: 'henri-bangou',
|
||||||
|
nom: 'Henri Bangou',
|
||||||
|
role: 'Membre fondateur',
|
||||||
|
profession: 'Historien, homme politique',
|
||||||
|
biographie:
|
||||||
|
'Historien et homme politique guadeloupéen. Co-fondateur du GONG en 1963. Futur maire de Pointe-à-Pitre (1965-2008) et sénateur.',
|
||||||
|
source: 'Wikipedia FR (GONG)'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
slug: 'serge-glaude',
|
||||||
|
nom: 'Serge Glaude',
|
||||||
|
role: 'Co-fondateur, membre dirigeant',
|
||||||
|
profession: 'Militant politique, auteur',
|
||||||
|
biographie:
|
||||||
|
"Co-fondateur du GONG. Accusé au procès de 1968. Auteur de « Le GONG c quoi ? » (2017), ouvrage retraçant l'histoire du mouvement de sa création en 1963 à sa disparition en 1968.",
|
||||||
|
oeuvre: 'Le GONG c quoi ? (2017)',
|
||||||
|
source: 'France-Antilles, La1ère'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
slug: 'claude-makouke',
|
||||||
|
nom: 'Claude Makouke',
|
||||||
|
role: 'Membre du GONG',
|
||||||
|
profession: 'Militant',
|
||||||
|
biographie:
|
||||||
|
'Membre du GONG. Témoin des événements de mai 1967. Ses témoignages sont cités dans plusieurs travaux universitaires.',
|
||||||
|
citations: [
|
||||||
|
"La grève des ouvriers du bâtiment de mai 1967 était une occasion rêvée pour sévir. Et c'est vrai qu'ils ont frappé fort, aveuglément mais tout en ayant en tête que l'essentiel des gens qu'ils devaient tuer étaient des militants du GONG.",
|
||||||
|
"Sans le GONG, [les évènements de mai] n'auraient pas eu lieu. Il y aurait eu une grève qui aurait tenu un certain temps [...] Mais en fait, ce n'était pas ça l'objectif du colonialisme : c'était de faire traîner le mouvement de grève de manière à ce que les ouvriers et le peuple même se soulèvent, que le GONG vienne apporter son soutien et on en aurait profité pour l'éliminer."
|
||||||
|
],
|
||||||
|
source: 'Hypothèses.org (Mé 1967)'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
slug: 'louis-theodore',
|
||||||
|
nom: 'Louis Théodore',
|
||||||
|
role: 'Membre du GONG',
|
||||||
|
profession: 'Militant',
|
||||||
|
biographie: 'Membre du GONG. Accusé au procès de 1968 aux côtés de Serge Glaude.',
|
||||||
|
source: 'La1ère'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
slug: 'yvon-coudrieu',
|
||||||
|
nom: 'Yvon Coudrieu',
|
||||||
|
role: 'Sympathisant / victime',
|
||||||
|
profession: 'Enseignant',
|
||||||
|
biographie:
|
||||||
|
"Blessé par balle lors des événements de mai 1967, il perdit une jambe. Son cas est cité comme exemple de la violence de la répression.",
|
||||||
|
source: 'LDH France'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
slug: 'abert-beville',
|
||||||
|
nom: 'Abert Béville',
|
||||||
|
role: 'Précurseur (mort avant la fondation du GONG)',
|
||||||
|
profession: 'Militant anticolonialiste',
|
||||||
|
biographie:
|
||||||
|
"Militant anticolonialiste. Mort « accidentellement » dans le crash de l'avion qui le conduisait en Guadeloupe en juin 1962. Sa mort est un des éléments déclencheurs de la fondation du GONG.",
|
||||||
|
source: 'LDH France'
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
export const accusesProces1968 = {
|
||||||
|
description: "18 Guadeloupéens accusés d'atteinte à l'intégrité du territoire français",
|
||||||
|
nomsIdentifies: [
|
||||||
|
'Pierre Sainton (Dr, fondateur du GONG)',
|
||||||
|
'Serge Glaude (co-fondateur du GONG)',
|
||||||
|
'Louis Théodore (membre du GONG)',
|
||||||
|
'Kelly',
|
||||||
|
'Gérard Lauriette',
|
||||||
|
'Antoine Marguerite',
|
||||||
|
'Roland Minatchy',
|
||||||
|
'Saturnin Nicolo',
|
||||||
|
'Michel-Théodore'
|
||||||
|
],
|
||||||
|
note: "La liste complète des 18 accusés n'est pas entièrement documentée dans les sources accessibles. Les noms ci-dessus sont ceux identifiés dans les sources consultées.",
|
||||||
|
source: 'Europe-Solidaire, La1ère, France-Antilles'
|
||||||
|
};
|
||||||
|
|
||||||
|
export const chronologie: EvenementChrono[] = [
|
||||||
|
{
|
||||||
|
date: '1946',
|
||||||
|
evenement: 'La Guadeloupe devient département français (loi du 19 mars 1946)',
|
||||||
|
contexte: "Promesses d'égalité non tenues, persistance des structures coloniales"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
date: '1948',
|
||||||
|
evenement: "Érection de la stèle de Delgrès au Matouba (Saint-Claude) pour le centenaire de l'abolition",
|
||||||
|
contexte: 'Lieu de mémoire qui deviendra symbolique pour le GONG'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
date: 'Décembre 1959',
|
||||||
|
evenement: 'Émeutes de décembre 1959 en Martinique',
|
||||||
|
contexte: 'Premières révoltes anticoloniales aux Antilles françaises'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
date: '1960',
|
||||||
|
evenement: "Première Conférence de la Jeunesse guadeloupéenne organisée par l'AGEG",
|
||||||
|
contexte:
|
||||||
|
'Mobilisation de la jeunesse. On trouve déjà dans les rangs ceux qui seront les militants du GONG en 1963.'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
date: '1961',
|
||||||
|
evenement: "Création du Front antillo-guyanais pour l'autonomie",
|
||||||
|
contexte: 'Première organisation nationaliste antillaise'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
date: 'Juin 1962',
|
||||||
|
evenement: "Dissolution du Front antillo-guyanais. Mort d'Abert Béville dans un crash d'avion.",
|
||||||
|
contexte: 'Éléments déclencheurs de la fondation du GONG'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
date: '23 juin 1963',
|
||||||
|
evenement: 'FONDATION DU GONG à Paris',
|
||||||
|
contexte:
|
||||||
|
"Fondé par d'anciens militants de l'AGEG (Pierre Sainton, Jacques Nestor, Marcel Manville, Henri Bangou, Serge Glaude et d'autres). Naît dans la clandestinité.",
|
||||||
|
majeur: true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
date: '1964',
|
||||||
|
evenement:
|
||||||
|
'Publication clandestine de Gong-Information (imprimé en Belgique avec le soutien du PC belge prochinois de Jacques Grippa)',
|
||||||
|
contexte: 'Diffusion en Guadeloupe et dans la diaspora'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
date: '30 mai 1964',
|
||||||
|
evenement: 'Installation légale du GONG en Guadeloupe',
|
||||||
|
contexte:
|
||||||
|
"Discours de Pierre Sainton sur la stèle de Delgrès au Matouba (Saint-Claude). « Je déclare solennellement [...] que le GONG entame dès aujourd'hui 30 mai 1964, en Guadeloupe, sur le sol national, la lutte de Libération. »",
|
||||||
|
majeur: true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
date: '1964-1967',
|
||||||
|
evenement: 'Activité du GONG en Guadeloupe',
|
||||||
|
contexte:
|
||||||
|
"Propagande (graffitis, tracts clandestins), cercles d'études marxistes, conférences dans les quartiers populaires, distribution du journal. Soutien du FLN algérien."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
date: '1966',
|
||||||
|
evenement: 'Conférence tricontinentale de La Havane',
|
||||||
|
contexte:
|
||||||
|
"Le GONG prend un « nouveau virage à gauche » et adopte le mot d'ordre d'indépendance nationale (abandonnant l'autonomie)."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
date: 'Mars 1967',
|
||||||
|
evenement:
|
||||||
|
"Campagne électorale législative. Affiches du GONG : « Briser les urnes colonialistes » / « Conquérir l'indépendance nationale »",
|
||||||
|
contexte:
|
||||||
|
'Les affiches sont saisies par la police sur le port de Pointe-à-Pitre. Révolte urbaine à Basse-Terre consécutive à une agression raciste.'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
date: '1er mai 1967',
|
||||||
|
evenement: "Manifestation pour l'indépendance organisée par Pierre Sainton à Capesterre-Belle-Eau",
|
||||||
|
contexte: 'Surprend les autorités'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
date: '26 mai 1967',
|
||||||
|
evenement: 'ÉMEUTES DE MAI 1967 — Jour 1',
|
||||||
|
contexte:
|
||||||
|
"Grève des ouvriers du bâtiment (revendication : +2,5 % de salaire). Agression raciste d'un ouvrier guadeloupéen par un patron béké (responsable local de l'UNR). Manifestation à Pointe-à-Pitre. Les forces de l'ordre tirent à balles réelles. Jacques Nestor (membre du GONG) est la première victime, abattu vers 15h30.",
|
||||||
|
majeur: true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
date: '27 mai 1967',
|
||||||
|
evenement: 'ÉMEUTES — Jour 2',
|
||||||
|
contexte: "Les émeutes s'étendent. Nouveaux morts. Répression généralisée."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
date: '28 mai 1967',
|
||||||
|
evenement: 'ÉMEUTES — Jour 3',
|
||||||
|
contexte:
|
||||||
|
'Poursuite de la répression. Bilan officiel : 7 à 8 morts. Estimations des historiens : 80 à 200 victimes. Nombreux blessés et disparus.'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
date: '4 juin 1967',
|
||||||
|
evenement: "Opération « GONG » — Arrestations massives",
|
||||||
|
contexte:
|
||||||
|
"Le préfet Pierre Bolotte fait déférer 14 membres du GONG devant la Cour de sûreté de l'État à Paris. Transfert aux prisons de Fresnes et de la Santé.",
|
||||||
|
majeur: true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
date: '17 avril / 17 juin 1967',
|
||||||
|
evenement: 'Rapports du commissaire Honoré Gévaudan',
|
||||||
|
contexte:
|
||||||
|
"Deux rapports policiers démontrent l'absence de responsabilité du GONG dans les événements. Le rapport d'avril 1967 ne sera déclassifié qu'en avril 2016."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
date: '19 février - 1er mars 1968',
|
||||||
|
evenement: "PROCÈS DES 18 GUADELOUPÉENS devant la Cour de sûreté de l'État (Paris)",
|
||||||
|
contexte:
|
||||||
|
"18 accusés d'atteinte à l'intégrité du territoire français. Témoins à la barre : Jean-Paul Sartre, Aimé Césaire, représentant de la LDH. Avocats : Me Henri Leclerc et d'autres. Verdict : 13 acquittés, 6 condamnés à des peines avec sursis (dont Pierre Sainton). Jugement considéré comme une victoire politique par les militants.",
|
||||||
|
majeur: true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
date: '17 avril 1968',
|
||||||
|
evenement: 'Libération des 19 Guadeloupéens détenus',
|
||||||
|
contexte: "La Cour de Sûreté de l'État libère les accusés. 13 acquittés, 6 condamnés avec sursis."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
date: '1968',
|
||||||
|
evenement: 'DISSOLUTION DE FACTO DU GONG',
|
||||||
|
contexte:
|
||||||
|
'Décapitation du mouvement indépendantiste. Passage à la clandestinité pour certains. Exil de nombreux militants. Divisions parmi les nationalistes.',
|
||||||
|
majeur: true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
date: '1978',
|
||||||
|
evenement: "Création de l'UPLG (Union Populaire pour la Libération de la Guadeloupe)",
|
||||||
|
contexte: "Fondée par d'anciens membres du GONG. Premier parti politique indépendantiste structuré issu du GONG."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
date: '2008',
|
||||||
|
evenement: "Publication de l'autobiographie de Pierre Sainton : « Vie et survie d'un fils de Guadeloupe »",
|
||||||
|
contexte: 'Éditions Nestor, Gourbeyre'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
date: '2017',
|
||||||
|
evenement: "Publication de « Le GONG c quoi ? » par Serge Glaude",
|
||||||
|
contexte: "50 ans après les événements de mai 1967. Co-fondateur du GONG retrace l'histoire du mouvement."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
date: '9 décembre 2018',
|
||||||
|
evenement: 'Décès de Pierre Sainton à l’âge de 94 ans',
|
||||||
|
contexte: 'Fondateur du GONG. Médecin généraliste à Capesterre-Belle-Eau.'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
date: '2021',
|
||||||
|
evenement: "Publication de l'article de Sylvain Mary : « Briser les urnes colonialistes » (OpenEdition)",
|
||||||
|
contexte: 'Analyse iconographique de la propagande du GONG en 1967'
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
export const evenementsMai1967 = {
|
||||||
|
titre: "Les émeutes de mai 1967 en Guadeloupe (« Mé 67 »)",
|
||||||
|
contexte: {
|
||||||
|
social:
|
||||||
|
"Grève des ouvriers du bâtiment pour une augmentation de salaire de 2,5 %. Chômage croissant, émigration massive.",
|
||||||
|
racial:
|
||||||
|
"Agression raciste d'un ouvrier guadeloupéen par un patron béké (responsable local de l'UNR gaulliste) qui demande à son chien « Dis bonjour au nègre ! »",
|
||||||
|
politique:
|
||||||
|
'Élections législatives de mars 1967 marquées par des fraudes. Le préfet Pierre Bolotte (venant d’Algérie) accuse le GONG et les communistes.',
|
||||||
|
international:
|
||||||
|
"Contexte de décolonisation. Indépendance de l'Algérie (1962). Mouvements de libération en Afrique. Révolution cubaine."
|
||||||
|
},
|
||||||
|
deroulement: {
|
||||||
|
'26 mai':
|
||||||
|
"Manifestation à Pointe-à-Pitre. Les forces de l'ordre (deux escadrons de gendarmerie déployés par le préfet Bolotte) tirent à balles réelles. Jacques Nestor (GONG) est la première victime, abattu vers 15h30.",
|
||||||
|
'27 mai': "Les émeutes s'étendent. Nouveaux morts.",
|
||||||
|
'28 mai': 'Répression généralisée. Terreur dans la population.'
|
||||||
|
},
|
||||||
|
bilan: {
|
||||||
|
officiel: '7 à 8 morts',
|
||||||
|
estimationsHistoriens: '80 à 200 victimes (morts, blessés, disparus)',
|
||||||
|
blesses: 'Plus de 30 blessés',
|
||||||
|
note: 'Des blessés transportés dans les hôpitaux en Martinique ne sont jamais revenus. Les gens enterrèrent leurs morts en catimini. La terreur allait perdurer quarante années.'
|
||||||
|
},
|
||||||
|
roleDuGONG: {
|
||||||
|
actions: [
|
||||||
|
'Soutien actif aux revendications ouvrières',
|
||||||
|
'Distribution de tracts appelant à la mobilisation',
|
||||||
|
'Participation de militants à la manifestation du 26 mai',
|
||||||
|
'Tentative de politisation du mouvement social'
|
||||||
|
],
|
||||||
|
controverse:
|
||||||
|
"Les autorités françaises ont initialement pensé que l'insurrection avait été fomentée par le GONG, mais il est apparu après enquête que les émeutes étaient spontanées.",
|
||||||
|
rapportsPolice:
|
||||||
|
"Le commissaire divisionnaire Gévaudan conclut : « les investigations qui ont été menées à Pointe-à-Pitre n'ont pu apporter la preuve de la responsabilité directe du GONG dans la préparation, l'organisation et l'exécution des manifestations de rues des 26 et 27 mai 1967. »",
|
||||||
|
analyse:
|
||||||
|
"Selon Claude Makouke (membre du GONG), le gouvernement a utilisé la grève comme prétexte pour éliminer le GONG : « ce n'était pas ça l'objectif du colonialisme : c'était de faire traîner le mouvement de grève de manière à ce que les ouvriers et le peuple même se soulèvent, que le GONG vienne apporter son soutien et on en aurait profité pour l'éliminer. »"
|
||||||
|
},
|
||||||
|
source: 'Wikipedia FR (Émeutes de mai 1967), LDH France, Hypothèses.org, Contretemps'
|
||||||
|
};
|
||||||
|
|
||||||
|
export const proces1968 = {
|
||||||
|
nom: 'Procès des 18 Guadeloupéens',
|
||||||
|
juridiction: "Cour de sûreté de l'État (Paris)",
|
||||||
|
noteJuridiction:
|
||||||
|
"Tribunal d'exception créé en 1963 pour juger les responsables de l'OAS. Dissous en 1981. Dans la seconde moitié des années 1960, se réoriente vers la répression du gauchisme et de l'indépendantisme.",
|
||||||
|
dates: '19 février - 1er mars 1968',
|
||||||
|
accusation: "Atteinte à l'intégrité du territoire français, complot contre l'État et l'unité de la nation",
|
||||||
|
nombreAccuses: 18,
|
||||||
|
temoinsDefense: [
|
||||||
|
'Jean-Paul Sartre (philosophe, écrivain)',
|
||||||
|
'Aimé Césaire (poète, homme politique martiniquais)',
|
||||||
|
"Représentant de la Ligue des Droits de l'Homme"
|
||||||
|
],
|
||||||
|
avocats: ['Me Henri Leclerc (barreau de Paris)', 'Autres avocats du barreau de Paris', 'Avocats guadeloupéens'],
|
||||||
|
verdict: {
|
||||||
|
acquittes: 13,
|
||||||
|
condamnes: 6,
|
||||||
|
peines: 'Prison avec sursis pour les 6 condamnés (dont Pierre Sainton)',
|
||||||
|
interpretation:
|
||||||
|
"Jugement considéré comme une victoire politique par les militants, l'accusation n'ayant pas réussi à réunir de preuves."
|
||||||
|
},
|
||||||
|
elementsCles: [
|
||||||
|
"L'absence de responsabilité du GONG dans les événements est démontrée par deux rapports policiers (17 avril et 17 juin 1967) du commissaire Gévaudan.",
|
||||||
|
"Le rapport d'avril 1967 n'a été déclassifié qu'en avril 2016.",
|
||||||
|
"L'inculpation est due à l'obstination du préfet Pierre Bolotte et des services de Jacques Foccart.",
|
||||||
|
"Un dirigeant du GONG montre à la barre que la charte de l'organisation ne contenait ni appel au séparatisme ni appel à la violence."
|
||||||
|
],
|
||||||
|
source: 'Contretemps (Zancarini-Fournel), Europe-Solidaire, La1ère, Critical-Stages, Archives nationales 5W/734'
|
||||||
|
};
|
||||||
|
|
||||||
|
export const publications: Publication[] = [
|
||||||
|
{
|
||||||
|
titre: 'Gong-Information',
|
||||||
|
sousTitre: 'Journal du Patriote Guadeloupéen',
|
||||||
|
type: 'Journal / Organe politique et théorique du GONG',
|
||||||
|
periode: '1964-1967',
|
||||||
|
lieuImpression: 'Belgique (avec le soutien du Parti communiste belge prochinois de Jacques Grippa)',
|
||||||
|
lieuDiffusion: 'France (clandestinement) et Guadeloupe',
|
||||||
|
contenu: 'Propagande indépendantiste, analyses marxistes, mots d’ordre révolutionnaires',
|
||||||
|
extraitProgramme:
|
||||||
|
"Le n°5 publie un extrait de programme : « le Marxisme est la théorie qui guide le GONG » et la Révolution comprend une « étape démocratique nationale et populaire » et « une étape socialiste ».",
|
||||||
|
source: 'Lutte Ouvrière (1968), INHA/Agorha, SISMO'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
titre: 'Révolution Caraïbe',
|
||||||
|
type: 'Journal',
|
||||||
|
periode: 'Non documentée précisément',
|
||||||
|
contenu: 'Distribution dans les quartiers populaires',
|
||||||
|
source: 'Wikipedia FR (GONG)'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
titre: 'Tracts et brochures clandestins',
|
||||||
|
type: 'Propagande',
|
||||||
|
periode: '1963-1967',
|
||||||
|
contenu: 'Appels à la mobilisation, dénonciation du colonialisme, mots d’ordre indépendantistes',
|
||||||
|
source: 'LDH France, Contretemps'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
titre: 'Affiches électorales (mars 1967)',
|
||||||
|
type: 'Propagande électorale',
|
||||||
|
periode: 'Mars 1967',
|
||||||
|
contenu: "« Briser les urnes colonialistes » / « Conquérir l'indépendance nationale »",
|
||||||
|
note: 'Saisies par la police sur le port de Pointe-à-Pitre',
|
||||||
|
source: 'Contretemps, Sylvain Mary (2021)'
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
export const repression = {
|
||||||
|
arrestations:
|
||||||
|
"Plus de 70 arrestations entre la Guadeloupe et la France. Des étudiants de l'AGEG, des ouvriers de Fraternité ouvrière, des employés, des journalistes du Progrès social et de La Vérité, des médecins, des avocats.",
|
||||||
|
incarceration: 'Prisons de Fresnes et de la Santé (Paris)',
|
||||||
|
perquisitions: 'Saisies de matériel de propagande',
|
||||||
|
dissolution: 'Le GONG est dissous par les pouvoirs publics suite à la révolte urbaine des 25-26 mai 1967',
|
||||||
|
consequences: [
|
||||||
|
'Décapitation du mouvement indépendantiste',
|
||||||
|
'Passage à la clandestinité totale pour certains militants',
|
||||||
|
'Exil de nombreux militants',
|
||||||
|
'Démantèlement du GONG',
|
||||||
|
'Répression des journaux progressistes (La Vérité, Le Progrès social des frères Rodes)',
|
||||||
|
'Terreur durable dans la population (40 ans selon la LDH)'
|
||||||
|
],
|
||||||
|
responsables: [
|
||||||
|
{
|
||||||
|
nom: 'Pierre Bolotte',
|
||||||
|
role: 'Préfet de Guadeloupe',
|
||||||
|
note: "Venant d'Algérie. Accuse le GONG dès le début des événements."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
nom: 'Jacques Foccart',
|
||||||
|
role: "Secrétaire général de l'Élysée aux affaires africaines et malgaches",
|
||||||
|
note: "Ses services sont impliqués dans l'inculpation des membres du GONG."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
nom: 'Hersant',
|
||||||
|
role: 'Directeur de France-Antilles',
|
||||||
|
note: "Le seul quotidien en place, gaulliste, participe à la propagande d'État contre le GONG."
|
||||||
|
}
|
||||||
|
] satisfies Responsable[],
|
||||||
|
source: 'LDH France, Contretemps, Hypothèses.org'
|
||||||
|
};
|
||||||
|
|
||||||
|
export const heritage = {
|
||||||
|
mouvements: [
|
||||||
|
{
|
||||||
|
nom: 'UPLG (Union Populaire pour la Libération de la Guadeloupe)',
|
||||||
|
dateCreation: '1978',
|
||||||
|
description:
|
||||||
|
"Premier parti politique indépendantiste structuré. Créé par d'anciens membres du GONG. Toujours actif en 2026.",
|
||||||
|
source: 'Wikipedia FR, Sylvain Mary (2021), Union-Communiste'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
nom: 'ARC (Alliance Révolutionnaire Caraïbe)',
|
||||||
|
dateCreation: 'Non documentée précisément',
|
||||||
|
description: 'Mouvement révolutionnaire caribéen influencé par le GONG.',
|
||||||
|
source: 'Wikipedia FR (GONG)'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
nom: 'MPGI (Mouvement Populaire pour une Guadeloupe Indépendante)',
|
||||||
|
dateCreation: 'Non documentée précisément',
|
||||||
|
description: 'Mouvement indépendantiste issu de la mouvance du GONG.',
|
||||||
|
source: 'Wikipedia FR (GONG)'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
nom: 'UTA (Union des Travailleurs Antillais)',
|
||||||
|
dateCreation: 'Post-1968',
|
||||||
|
description:
|
||||||
|
"Syndicat de type nouveau, non affilié aux centrales françaises. Créé par d'anciens membres du GONG et de l'AGEG.",
|
||||||
|
source: 'LDH France'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
nom: 'UGTG (Union Générale des Travailleurs de Guadeloupe)',
|
||||||
|
dateCreation: '1973',
|
||||||
|
description: 'Syndicat de type nouveau préconisant la lutte de masses. Issu de la mouvance GONG/AGEG.',
|
||||||
|
source: 'LDH France'
|
||||||
|
}
|
||||||
|
] satisfies MouvementHeritage[],
|
||||||
|
influenceCulturelle: [
|
||||||
|
{
|
||||||
|
oeuvre: 'La Chasse au racoon',
|
||||||
|
auteur: 'Max Jeanne',
|
||||||
|
type: 'Roman',
|
||||||
|
date: '1980',
|
||||||
|
sujet: 'Évoque les événements de mai 1967'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
oeuvre: "L'Impossible Procès des Guadeloupéens",
|
||||||
|
auteur: 'Collectif',
|
||||||
|
type: 'Pièce de théâtre / reconstitution',
|
||||||
|
date: '2018-2019',
|
||||||
|
sujet:
|
||||||
|
'Reconstitution du procès des 18 Guadeloupéens. Jouée au Théâtre Aimé-Césaire (Martinique) et en Guadeloupe.'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
oeuvre: "Vie et survie d'un fils de Guadeloupe",
|
||||||
|
auteur: 'Pierre Sainton',
|
||||||
|
type: 'Autobiographie',
|
||||||
|
date: '2008',
|
||||||
|
sujet: 'Mémoires du fondateur du GONG'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
oeuvre: 'Le GONG c quoi ?',
|
||||||
|
auteur: 'Serge Glaude',
|
||||||
|
type: 'Essai historique',
|
||||||
|
date: '2017',
|
||||||
|
sujet: "Histoire du GONG de 1963 à 1968 par son co-fondateur"
|
||||||
|
}
|
||||||
|
] satisfies OeuvreCulturelle[],
|
||||||
|
memoire: [
|
||||||
|
'Le 26 mai est devenu une date de commémoration en Guadeloupe (Mé 67)',
|
||||||
|
'La stèle de Delgrès au Matouba (Saint-Claude) reste un lieu de mémoire lié au GONG',
|
||||||
|
"Les événements de mai 1967 ont été officiellement reconnus et une commission d'information a été créée",
|
||||||
|
"Le rapport Gévaudan d'avril 1967 a été déclassifié en avril 2016",
|
||||||
|
"L'UPLG reste active en 2026 et se réclame de l'héritage du GONG"
|
||||||
|
],
|
||||||
|
source: 'Wikipedia FR, LDH France, Sylvain Mary (2021), CaraibCreoleNews'
|
||||||
|
};
|
||||||
|
|
||||||
|
export const contexteHistorique = {
|
||||||
|
guadeloupeAvantGONG: {
|
||||||
|
statut: 'Département français depuis 1946',
|
||||||
|
economie:
|
||||||
|
'Économie de plantation (canne à sucre, banane). Dominée par les békés (grands planteurs blancs descendants de colons).',
|
||||||
|
social:
|
||||||
|
'Chômage massif, émigration vers la métropole (BUMIDOM), inégalités raciales et sociales persistantes.',
|
||||||
|
politique: "PCG (Parti Communiste Guadeloupéen) comme principale force d'opposition. Revendication d'autonomie."
|
||||||
|
},
|
||||||
|
contexteInternational: {
|
||||||
|
decolonisation: "Indépendance de l'Algérie (1962), mouvements de libération en Afrique",
|
||||||
|
guerreFroide: 'Influence du marxisme-léninisme, du maoïsme',
|
||||||
|
revolutionCubaine: '1959 — Modèle caribéen de révolution',
|
||||||
|
tricontinentale: '1966 — Conférence de La Havane, solidarité des peuples du Tiers-Monde',
|
||||||
|
guerreVietnam: 'Mobilisation anti-impérialiste mondiale'
|
||||||
|
},
|
||||||
|
precurseurs: [
|
||||||
|
"Louis Delgrès (1766-1802) — Résistance à l'esclavage. Figure tutélaire du GONG.",
|
||||||
|
"Front antillo-guyanais pour l'autonomie (1961-1962)",
|
||||||
|
'Association générale des étudiants guadeloupéens (AGEG/AGEEG)',
|
||||||
|
'Abert Béville (mort en 1962)'
|
||||||
|
]
|
||||||
|
};
|
||||||
|
|
||||||
|
export const sources: Source[] = [
|
||||||
|
{
|
||||||
|
auteur: 'Pierre Sainton',
|
||||||
|
titre: "Vie et survie d'un fils de Guadeloupe",
|
||||||
|
editeur: 'Éditions Nestor, Gourbeyre',
|
||||||
|
annee: '2008',
|
||||||
|
type: 'Autobiographie'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
auteur: 'Serge Glaude',
|
||||||
|
titre: 'Le GONG c quoi ?',
|
||||||
|
editeur: 'Éditions Nestor',
|
||||||
|
annee: '2017',
|
||||||
|
type: 'Essai historique'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
auteur: 'Sylvain Mary',
|
||||||
|
titre:
|
||||||
|
"Briser les urnes colonialistes. Conquérir l'indépendance nationale. Une analyse iconographique de la propagande du GONG en 1967",
|
||||||
|
editeur: 'OpenEdition / Esclavages',
|
||||||
|
annee: '2021',
|
||||||
|
type: 'Article académique',
|
||||||
|
url: 'https://journals.openedition.org/slaveries/3788'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
auteur: 'Michelle Zancarini-Fournel',
|
||||||
|
titre: "Pierre Sainton : disparition d'une figure emblématique de la lutte anticolonialiste",
|
||||||
|
editeur: 'Contretemps',
|
||||||
|
annee: '2018',
|
||||||
|
type: 'Article',
|
||||||
|
url: 'https://www.contretemps.eu/pierre-sainton-figure-anticolonialiste/'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
auteur: 'Lutte Ouvrière',
|
||||||
|
titre: "À propos du procès devant la cour de sécurité : qu'est-ce que le GONG ?",
|
||||||
|
editeur: 'Lutte de Classe (série 1967-1968)',
|
||||||
|
annee: '1968',
|
||||||
|
type: 'Article politique',
|
||||||
|
url: 'https://www.lutte-ouvriere.org/mensuel/article/documents-archives-la-revue-lutte-de-classe-serie-1967-1968-article-a-propos-du-proces-devant-la-cour.html'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
auteur: 'LDH France',
|
||||||
|
titre: 'Guadeloupe, Mai 1967, un drame français',
|
||||||
|
editeur: "Ligue des Droits de l'Homme",
|
||||||
|
annee: 'Non daté',
|
||||||
|
type: 'Article',
|
||||||
|
url: 'https://www.ldh-france.org/Guadeloupe-Mai-1967-un-drame/'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
auteur: 'Hypothèses.org',
|
||||||
|
titre: 'Mé 1967 en Guadeloupe : un massacre colonial longtemps occulté',
|
||||||
|
editeur: 'Hypothèses (blog académique)',
|
||||||
|
annee: 'Non daté',
|
||||||
|
type: 'Article académique',
|
||||||
|
url: 'https://decolonial.hypotheses.org/2102'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
auteur: 'Collectif',
|
||||||
|
titre: "L'Impossible Procès des Guadeloupéens",
|
||||||
|
editeur: 'Critical Stages',
|
||||||
|
annee: 'Non daté',
|
||||||
|
type: 'Article / Pièce de théâtre',
|
||||||
|
url: 'https://www.critical-stages.org/19/limpossible-proces-des-guadeloupeens-une-dialectique-fragile-simpose/'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
auteur: 'France Archives',
|
||||||
|
titre: 'Opération GONG du 4 juin 1967, organisation et déroulement',
|
||||||
|
editeur: 'Archives nationales',
|
||||||
|
annee: '1967',
|
||||||
|
type: "Document d'archives",
|
||||||
|
url: 'https://francearchives.gouv.fr/fr/facomponent/f18dd4215dcdf3cb8dd82c4d40d705358c5bd67e'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
auteur: 'Wikipedia',
|
||||||
|
titre: "Groupe d'organisation nationale de la Guadeloupe",
|
||||||
|
editeur: 'Wikipedia FR/EN',
|
||||||
|
annee: '2026',
|
||||||
|
type: 'Encyclopédie',
|
||||||
|
url: 'https://fr.wikipedia.org/wiki/Groupe_d%27organisation_nationale_de_la_Guadeloupe'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
auteur: 'Wikipedia',
|
||||||
|
titre: 'Émeutes de mai 1967 en Guadeloupe',
|
||||||
|
editeur: 'Wikipedia FR',
|
||||||
|
annee: '2026',
|
||||||
|
type: 'Encyclopédie',
|
||||||
|
url: 'https://fr.wikipedia.org/wiki/%C3%89meutes_de_mai_1967_en_Guadeloupe'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
auteur: 'Europe-Solidaire',
|
||||||
|
titre: 'Guadeloupe : un an après les massacres de Mé 67, dix-neuf Guadeloupéens sont libérés',
|
||||||
|
editeur: 'Europe-Solidaire',
|
||||||
|
annee: 'Non daté',
|
||||||
|
type: 'Article',
|
||||||
|
url: 'https://www.europe-solidaire.org/spip.php?article44927'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
auteur: 'La1ère / Franceinfo',
|
||||||
|
titre: 'Février-mars-avril 1968 : les procès qui ont marqué la Guadeloupe',
|
||||||
|
editeur: 'La1ère',
|
||||||
|
annee: 'Non daté',
|
||||||
|
type: 'Article journalistique',
|
||||||
|
url: 'https://la1ere.franceinfo.fr/guadeloupe/fevrier-mars-avril-1968-proces-qui-ont-marque-guadeloupe-564093.html'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
auteur: 'Max Jeanne',
|
||||||
|
titre: 'La Chasse au racoon',
|
||||||
|
editeur: 'Non documenté',
|
||||||
|
annee: '1980',
|
||||||
|
type: 'Roman'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
auteur: 'Archives nationales',
|
||||||
|
titre: "5W/734, arrêt n°838 de la Cour de sûreté de l'État",
|
||||||
|
editeur: 'Archives nationales',
|
||||||
|
annee: '1968',
|
||||||
|
type: 'Document judiciaire'
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
// ── Helpers ──
|
||||||
|
export function getMembre(slug: string): Membre | undefined {
|
||||||
|
return membres.find((m) => m.slug === slug);
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Contact & écosystème (repris de l'index.html actuel). */
|
||||||
|
export const contact = {
|
||||||
|
email: 'gong971@proton.me',
|
||||||
|
emailOKI: 'kontak@o-k-i.net',
|
||||||
|
bokantaj: 'https://bokantaj.o-k-i.net/@GONG',
|
||||||
|
gade: 'https://gade.o-k-i.net/c/gong_tv',
|
||||||
|
forge: 'https://labola.o-k-i.net/ORGANISATION-KA-INTERNATIONALE/gong.gp'
|
||||||
|
};
|
||||||
|
|
||||||
|
export const SITE = {
|
||||||
|
url: 'https://gong.gp',
|
||||||
|
nom: 'GONG',
|
||||||
|
nomComplet: "Groupe d'Organisation Nationale de la Guadeloupe",
|
||||||
|
slogan: "Briser les urnes colonialistes. Conquérir l'indépendance nationale",
|
||||||
|
description:
|
||||||
|
"Le GONG (Groupe d'Organisation Nationale de la Guadeloupe) est une organisation indépendantiste et anticolonialiste guadeloupéenne fondée le 23 juin 1963 et dissoute en 1968.",
|
||||||
|
twitter: '@OrganisationKA'
|
||||||
|
};
|
||||||
@@ -0,0 +1,78 @@
|
|||||||
|
// Types du dossier documentaire GONG. Contenu repris à l'identique de la source
|
||||||
|
// (doc2sveltekit-transition/gong.py) — structuré, jamais réécrit. Toutes les données sont sourcées.
|
||||||
|
|
||||||
|
export interface Membre {
|
||||||
|
slug: string;
|
||||||
|
nom: string;
|
||||||
|
role: string;
|
||||||
|
profession: string;
|
||||||
|
biographie: string;
|
||||||
|
citation?: string;
|
||||||
|
citations?: string[];
|
||||||
|
oeuvre?: string;
|
||||||
|
dateDeces?: string;
|
||||||
|
lieuDeces?: string;
|
||||||
|
circonstances?: string;
|
||||||
|
source: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface EvenementChrono {
|
||||||
|
date: string;
|
||||||
|
evenement: string;
|
||||||
|
contexte: string;
|
||||||
|
majeur?: boolean; // jalon fort (mise en exergue)
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface Influence {
|
||||||
|
penseur: string;
|
||||||
|
apport: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface EvolutionMotOrdre {
|
||||||
|
periode: string;
|
||||||
|
motOrdre: string;
|
||||||
|
contexte: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface Publication {
|
||||||
|
titre: string;
|
||||||
|
sousTitre?: string;
|
||||||
|
type: string;
|
||||||
|
periode: string;
|
||||||
|
lieuImpression?: string;
|
||||||
|
lieuDiffusion?: string;
|
||||||
|
contenu: string;
|
||||||
|
extraitProgramme?: string;
|
||||||
|
note?: string;
|
||||||
|
source: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface MouvementHeritage {
|
||||||
|
nom: string;
|
||||||
|
dateCreation: string;
|
||||||
|
description: string;
|
||||||
|
source: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface OeuvreCulturelle {
|
||||||
|
oeuvre: string;
|
||||||
|
auteur: string;
|
||||||
|
type: string;
|
||||||
|
date: string;
|
||||||
|
sujet: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface Source {
|
||||||
|
auteur: string;
|
||||||
|
titre: string;
|
||||||
|
editeur: string;
|
||||||
|
annee: string;
|
||||||
|
type: string;
|
||||||
|
url?: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface Responsable {
|
||||||
|
nom: string;
|
||||||
|
role: string;
|
||||||
|
note: string;
|
||||||
|
}
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
// i18n minimal, statique-friendly (routage par dossier). FR par défaut ; EN prévu sur /en/.
|
||||||
|
// Le contenu éditorial FR reste dans les composants ; ce module gère locale + microcopy.
|
||||||
|
|
||||||
|
export type Locale = 'fr' | 'en';
|
||||||
|
export const LOCALES: Locale[] = ['fr', 'en'];
|
||||||
|
export const DEFAULT_LOCALE: Locale = 'fr';
|
||||||
|
|
||||||
|
/** Déduit la locale depuis le premier segment du chemin (/en/… → 'en', sinon 'fr'). */
|
||||||
|
export function localeFromPath(pathname: string): Locale {
|
||||||
|
const seg = pathname.replace(/^\/+/, '').split('/')[0];
|
||||||
|
return seg === 'en' ? 'en' : 'fr';
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Retourne le chemin équivalent dans l'autre locale (paires FR ↔ EN). */
|
||||||
|
export function alternatePath(pathname: string, target: Locale): string {
|
||||||
|
const current = localeFromPath(pathname);
|
||||||
|
if (current === target) return pathname;
|
||||||
|
if (target === 'en') return '/en' + (pathname === '/' ? '' : pathname);
|
||||||
|
return pathname.replace(/^\/en/, '') || '/';
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Code lang HTML (BCP-47). 'gcf' = créole guadeloupéen pour la microcopy. */
|
||||||
|
export const HTML_LANG: Record<Locale, string> = { fr: 'fr', en: 'en' };
|
||||||
@@ -0,0 +1,31 @@
|
|||||||
|
import type { Action } from 'svelte/action';
|
||||||
|
import { syncopatedDelay } from './tokens';
|
||||||
|
|
||||||
|
// use:reveal={index} — révèle l'élément à l'entrée dans le viewport avec cascade gwoka.
|
||||||
|
// L'état caché est posé en CSS uniquement sous html.has-js + prefers-reduced-motion: no-preference,
|
||||||
|
// donc le contenu reste lisible sans JS et sans animation.
|
||||||
|
export const reveal: Action<HTMLElement, number | undefined> = (node, index = 0) => {
|
||||||
|
const reduce = window.matchMedia('(prefers-reduced-motion: reduce)').matches;
|
||||||
|
if (reduce) {
|
||||||
|
node.classList.add('is-visible');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
node.style.setProperty('--d', `${syncopatedDelay(index)}ms`);
|
||||||
|
const io = new IntersectionObserver(
|
||||||
|
(entries) => {
|
||||||
|
for (const e of entries) {
|
||||||
|
if (e.isIntersecting) {
|
||||||
|
node.classList.add('is-visible');
|
||||||
|
io.unobserve(node);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{ threshold: 0.12, rootMargin: '0px 0px -8% 0px' }
|
||||||
|
);
|
||||||
|
io.observe(node);
|
||||||
|
return {
|
||||||
|
destroy() {
|
||||||
|
io.disconnect();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
};
|
||||||
@@ -0,0 +1,31 @@
|
|||||||
|
// Smooth scroll Lenis — import dynamique, une seule instance, gate reduced-motion.
|
||||||
|
import { prefersReducedMotion } from './tokens';
|
||||||
|
|
||||||
|
type Lenis = { raf: (t: number) => void; destroy: () => void; scrollTo: (t: unknown, o?: unknown) => void };
|
||||||
|
|
||||||
|
let lenis: Lenis | null = null;
|
||||||
|
let rafId = 0;
|
||||||
|
|
||||||
|
export async function initSmoothScroll(): Promise<() => void> {
|
||||||
|
if (prefersReducedMotion() || typeof window === 'undefined') return () => {};
|
||||||
|
const { default: Lenis } = await import('lenis');
|
||||||
|
lenis = new Lenis({ lerp: 0.11, wheelMultiplier: 1, smoothWheel: true }) as unknown as Lenis;
|
||||||
|
const loop = (t: number) => {
|
||||||
|
lenis?.raf(t);
|
||||||
|
rafId = requestAnimationFrame(loop);
|
||||||
|
};
|
||||||
|
rafId = requestAnimationFrame(loop);
|
||||||
|
return () => {
|
||||||
|
cancelAnimationFrame(rafId);
|
||||||
|
lenis?.destroy();
|
||||||
|
lenis = null;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Défilement vers une ancre (#id) en respectant Lenis si actif. */
|
||||||
|
export function scrollToAnchor(hash: string): void {
|
||||||
|
const el = document.querySelector(hash);
|
||||||
|
if (!el) return;
|
||||||
|
if (lenis) lenis.scrollTo(el, { offset: -80 });
|
||||||
|
else el.scrollIntoView({ behavior: 'smooth' });
|
||||||
|
}
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
// Cadences gwoka en TS (miroir des tokens CSS). Le stagger de marque est syncopé (3+3+2).
|
||||||
|
|
||||||
|
export function prefersReducedMotion(): boolean {
|
||||||
|
if (typeof window === 'undefined') return true;
|
||||||
|
return window.matchMedia('(prefers-reduced-motion: reduce)').matches;
|
||||||
|
}
|
||||||
|
|
||||||
|
const SYNCOPE = [0, 120, 300, 360, 600, 660, 900, 960];
|
||||||
|
|
||||||
|
/** Délai syncopé pour l'élément i (ms). Cycle de +1200 ms au-delà de 8 éléments. */
|
||||||
|
export function syncopatedDelay(i: number): number {
|
||||||
|
const cycle = Math.floor(i / SYNCOPE.length);
|
||||||
|
return SYNCOPE[i % SYNCOPE.length] + cycle * 1200;
|
||||||
|
}
|
||||||
@@ -0,0 +1,30 @@
|
|||||||
|
import { SITE } from './data/gong';
|
||||||
|
|
||||||
|
/** Nœud WebPage standard pour une page interne. */
|
||||||
|
export function webPage(path: string, name: string, description: string) {
|
||||||
|
const url = SITE.url + path;
|
||||||
|
return {
|
||||||
|
'@type': 'WebPage',
|
||||||
|
'@id': `${url}#webpage`,
|
||||||
|
url,
|
||||||
|
name,
|
||||||
|
description,
|
||||||
|
isPartOf: { '@id': `${SITE.url}/#website` },
|
||||||
|
about: { '@id': `${SITE.url}/#organization` },
|
||||||
|
inLanguage: 'fr-FR'
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Nœud Person (fiche militant). */
|
||||||
|
export function personNode(path: string, name: string, description: string, extra: Record<string, unknown> = {}) {
|
||||||
|
const url = SITE.url + path;
|
||||||
|
return {
|
||||||
|
'@type': 'Person',
|
||||||
|
'@id': `${url}#person`,
|
||||||
|
name,
|
||||||
|
description,
|
||||||
|
url,
|
||||||
|
memberOf: { '@id': `${SITE.url}/#organization` },
|
||||||
|
...extra
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,86 @@
|
|||||||
|
// Chargement des actualités depuis content/actualites/*.md (éditées via Sveltia CMS).
|
||||||
|
// $lib/server → garanti côté serveur : `marked` ne part jamais dans le bundle client.
|
||||||
|
// Le site étant prérendu, ce code s'exécute au build ; les pages sont ensuite 100 % statiques.
|
||||||
|
import { marked } from 'marked';
|
||||||
|
|
||||||
|
const files = import.meta.glob('/content/actualites/*.md', {
|
||||||
|
query: '?raw',
|
||||||
|
import: 'default',
|
||||||
|
eager: true
|
||||||
|
}) as Record<string, string>;
|
||||||
|
|
||||||
|
export interface Actualite {
|
||||||
|
slug: string;
|
||||||
|
titre: string;
|
||||||
|
date: string; // affichage libre (ex. « 26 mai 2026 »)
|
||||||
|
iso: string; // ISO pour <time datetime> / schema
|
||||||
|
chapeau: string;
|
||||||
|
couverture?: string;
|
||||||
|
couvertureAlt?: string;
|
||||||
|
top: boolean;
|
||||||
|
html: string; // corps rendu (first-party, Sveltia)
|
||||||
|
texte: string; // corps brut (pour description/estimation de lecture)
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Parse un front-matter YAML simple (clés scalaires, valeurs entre guillemets optionnelles). */
|
||||||
|
function parseFrontmatter(raw: string): { data: Record<string, string>; body: string } {
|
||||||
|
const m = raw.match(/^---\r?\n([\s\S]*?)\r?\n---\r?\n?([\s\S]*)$/);
|
||||||
|
if (!m) return { data: {}, body: raw };
|
||||||
|
const data: Record<string, string> = {};
|
||||||
|
for (const line of m[1].split(/\r?\n/)) {
|
||||||
|
const kv = line.match(/^([A-Za-z0-9_]+)\s*:\s*(.*)$/);
|
||||||
|
if (!kv) continue;
|
||||||
|
let val = kv[2].trim();
|
||||||
|
if (
|
||||||
|
(val.startsWith('"') && val.endsWith('"')) ||
|
||||||
|
(val.startsWith("'") && val.endsWith("'"))
|
||||||
|
) {
|
||||||
|
val = val.slice(1, -1);
|
||||||
|
}
|
||||||
|
data[kv[1]] = val;
|
||||||
|
}
|
||||||
|
return { data, body: m[2] };
|
||||||
|
}
|
||||||
|
|
||||||
|
function frToIso(date: string): string {
|
||||||
|
// Accepte déjà l'ISO ; sinon renvoie tel quel (Sveltia écrit du YYYY-MM-DD).
|
||||||
|
return /^\d{4}-\d{2}-\d{2}/.test(date) ? date : date;
|
||||||
|
}
|
||||||
|
|
||||||
|
function frDisplay(iso: string): string {
|
||||||
|
const d = new Date(iso);
|
||||||
|
if (Number.isNaN(d.getTime())) return iso;
|
||||||
|
return d.toLocaleDateString('fr-FR', { day: 'numeric', month: 'long', year: 'numeric' });
|
||||||
|
}
|
||||||
|
|
||||||
|
let cache: Actualite[] | null = null;
|
||||||
|
|
||||||
|
export function getActualites(): Actualite[] {
|
||||||
|
if (cache) return cache;
|
||||||
|
const out: Actualite[] = [];
|
||||||
|
for (const [path, raw] of Object.entries(files)) {
|
||||||
|
const slug = path.split('/').pop()!.replace(/\.md$/, '');
|
||||||
|
const { data, body } = parseFrontmatter(raw);
|
||||||
|
if (!data.titre) continue;
|
||||||
|
const iso = frToIso(data.date ?? '');
|
||||||
|
out.push({
|
||||||
|
slug,
|
||||||
|
titre: data.titre,
|
||||||
|
iso,
|
||||||
|
date: data.date ? frDisplay(iso) : '',
|
||||||
|
chapeau: data.chapeau ?? '',
|
||||||
|
couverture: data.couverture || undefined,
|
||||||
|
couvertureAlt: data.couvertureAlt || data.titre,
|
||||||
|
top: data.top === 'true',
|
||||||
|
html: marked.parse(body.trim(), { async: false }) as string,
|
||||||
|
texte: body.trim()
|
||||||
|
});
|
||||||
|
}
|
||||||
|
out.sort((a, b) => (a.iso < b.iso ? 1 : a.iso > b.iso ? -1 : 0));
|
||||||
|
cache = out;
|
||||||
|
return out;
|
||||||
|
}
|
||||||
|
|
||||||
|
export function getActualite(slug: string): Actualite | undefined {
|
||||||
|
return getActualites().find((a) => a.slug === slug);
|
||||||
|
}
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
// Rendu des documents historiques longs (charte, orientation) en HTML.
|
||||||
|
// $lib/server → marked reste côté serveur ; pages prérendues, zéro coût client.
|
||||||
|
import { marked } from 'marked';
|
||||||
|
|
||||||
|
const files = import.meta.glob('/content/documents/*.md', {
|
||||||
|
query: '?raw',
|
||||||
|
import: 'default',
|
||||||
|
eager: true
|
||||||
|
}) as Record<string, string>;
|
||||||
|
|
||||||
|
export function getDocument(nom: string): string {
|
||||||
|
const key = `/content/documents/${nom}.md`;
|
||||||
|
const raw = files[key];
|
||||||
|
if (!raw) throw new Error(`Document introuvable : ${nom}`);
|
||||||
|
return marked.parse(raw.trim(), { async: false }) as string;
|
||||||
|
}
|
||||||
@@ -0,0 +1,356 @@
|
|||||||
|
/* ============================================================================
|
||||||
|
BASE GONG — reset, primitives, gate reduced-motion.
|
||||||
|
Importé après gong-tokens.css dans +layout.svelte.
|
||||||
|
============================================================================ */
|
||||||
|
|
||||||
|
*,
|
||||||
|
*::before,
|
||||||
|
*::after {
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
|
||||||
|
html {
|
||||||
|
-webkit-text-size-adjust: 100%;
|
||||||
|
scroll-behavior: smooth;
|
||||||
|
}
|
||||||
|
|
||||||
|
body {
|
||||||
|
margin: 0;
|
||||||
|
min-height: 100dvh;
|
||||||
|
background: var(--noir);
|
||||||
|
color: var(--creme);
|
||||||
|
font-family: var(--font-body);
|
||||||
|
font-weight: 400;
|
||||||
|
line-height: 1.6;
|
||||||
|
font-size: clamp(1rem, 0.96rem + 0.2vw, 1.0625rem);
|
||||||
|
-webkit-font-smoothing: antialiased;
|
||||||
|
text-rendering: optimizeLegibility;
|
||||||
|
}
|
||||||
|
|
||||||
|
img,
|
||||||
|
picture,
|
||||||
|
svg,
|
||||||
|
video {
|
||||||
|
max-width: 100%;
|
||||||
|
height: auto;
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ── Titres — Archivo, MAJUSCULES ── */
|
||||||
|
h1,
|
||||||
|
h2,
|
||||||
|
h3,
|
||||||
|
h4 {
|
||||||
|
font-family: var(--font-display);
|
||||||
|
font-weight: 800;
|
||||||
|
line-height: 1.08;
|
||||||
|
letter-spacing: -0.01em;
|
||||||
|
text-transform: uppercase;
|
||||||
|
margin: 0 0 var(--space-2);
|
||||||
|
text-wrap: balance;
|
||||||
|
}
|
||||||
|
h1 {
|
||||||
|
font-size: clamp(2.2rem, 1.6rem + 3vw, 4rem);
|
||||||
|
font-weight: 900;
|
||||||
|
}
|
||||||
|
h2 {
|
||||||
|
font-size: clamp(1.6rem, 1.3rem + 1.6vw, 2.5rem);
|
||||||
|
}
|
||||||
|
h3 {
|
||||||
|
font-size: clamp(1.25rem, 1.1rem + 0.8vw, 1.6rem);
|
||||||
|
font-weight: 700;
|
||||||
|
}
|
||||||
|
h4 {
|
||||||
|
font-size: 1.1rem;
|
||||||
|
font-weight: 700;
|
||||||
|
}
|
||||||
|
|
||||||
|
p {
|
||||||
|
margin: 0 0 var(--space-2);
|
||||||
|
}
|
||||||
|
strong,
|
||||||
|
b {
|
||||||
|
font-weight: 700;
|
||||||
|
color: var(--creme);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ── Liens : soulignés uniquement dans le contenu (main), pas dans nav/footer ── */
|
||||||
|
a {
|
||||||
|
color: var(--accent);
|
||||||
|
text-decoration: none;
|
||||||
|
transition: color var(--dur-tanbou) var(--ease-ka);
|
||||||
|
}
|
||||||
|
a:hover {
|
||||||
|
color: var(--accent-hover);
|
||||||
|
}
|
||||||
|
main a:not(.btn):not(.card):not(.tag):not(.no-underline) {
|
||||||
|
text-decoration: underline;
|
||||||
|
text-underline-offset: 0.15em;
|
||||||
|
text-decoration-thickness: 1px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ── Focus visible (marque) ── */
|
||||||
|
:focus-visible {
|
||||||
|
outline: 3px solid var(--focus);
|
||||||
|
outline-offset: 2px;
|
||||||
|
border-radius: 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ── Layout ── */
|
||||||
|
.container {
|
||||||
|
width: 100%;
|
||||||
|
max-width: var(--container);
|
||||||
|
margin-inline: auto;
|
||||||
|
padding-inline: var(--space-3);
|
||||||
|
}
|
||||||
|
.container.lecture {
|
||||||
|
max-width: var(--container-lecture);
|
||||||
|
}
|
||||||
|
.section {
|
||||||
|
padding-block: var(--space-5);
|
||||||
|
}
|
||||||
|
.section--tight {
|
||||||
|
padding-block: var(--space-4);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ── Bouton canonique — balayage d'accent au survol ── */
|
||||||
|
.btn {
|
||||||
|
--btn-fill: var(--accent);
|
||||||
|
position: relative;
|
||||||
|
display: inline-flex;
|
||||||
|
align-items: center;
|
||||||
|
gap: 0.5em;
|
||||||
|
font-family: var(--font-display);
|
||||||
|
font-weight: 700;
|
||||||
|
font-size: 0.95rem;
|
||||||
|
text-transform: uppercase;
|
||||||
|
letter-spacing: 0.03em;
|
||||||
|
line-height: 1;
|
||||||
|
padding: 0.85em 1.4em;
|
||||||
|
border: 2px solid var(--btn-fill);
|
||||||
|
border-radius: var(--radius-sm);
|
||||||
|
background: transparent;
|
||||||
|
color: var(--creme);
|
||||||
|
cursor: pointer;
|
||||||
|
overflow: hidden;
|
||||||
|
isolation: isolate;
|
||||||
|
transition: color var(--dur-tanbou) var(--ease-ka);
|
||||||
|
}
|
||||||
|
.btn::after {
|
||||||
|
content: '';
|
||||||
|
position: absolute;
|
||||||
|
inset: 0;
|
||||||
|
z-index: -1;
|
||||||
|
background: var(--btn-fill);
|
||||||
|
transform: scaleX(0);
|
||||||
|
transform-origin: left;
|
||||||
|
transition: transform var(--dur-mesure) var(--ease-syncope);
|
||||||
|
}
|
||||||
|
.btn:hover,
|
||||||
|
.btn:focus-visible {
|
||||||
|
color: #0d0d0d;
|
||||||
|
}
|
||||||
|
.btn:hover::after,
|
||||||
|
.btn:focus-visible::after {
|
||||||
|
transform: scaleX(1);
|
||||||
|
}
|
||||||
|
.btn--fill {
|
||||||
|
background: var(--btn-fill);
|
||||||
|
color: #0d0d0d;
|
||||||
|
}
|
||||||
|
.btn--fill::after {
|
||||||
|
background: var(--accent-hover);
|
||||||
|
}
|
||||||
|
.btn--vert {
|
||||||
|
--btn-fill: var(--vert-gong);
|
||||||
|
}
|
||||||
|
.btn--ghost {
|
||||||
|
border-color: var(--line);
|
||||||
|
}
|
||||||
|
.btn--ghost:hover {
|
||||||
|
--btn-fill: var(--accent);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ── Carte canonique — liseré gauche d'accent, lift au survol ── */
|
||||||
|
.card {
|
||||||
|
position: relative;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
background: var(--card-bg);
|
||||||
|
border: var(--border-card);
|
||||||
|
border-left: 4px solid var(--accent);
|
||||||
|
border-radius: var(--radius-md);
|
||||||
|
padding: var(--space-3);
|
||||||
|
transition:
|
||||||
|
transform var(--dur-mesure) var(--ease-ka),
|
||||||
|
border-color var(--dur-mesure) var(--ease-ka),
|
||||||
|
background var(--dur-mesure) var(--ease-ka);
|
||||||
|
}
|
||||||
|
.card--vert {
|
||||||
|
border-left-color: var(--vert-gong);
|
||||||
|
}
|
||||||
|
a.card,
|
||||||
|
.card--link {
|
||||||
|
cursor: pointer;
|
||||||
|
color: inherit;
|
||||||
|
}
|
||||||
|
a.card:hover,
|
||||||
|
.card--link:hover {
|
||||||
|
transform: translateY(-4px);
|
||||||
|
background: var(--card-bg-hover);
|
||||||
|
border-color: var(--accent);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ── Tag canonique ── */
|
||||||
|
.tag {
|
||||||
|
display: inline-flex;
|
||||||
|
align-items: center;
|
||||||
|
gap: 0.35em;
|
||||||
|
font-family: var(--font-body);
|
||||||
|
font-size: 0.8rem;
|
||||||
|
font-weight: 600;
|
||||||
|
line-height: 1;
|
||||||
|
padding: 0.4em 0.7em;
|
||||||
|
border-radius: var(--radius-sm);
|
||||||
|
background: color-mix(in srgb, var(--accent) 12%, transparent);
|
||||||
|
border: 1px solid color-mix(in srgb, var(--accent) 45%, transparent);
|
||||||
|
color: var(--creme);
|
||||||
|
text-transform: none;
|
||||||
|
letter-spacing: 0;
|
||||||
|
}
|
||||||
|
.tag--vert {
|
||||||
|
background: color-mix(in srgb, var(--vert-gong) 12%, transparent);
|
||||||
|
border-color: color-mix(in srgb, var(--vert-gong) 45%, transparent);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ── Flag-bar GONG — signature (vert · blanc · rouge, segments francs) ── */
|
||||||
|
.flag-bar {
|
||||||
|
height: 6px;
|
||||||
|
width: 100%;
|
||||||
|
background: linear-gradient(
|
||||||
|
to right,
|
||||||
|
var(--vert-gong) 0 40%,
|
||||||
|
var(--blanc-drapeau) 40% 60%,
|
||||||
|
var(--rouge-gong) 60% 100%
|
||||||
|
);
|
||||||
|
}
|
||||||
|
html.light-theme .flag-bar {
|
||||||
|
background: linear-gradient(
|
||||||
|
to right,
|
||||||
|
var(--vert-gong) 0 40%,
|
||||||
|
#0d0d0d 40% 60%,
|
||||||
|
var(--rouge-gong) 60% 100%
|
||||||
|
);
|
||||||
|
}
|
||||||
|
/* Flag-chip : mini signature d'ornement de titre (56 × 6 px) */
|
||||||
|
.flag-chip {
|
||||||
|
display: inline-block;
|
||||||
|
width: 56px;
|
||||||
|
height: 6px;
|
||||||
|
border-radius: 1px;
|
||||||
|
background: linear-gradient(
|
||||||
|
to right,
|
||||||
|
var(--vert-gong) 0 40%,
|
||||||
|
var(--blanc-drapeau) 40% 60%,
|
||||||
|
var(--rouge-gong) 60% 100%
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ── Icônes (sprite SVG) ── */
|
||||||
|
.icon {
|
||||||
|
width: 1.25em;
|
||||||
|
height: 1.25em;
|
||||||
|
fill: none;
|
||||||
|
stroke: currentColor;
|
||||||
|
stroke-width: 2;
|
||||||
|
stroke-linecap: round;
|
||||||
|
stroke-linejoin: round;
|
||||||
|
flex: none;
|
||||||
|
vertical-align: middle;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ── Accessibilité ── */
|
||||||
|
.sr-only {
|
||||||
|
position: absolute;
|
||||||
|
width: 1px;
|
||||||
|
height: 1px;
|
||||||
|
padding: 0;
|
||||||
|
margin: -1px;
|
||||||
|
overflow: hidden;
|
||||||
|
clip: rect(0, 0, 0, 0);
|
||||||
|
white-space: nowrap;
|
||||||
|
border: 0;
|
||||||
|
}
|
||||||
|
.skip-link {
|
||||||
|
position: absolute;
|
||||||
|
left: 0.5rem;
|
||||||
|
top: -3rem;
|
||||||
|
z-index: 200;
|
||||||
|
background: var(--accent);
|
||||||
|
color: #0d0d0d;
|
||||||
|
font-family: var(--font-display);
|
||||||
|
font-weight: 700;
|
||||||
|
text-transform: uppercase;
|
||||||
|
padding: 0.6em 1em;
|
||||||
|
border-radius: var(--radius-sm);
|
||||||
|
transition: top var(--dur-tanbou) var(--ease-ka);
|
||||||
|
}
|
||||||
|
.skip-link:focus {
|
||||||
|
top: 0.5rem;
|
||||||
|
color: #0d0d0d;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ── Reveal — état caché seulement si JS actif ET mouvement autorisé ── */
|
||||||
|
html.has-js .reveal {
|
||||||
|
opacity: 0;
|
||||||
|
transform: translateY(18px);
|
||||||
|
}
|
||||||
|
html.has-js .reveal.is-visible {
|
||||||
|
opacity: 1;
|
||||||
|
transform: none;
|
||||||
|
transition:
|
||||||
|
opacity var(--dur-mesure) var(--ease-ka),
|
||||||
|
transform var(--dur-mesure) var(--ease-ka);
|
||||||
|
transition-delay: var(--d, 0ms);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Prose (textes historiques longs) */
|
||||||
|
.prose {
|
||||||
|
max-width: var(--container-lecture);
|
||||||
|
}
|
||||||
|
.prose p,
|
||||||
|
.prose li {
|
||||||
|
color: color-mix(in srgb, var(--creme) 90%, transparent);
|
||||||
|
}
|
||||||
|
.prose h2 {
|
||||||
|
margin-top: var(--space-4);
|
||||||
|
}
|
||||||
|
.prose h3 {
|
||||||
|
margin-top: var(--space-3);
|
||||||
|
}
|
||||||
|
.prose blockquote {
|
||||||
|
margin: var(--space-3) 0;
|
||||||
|
padding-left: var(--space-2);
|
||||||
|
border-left: 3px solid var(--accent);
|
||||||
|
color: var(--muted);
|
||||||
|
font-style: italic;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ── Gate globale prefers-reduced-motion ── */
|
||||||
|
@media (prefers-reduced-motion: reduce) {
|
||||||
|
html {
|
||||||
|
scroll-behavior: auto;
|
||||||
|
}
|
||||||
|
*,
|
||||||
|
*::before,
|
||||||
|
*::after {
|
||||||
|
animation-duration: 0.001ms !important;
|
||||||
|
animation-iteration-count: 1 !important;
|
||||||
|
transition-duration: 0.001ms !important;
|
||||||
|
scroll-behavior: auto !important;
|
||||||
|
}
|
||||||
|
html.has-js .reveal {
|
||||||
|
opacity: 1;
|
||||||
|
transform: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,87 @@
|
|||||||
|
/* ============================================================================
|
||||||
|
TOKENS GONG — identité propre (drapeau guadeloupéen vert/blanc/rouge)
|
||||||
|
Méthode OKI appliquée : thème sombre par défaut, clair opt-in WCAG AA,
|
||||||
|
cadences gwoka. Le GONG garde SES couleurs (rouge d'action, vert drapeau).
|
||||||
|
Un seul fichier de vérité — jamais de valeur recopiée à la main ailleurs.
|
||||||
|
============================================================================ */
|
||||||
|
|
||||||
|
:root {
|
||||||
|
/* ── Noyau (thème sombre = défaut) ── */
|
||||||
|
--noir: #0d0d0d; /* background */
|
||||||
|
--noir-profond: #171210; /* surface (chaud, presque noir) */
|
||||||
|
--creme: #faf6ef; /* foreground — blanc chaud */
|
||||||
|
--line: rgba(255, 255, 255, 0.1); /* filets — jamais de gris plein */
|
||||||
|
|
||||||
|
/* ── Drapeau GONG : rouge = agir/signaler · vert = valider/secondaire · blanc ── */
|
||||||
|
--rouge-gong: #e11419; /* accent : couleur d'action principale */
|
||||||
|
--rouge-vif: #ff2a30; /* survol du rouge */
|
||||||
|
--vert-gong: #00a651; /* vert drapeau : validation, mémoire, second accent */
|
||||||
|
--vert-vif: #12c766; /* survol du vert */
|
||||||
|
--blanc-drapeau: #ffffff;
|
||||||
|
|
||||||
|
/* ── Étendue (parcimonie : décorations, sémantique) ── */
|
||||||
|
--jaune-sable: #f0c419; /* rappel, mise en exergue rare */
|
||||||
|
--gris-sombre: #241c19;
|
||||||
|
|
||||||
|
/* ── Sémantique dérivée ── */
|
||||||
|
--muted: color-mix(in srgb, var(--creme) 68%, transparent);
|
||||||
|
--muted-fort: color-mix(in srgb, var(--creme) 50%, transparent);
|
||||||
|
--card-bg: rgba(255, 255, 255, 0.03);
|
||||||
|
--card-bg-hover: rgba(255, 255, 255, 0.055);
|
||||||
|
--accent: var(--rouge-gong);
|
||||||
|
--accent-hover: var(--rouge-vif);
|
||||||
|
--focus: var(--jaune-sable);
|
||||||
|
|
||||||
|
/* ── Typographie ── */
|
||||||
|
--font-display: 'Archivo', 'Arial Black', system-ui, sans-serif;
|
||||||
|
--font-body: 'Inter', -apple-system, BlinkMacSystemFont, system-ui, sans-serif;
|
||||||
|
|
||||||
|
/* ── Formes (angles nets, ≤ 6 px) ── */
|
||||||
|
--radius-sm: 3px; /* boutons, tags, badges */
|
||||||
|
--radius-md: 6px; /* cartes — jamais plus */
|
||||||
|
--border-card: 1px solid var(--line);
|
||||||
|
--border-btn: 2px solid var(--accent);
|
||||||
|
|
||||||
|
/* ── Espacements ── */
|
||||||
|
--space-1: 0.75rem;
|
||||||
|
--space-2: 1rem;
|
||||||
|
--space-3: 1.5rem;
|
||||||
|
--space-4: 2rem;
|
||||||
|
--space-5: 4rem;
|
||||||
|
--space-6: 6rem;
|
||||||
|
--container: 1200px;
|
||||||
|
--container-lecture: 68ch; /* colonne de lecture (textes historiques longs) */
|
||||||
|
|
||||||
|
/* ── Motion — cadences gwoka (rythme du ka) ── */
|
||||||
|
--ease-ka: cubic-bezier(0.22, 1, 0.36, 1); /* temps fort : attaque franche, longue tenue */
|
||||||
|
--ease-syncope: cubic-bezier(0.65, 0, 0.35, 1); /* contretemps : symétrique, urgent */
|
||||||
|
--dur-tanbou: 120ms; /* double-croche — micro-interactions */
|
||||||
|
--dur-mesure: 480ms; /* une mesure — entrées de section */
|
||||||
|
--dur-phrase: 960ms; /* deux mesures — transitions de page */
|
||||||
|
|
||||||
|
/* ── Divers ── */
|
||||||
|
--nav-h: 4rem;
|
||||||
|
--shadow-1: 0 2px 8px rgba(0, 0, 0, 0.35);
|
||||||
|
--shadow-2: 0 8px 28px rgba(0, 0, 0, 0.45);
|
||||||
|
color-scheme: dark;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ── Thème clair — opt-in, accents assombris pour WCAG AA ── */
|
||||||
|
html.light-theme {
|
||||||
|
--noir: #faf6ef;
|
||||||
|
--noir-profond: #f2ebdf;
|
||||||
|
--creme: #14100e;
|
||||||
|
--line: rgba(0, 0, 0, 0.12);
|
||||||
|
--rouge-gong: #b3060c;
|
||||||
|
--rouge-vif: #900409;
|
||||||
|
--vert-gong: #007a3d;
|
||||||
|
--vert-vif: #005e2f;
|
||||||
|
--jaune-sable: #9a7b00;
|
||||||
|
--gris-sombre: #e6dccb;
|
||||||
|
--muted: color-mix(in srgb, var(--creme) 72%, transparent);
|
||||||
|
--muted-fort: color-mix(in srgb, var(--creme) 55%, transparent);
|
||||||
|
--card-bg: rgba(0, 0, 0, 0.03);
|
||||||
|
--card-bg-hover: rgba(0, 0, 0, 0.055);
|
||||||
|
--focus: #9a7b00;
|
||||||
|
color-scheme: light;
|
||||||
|
}
|
||||||
@@ -0,0 +1,60 @@
|
|||||||
|
<script lang="ts">
|
||||||
|
import { page } from '$app/state';
|
||||||
|
import Icon from '$lib/components/Icon.svelte';
|
||||||
|
|
||||||
|
const is404 = $derived(page.status === 404);
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<svelte:head>
|
||||||
|
<title>{page.status} — GONG</title>
|
||||||
|
<meta name="robots" content="noindex" />
|
||||||
|
</svelte:head>
|
||||||
|
|
||||||
|
<main id="contenu" class="erreur container">
|
||||||
|
<Icon name="ka" size="4.5rem" />
|
||||||
|
<p class="code">{page.status}</p>
|
||||||
|
{#if is404}
|
||||||
|
<h1 lang="gcf">Paj-la pa la</h1>
|
||||||
|
<p class="lead">
|
||||||
|
Cette page n'existe pas ou a été déplacée. Mais l'histoire du GONG, elle, est toujours là.
|
||||||
|
</p>
|
||||||
|
{:else}
|
||||||
|
<h1>Erreur {page.status}</h1>
|
||||||
|
<p class="lead">{page.error?.message ?? 'Une erreur est survenue.'}</p>
|
||||||
|
{/if}
|
||||||
|
<div class="liens">
|
||||||
|
<a class="btn btn--fill" href="/">Retour à l'accueil</a>
|
||||||
|
<a class="btn" href="/histoire/">L'histoire du GONG</a>
|
||||||
|
</div>
|
||||||
|
</main>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
.erreur {
|
||||||
|
min-height: 68dvh;
|
||||||
|
display: grid;
|
||||||
|
place-content: center;
|
||||||
|
justify-items: center;
|
||||||
|
text-align: center;
|
||||||
|
gap: 0.6rem;
|
||||||
|
padding-block: var(--space-5);
|
||||||
|
}
|
||||||
|
.code {
|
||||||
|
font-family: var(--font-display);
|
||||||
|
font-weight: 900;
|
||||||
|
font-size: clamp(3rem, 2rem + 6vw, 6rem);
|
||||||
|
line-height: 1;
|
||||||
|
color: var(--accent);
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
.lead {
|
||||||
|
max-width: 46ch;
|
||||||
|
color: var(--muted);
|
||||||
|
}
|
||||||
|
.liens {
|
||||||
|
display: flex;
|
||||||
|
gap: 0.6rem;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
justify-content: center;
|
||||||
|
margin-top: var(--space-2);
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@@ -0,0 +1,52 @@
|
|||||||
|
<script lang="ts">
|
||||||
|
import '$lib/styles/gong-tokens.css';
|
||||||
|
import '$lib/styles/base.css';
|
||||||
|
import { onMount } from 'svelte';
|
||||||
|
import { onNavigate, afterNavigate } from '$app/navigation';
|
||||||
|
import Nav from '$lib/components/Nav.svelte';
|
||||||
|
import Footer from '$lib/components/Footer.svelte';
|
||||||
|
import ScrollProgressBar from '$lib/components/ScrollProgressBar.svelte';
|
||||||
|
import { initSmoothScroll } from '$lib/motion/scroll';
|
||||||
|
|
||||||
|
let { children } = $props();
|
||||||
|
|
||||||
|
// Smooth scroll Lenis — une seule instance, gate reduced-motion interne.
|
||||||
|
onMount(() => {
|
||||||
|
let cleanup: (() => void) | undefined;
|
||||||
|
initSmoothScroll().then((c) => (cleanup = c));
|
||||||
|
return () => cleanup?.();
|
||||||
|
});
|
||||||
|
|
||||||
|
// Transitions de page — View Transitions API, fallback = navigation instantanée.
|
||||||
|
onNavigate((navigation) => {
|
||||||
|
if (!document.startViewTransition) return;
|
||||||
|
return new Promise((resolve) => {
|
||||||
|
document.startViewTransition(async () => {
|
||||||
|
resolve();
|
||||||
|
await navigation.complete;
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
// Accessibilité : après un changement de route, déplacer le focus sur le contenu.
|
||||||
|
afterNavigate(() => {
|
||||||
|
const main = document.getElementById('contenu');
|
||||||
|
if (main) {
|
||||||
|
main.setAttribute('tabindex', '-1');
|
||||||
|
main.focus({ preventScroll: true });
|
||||||
|
}
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<a class="skip-link" href="#contenu">Aller au contenu</a>
|
||||||
|
<ScrollProgressBar />
|
||||||
|
<Nav />
|
||||||
|
{@render children()}
|
||||||
|
<Footer />
|
||||||
|
|
||||||
|
<style>
|
||||||
|
:global(::view-transition-old(root)),
|
||||||
|
:global(::view-transition-new(root)) {
|
||||||
|
animation-duration: var(--dur-mesure);
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
// Site 100 % pré-rendu, statique (adapter-static), URLs historiques avec slash final.
|
||||||
|
export const prerender = true;
|
||||||
|
export const trailingSlash = 'always';
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
import { getActualites } from '$lib/server/actualites';
|
||||||
|
|
||||||
|
export function load() {
|
||||||
|
const actualites = getActualites()
|
||||||
|
.slice(0, 3)
|
||||||
|
.map(({ slug, titre, date, iso, chapeau, couverture, couvertureAlt }) => ({
|
||||||
|
slug,
|
||||||
|
titre,
|
||||||
|
date,
|
||||||
|
iso,
|
||||||
|
chapeau,
|
||||||
|
couverture,
|
||||||
|
couvertureAlt
|
||||||
|
}));
|
||||||
|
return { actualites };
|
||||||
|
}
|
||||||
@@ -0,0 +1,329 @@
|
|||||||
|
<script lang="ts">
|
||||||
|
import Seo from '$lib/components/Seo.svelte';
|
||||||
|
import Resume from '$lib/components/Resume.svelte';
|
||||||
|
import SectionTitle from '$lib/components/SectionTitle.svelte';
|
||||||
|
import Icon from '$lib/components/Icon.svelte';
|
||||||
|
import { reveal } from '$lib/motion/reveal';
|
||||||
|
import { SITE, presentation } from '$lib/data/gong';
|
||||||
|
|
||||||
|
let { data } = $props();
|
||||||
|
|
||||||
|
const parcours = [
|
||||||
|
{ href: '/histoire/', icon: 'clock', titre: 'Histoire', desc: 'De la fondation en 1963 à la dissolution en 1968 : la chronologie complète.' },
|
||||||
|
{ href: '/me-67/', icon: 'flag', titre: 'Mé 67', desc: "Les tueries de mai 1967 à Pointe-à-Pitre, longtemps occultées." },
|
||||||
|
{ href: '/proces-1968/', icon: 'scale', titre: 'Procès de 1968', desc: '18 Guadeloupéens jugés à Paris ; Sartre et Césaire témoignent.' },
|
||||||
|
{ href: '/militants/', icon: 'users', titre: 'Militants', desc: 'Sainton, Nestor, Manville, Bangou, Glaude… les femmes et les hommes du GONG.' },
|
||||||
|
{ href: '/ideologie/', icon: 'glo', titre: 'Idéologie', desc: "Marxisme-léninisme, tiers-mondisme et lutte de libération nationale." },
|
||||||
|
{ href: '/heritage/', icon: 'memory', titre: 'Héritage', desc: 'UPLG, UGTG, mémoire de Mé 67 : ce que le GONG a laissé.' }
|
||||||
|
];
|
||||||
|
|
||||||
|
const webPage = [
|
||||||
|
{
|
||||||
|
'@type': 'WebPage',
|
||||||
|
'@id': `${SITE.url}/#webpage`,
|
||||||
|
url: `${SITE.url}/`,
|
||||||
|
name: `${SITE.nomComplet} — GONG`,
|
||||||
|
description: SITE.description,
|
||||||
|
isPartOf: { '@id': `${SITE.url}/#website` },
|
||||||
|
about: { '@id': `${SITE.url}/#organization` },
|
||||||
|
inLanguage: 'fr-FR'
|
||||||
|
}
|
||||||
|
];
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<Seo
|
||||||
|
title="GONG — Groupe d'Organisation Nationale de la Guadeloupe"
|
||||||
|
description="Le GONG, organisation indépendantiste guadeloupéenne (1963-1968) : histoire, Mé 67, procès de 1968, militants et héritage. Un dossier documentaire sourcé."
|
||||||
|
path="/"
|
||||||
|
graph={webPage}
|
||||||
|
/>
|
||||||
|
|
||||||
|
<main id="contenu">
|
||||||
|
<!-- HERO -->
|
||||||
|
<section class="hero">
|
||||||
|
<div class="container hero__inner">
|
||||||
|
<img class="hero__logo" src="/img/gong.png" alt="Logo du GONG" width="132" height="132" />
|
||||||
|
<p class="hero__kicker"><span class="flag-chip" aria-hidden="true"></span> 1963 — 1968</p>
|
||||||
|
<h1 class="hero__title">GONG</h1>
|
||||||
|
<p class="hero__full">{presentation.nomComplet}</p>
|
||||||
|
<p class="hero__slogan">« Briser les urnes colonialistes.<br />Conquérir l'indépendance nationale. »</p>
|
||||||
|
<p class="hero__creole" lang="gcf">Listwa a on pèp ki goumé pou libèté a-y.</p>
|
||||||
|
<div class="hero__cta">
|
||||||
|
<a class="btn btn--fill" href="/histoire/">Découvrir l'histoire</a>
|
||||||
|
<a class="btn" href="/me-67/">Comprendre Mé 67</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- RÉSUMÉ (zone A AI-Overview) -->
|
||||||
|
<section class="section--tight">
|
||||||
|
<div class="container lecture">
|
||||||
|
<Resume
|
||||||
|
titre="Qu'est-ce que le GONG ?"
|
||||||
|
lead="Le GONG (Groupe d'Organisation Nationale de la Guadeloupe) était une organisation politique indépendantiste et anticolonialiste guadeloupéenne, fondée le 23 juin 1963 à Paris et dissoute de facto en 1968 après la répression des émeutes de mai 1967 et le procès de ses militants."
|
||||||
|
points={[
|
||||||
|
'Fondé le 23 juin 1963 par d’anciens étudiants de l’AGEG (dont Pierre Sainton).',
|
||||||
|
'Objectif : l’indépendance nationale de la Guadeloupe et une révolution socialiste.',
|
||||||
|
'Impliqué dans les événements de « Mé 67 » (26-28 mai 1967).',
|
||||||
|
'18 de ses membres jugés à Paris en 1968 : 13 acquittés, 6 condamnés avec sursis.'
|
||||||
|
]}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- CHIFFRES CLÉS -->
|
||||||
|
<section class="section--tight">
|
||||||
|
<div class="container">
|
||||||
|
<div class="stats">
|
||||||
|
<div class="stat" use:reveal={0}>
|
||||||
|
<span class="stat__num">1963</span><span class="stat__lab">Fondation, à Paris</span>
|
||||||
|
</div>
|
||||||
|
<div class="stat" use:reveal={1}>
|
||||||
|
<span class="stat__num">26 mai 1967</span><span class="stat__lab">Première victime : Jacques Nestor</span>
|
||||||
|
</div>
|
||||||
|
<div class="stat" use:reveal={2}>
|
||||||
|
<span class="stat__num">80–200</span><span class="stat__lab">Victimes estimées de Mé 67</span>
|
||||||
|
</div>
|
||||||
|
<div class="stat" use:reveal={3}>
|
||||||
|
<span class="stat__num">18</span><span class="stat__lab">Accusés au procès de 1968</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- PARCOURS -->
|
||||||
|
<section class="section">
|
||||||
|
<div class="container">
|
||||||
|
<SectionTitle title="Parcourir le dossier" />
|
||||||
|
<div class="grid-cards">
|
||||||
|
{#each parcours as p, i (p.href)}
|
||||||
|
<a class="card card--link" href={p.href} use:reveal={i}>
|
||||||
|
<Icon name={p.icon} size="1.8rem" />
|
||||||
|
<h3>{p.titre}</h3>
|
||||||
|
<p>{p.desc}</p>
|
||||||
|
<span class="card__more">Lire <Icon name="arrow-right" size="1em" /></span>
|
||||||
|
</a>
|
||||||
|
{/each}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- DOCUMENTS FONDATEURS -->
|
||||||
|
<section class="section">
|
||||||
|
<div class="container">
|
||||||
|
<SectionTitle title="Les textes fondateurs" />
|
||||||
|
<div class="grid-cards grid-cards--2">
|
||||||
|
<article class="card card--vert" use:reveal={0}>
|
||||||
|
<Icon name="document" size="1.6rem" />
|
||||||
|
<h3>La Charte du GONG</h3>
|
||||||
|
<p class="muted">Juin 1963 — le texte adopté en assemblée générale qui pose le droit du peuple guadeloupéen à disposer de lui-même.</p>
|
||||||
|
<div class="card__actions">
|
||||||
|
<a class="btn btn--ghost" href="/charte/">Lire la charte</a>
|
||||||
|
<a class="btn btn--ghost" href="/assets/charte-du-gong-1963.pdf" rel="external noopener noreferrer" target="_blank">
|
||||||
|
PDF <Icon name="download" size="1em" />
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</article>
|
||||||
|
<article class="card card--vert" use:reveal={1}>
|
||||||
|
<Icon name="document" size="1.6rem" />
|
||||||
|
<h3>Orientation & stratégie</h3>
|
||||||
|
<p class="muted">Le rapport sur la lutte révolutionnaire du peuple guadeloupéen : lutte de masse, suffrage universel, voie révolutionnaire.</p>
|
||||||
|
<div class="card__actions">
|
||||||
|
<a class="btn btn--ghost" href="/orientation/">Lire le document</a>
|
||||||
|
<a class="btn btn--ghost" href="/assets/orientation-et-strategie-de-la-lutte-revolutionnaire-du-peuple-guadeloupeen-1963.pdf" rel="external noopener noreferrer" target="_blank">
|
||||||
|
PDF <Icon name="download" size="1em" />
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</article>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- ACTUALITÉS -->
|
||||||
|
{#if data.actualites.length}
|
||||||
|
<section class="section">
|
||||||
|
<div class="container">
|
||||||
|
<SectionTitle title="Actualités & mémoire" />
|
||||||
|
<div class="grid-cards">
|
||||||
|
{#each data.actualites as a, i (a.slug)}
|
||||||
|
<a class="card card--link" href="/actualites/{a.slug}/" use:reveal={i}>
|
||||||
|
{#if a.couverture}
|
||||||
|
<img class="card__cover" src={a.couverture} alt={a.couvertureAlt} loading="lazy" decoding="async" />
|
||||||
|
{/if}
|
||||||
|
<time datetime={a.iso} class="card__date">{a.date}</time>
|
||||||
|
<h3>{a.titre}</h3>
|
||||||
|
<p class="muted">{a.chapeau}</p>
|
||||||
|
</a>
|
||||||
|
{/each}
|
||||||
|
</div>
|
||||||
|
<p class="center"><a class="btn btn--ghost" href="/actualites/">Toutes les actualités</a></p>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
{/if}
|
||||||
|
|
||||||
|
<!-- CTA FINAL -->
|
||||||
|
<section class="section cta-final">
|
||||||
|
<div class="container lecture center">
|
||||||
|
<SectionTitle title="Se souvenir, transmettre" />
|
||||||
|
<p>
|
||||||
|
Le GONG a été effacé des mémoires officielles pendant des décennies. Ce site rassemble des
|
||||||
|
sources académiques, journalistiques et archivistiques pour rendre son histoire accessible à
|
||||||
|
tous.
|
||||||
|
</p>
|
||||||
|
<div class="hero__cta center-cta">
|
||||||
|
<a class="btn btn--fill" href="/faq/">Questions fréquentes</a>
|
||||||
|
<a class="btn" href="/sources/">Voir les sources</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
</main>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
.hero {
|
||||||
|
text-align: center;
|
||||||
|
padding-top: var(--space-5);
|
||||||
|
background: radial-gradient(ellipse at 50% -10%, color-mix(in srgb, var(--rouge-gong) 12%, transparent), transparent 60%);
|
||||||
|
}
|
||||||
|
.hero__inner {
|
||||||
|
padding-bottom: var(--space-5);
|
||||||
|
}
|
||||||
|
.hero__logo {
|
||||||
|
width: 132px;
|
||||||
|
height: 132px;
|
||||||
|
margin: 0 auto var(--space-2);
|
||||||
|
}
|
||||||
|
.hero__kicker {
|
||||||
|
display: inline-flex;
|
||||||
|
flex-direction: column;
|
||||||
|
align-items: center;
|
||||||
|
gap: 0.5rem;
|
||||||
|
font-family: var(--font-display);
|
||||||
|
text-transform: uppercase;
|
||||||
|
letter-spacing: 0.15em;
|
||||||
|
font-size: 0.85rem;
|
||||||
|
color: var(--muted);
|
||||||
|
}
|
||||||
|
.hero__title {
|
||||||
|
font-size: clamp(3.5rem, 2rem + 9vw, 8rem);
|
||||||
|
margin: 0.25rem 0 0;
|
||||||
|
letter-spacing: 0.02em;
|
||||||
|
}
|
||||||
|
.hero__full {
|
||||||
|
font-family: var(--font-display);
|
||||||
|
font-weight: 700;
|
||||||
|
text-transform: uppercase;
|
||||||
|
font-size: clamp(1rem, 0.9rem + 0.6vw, 1.3rem);
|
||||||
|
color: var(--creme);
|
||||||
|
margin-bottom: var(--space-3);
|
||||||
|
}
|
||||||
|
.hero__slogan {
|
||||||
|
font-family: var(--font-display);
|
||||||
|
font-weight: 800;
|
||||||
|
text-transform: uppercase;
|
||||||
|
font-size: clamp(1.3rem, 1rem + 1.6vw, 2rem);
|
||||||
|
line-height: 1.15;
|
||||||
|
color: var(--accent);
|
||||||
|
margin-bottom: 0.6rem;
|
||||||
|
}
|
||||||
|
.hero__creole {
|
||||||
|
color: var(--muted);
|
||||||
|
font-style: italic;
|
||||||
|
margin-bottom: var(--space-4);
|
||||||
|
}
|
||||||
|
.hero__cta {
|
||||||
|
display: flex;
|
||||||
|
gap: var(--space-2);
|
||||||
|
justify-content: center;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
}
|
||||||
|
.center-cta {
|
||||||
|
margin-top: var(--space-3);
|
||||||
|
}
|
||||||
|
|
||||||
|
.stats {
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
|
||||||
|
gap: var(--space-2);
|
||||||
|
}
|
||||||
|
.stat {
|
||||||
|
background: var(--card-bg);
|
||||||
|
border: 1px solid var(--line);
|
||||||
|
border-top: 3px solid var(--accent);
|
||||||
|
border-radius: var(--radius-md);
|
||||||
|
padding: var(--space-3);
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
gap: 0.3rem;
|
||||||
|
}
|
||||||
|
.stat__num {
|
||||||
|
font-family: var(--font-display);
|
||||||
|
font-weight: 900;
|
||||||
|
font-size: 1.7rem;
|
||||||
|
color: var(--creme);
|
||||||
|
line-height: 1;
|
||||||
|
}
|
||||||
|
.stat__lab {
|
||||||
|
font-size: 0.88rem;
|
||||||
|
color: var(--muted);
|
||||||
|
}
|
||||||
|
|
||||||
|
.grid-cards {
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
|
||||||
|
gap: var(--space-3);
|
||||||
|
}
|
||||||
|
.grid-cards--2 {
|
||||||
|
grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
|
||||||
|
}
|
||||||
|
.card h3 {
|
||||||
|
margin: 0.6rem 0 0.4rem;
|
||||||
|
}
|
||||||
|
.card p {
|
||||||
|
color: var(--muted);
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
.card .muted {
|
||||||
|
color: var(--muted);
|
||||||
|
}
|
||||||
|
.card__more {
|
||||||
|
margin-top: 0.8rem;
|
||||||
|
display: inline-flex;
|
||||||
|
align-items: center;
|
||||||
|
gap: 0.35rem;
|
||||||
|
font-family: var(--font-display);
|
||||||
|
text-transform: uppercase;
|
||||||
|
font-size: 0.78rem;
|
||||||
|
letter-spacing: 0.05em;
|
||||||
|
color: var(--accent);
|
||||||
|
}
|
||||||
|
.card__cover {
|
||||||
|
width: calc(100% + 2 * var(--space-3));
|
||||||
|
margin: calc(-1 * var(--space-3)) calc(-1 * var(--space-3)) var(--space-2);
|
||||||
|
border-radius: var(--radius-md) var(--radius-md) 0 0;
|
||||||
|
aspect-ratio: 3 / 2;
|
||||||
|
object-fit: cover;
|
||||||
|
}
|
||||||
|
.card__date {
|
||||||
|
font-size: 0.8rem;
|
||||||
|
color: var(--muted-fort);
|
||||||
|
text-transform: uppercase;
|
||||||
|
letter-spacing: 0.04em;
|
||||||
|
}
|
||||||
|
.card__actions {
|
||||||
|
display: flex;
|
||||||
|
gap: 0.6rem;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
margin-top: 0.8rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.center {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
.center .btn {
|
||||||
|
margin-inline: auto;
|
||||||
|
}
|
||||||
|
.cta-final {
|
||||||
|
background: var(--noir-profond);
|
||||||
|
border-block: 1px solid var(--line);
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
import { getActualites } from '$lib/server/actualites';
|
||||||
|
|
||||||
|
export function load() {
|
||||||
|
const actualites = getActualites().map(({ slug, titre, date, iso, chapeau, couverture, couvertureAlt }) => ({
|
||||||
|
slug,
|
||||||
|
titre,
|
||||||
|
date,
|
||||||
|
iso,
|
||||||
|
chapeau,
|
||||||
|
couverture,
|
||||||
|
couvertureAlt
|
||||||
|
}));
|
||||||
|
return { actualites };
|
||||||
|
}
|
||||||
@@ -0,0 +1,83 @@
|
|||||||
|
<script lang="ts">
|
||||||
|
import Seo from '$lib/components/Seo.svelte';
|
||||||
|
import Breadcrumb from '$lib/components/Breadcrumb.svelte';
|
||||||
|
import { reveal } from '$lib/motion/reveal';
|
||||||
|
import { webPage } from '$lib/seo';
|
||||||
|
|
||||||
|
let { data } = $props();
|
||||||
|
|
||||||
|
const crumbs = [
|
||||||
|
{ name: 'Accueil', path: '/' },
|
||||||
|
{ name: 'Actualités', path: '/actualites/' }
|
||||||
|
];
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<Seo
|
||||||
|
title="Actualités"
|
||||||
|
description="Communiqués, commémorations et annonces du GONG et de sa mémoire en Guadeloupe."
|
||||||
|
path="/actualites/"
|
||||||
|
graph={[webPage('/actualites/', 'Actualités du GONG', 'Communiqués et commémorations.')]}
|
||||||
|
breadcrumb={crumbs}
|
||||||
|
/>
|
||||||
|
|
||||||
|
<main id="contenu" class="section">
|
||||||
|
<div class="container">
|
||||||
|
<Breadcrumb items={crumbs} />
|
||||||
|
<h1>Actualités</h1>
|
||||||
|
|
||||||
|
{#if data.actualites.length}
|
||||||
|
<ul class="grille">
|
||||||
|
{#each data.actualites as a, i (a.slug)}
|
||||||
|
<li>
|
||||||
|
<a class="card card--link" href="/actualites/{a.slug}/" use:reveal={i}>
|
||||||
|
{#if a.couverture}
|
||||||
|
<img class="cover" src={a.couverture} alt={a.couvertureAlt} loading="lazy" decoding="async" />
|
||||||
|
{/if}
|
||||||
|
<time datetime={a.iso} class="date">{a.date}</time>
|
||||||
|
<h2>{a.titre}</h2>
|
||||||
|
<p>{a.chapeau}</p>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
{/each}
|
||||||
|
</ul>
|
||||||
|
{:else}
|
||||||
|
<p class="lecture muted">Aucune actualité pour le moment.</p>
|
||||||
|
{/if}
|
||||||
|
</div>
|
||||||
|
</main>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
.grille {
|
||||||
|
list-style: none;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
|
||||||
|
gap: var(--space-3);
|
||||||
|
}
|
||||||
|
.cover {
|
||||||
|
width: calc(100% + 2 * var(--space-3));
|
||||||
|
margin: calc(-1 * var(--space-3)) calc(-1 * var(--space-3)) var(--space-2);
|
||||||
|
border-radius: var(--radius-md) var(--radius-md) 0 0;
|
||||||
|
aspect-ratio: 3 / 2;
|
||||||
|
object-fit: cover;
|
||||||
|
}
|
||||||
|
.date {
|
||||||
|
font-size: 0.8rem;
|
||||||
|
color: var(--muted-fort);
|
||||||
|
text-transform: uppercase;
|
||||||
|
letter-spacing: 0.04em;
|
||||||
|
}
|
||||||
|
.grille h2 {
|
||||||
|
font-size: 1.2rem;
|
||||||
|
text-transform: none;
|
||||||
|
margin: 0.3rem 0;
|
||||||
|
}
|
||||||
|
.grille p {
|
||||||
|
color: var(--muted);
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
.muted {
|
||||||
|
color: var(--muted);
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
import { error } from '@sveltejs/kit';
|
||||||
|
import { getActualites, getActualite } from '$lib/server/actualites';
|
||||||
|
import type { EntryGenerator } from './$types';
|
||||||
|
|
||||||
|
export const entries: EntryGenerator = () => getActualites().map((a) => ({ slug: a.slug }));
|
||||||
|
|
||||||
|
export function load({ params }) {
|
||||||
|
const article = getActualite(params.slug);
|
||||||
|
if (!article) error(404, 'Actualité introuvable');
|
||||||
|
return { article };
|
||||||
|
}
|
||||||
@@ -0,0 +1,93 @@
|
|||||||
|
<script lang="ts">
|
||||||
|
import Seo from '$lib/components/Seo.svelte';
|
||||||
|
import Breadcrumb from '$lib/components/Breadcrumb.svelte';
|
||||||
|
import { SITE } from '$lib/data/gong';
|
||||||
|
|
||||||
|
let { data } = $props();
|
||||||
|
const a = $derived(data.article);
|
||||||
|
|
||||||
|
const crumbs = $derived([
|
||||||
|
{ name: 'Accueil', path: '/' },
|
||||||
|
{ name: 'Actualités', path: '/actualites/' },
|
||||||
|
{ name: a.titre, path: `/actualites/${a.slug}/` }
|
||||||
|
]);
|
||||||
|
|
||||||
|
const articleNode = $derived({
|
||||||
|
'@type': 'Article',
|
||||||
|
'@id': `${SITE.url}/actualites/${a.slug}/#article`,
|
||||||
|
headline: a.titre,
|
||||||
|
description: a.chapeau,
|
||||||
|
datePublished: a.iso,
|
||||||
|
dateModified: a.iso,
|
||||||
|
inLanguage: 'fr-FR',
|
||||||
|
...(a.couverture ? { image: SITE.url + a.couverture } : {}),
|
||||||
|
author: { '@id': `${SITE.url}/#organization` },
|
||||||
|
publisher: { '@id': `${SITE.url}/#organization` },
|
||||||
|
isPartOf: { '@id': `${SITE.url}/#website` },
|
||||||
|
mainEntityOfPage: `${SITE.url}/actualites/${a.slug}/`
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<Seo
|
||||||
|
title={a.titre}
|
||||||
|
description={a.chapeau}
|
||||||
|
path={`/actualites/${a.slug}/`}
|
||||||
|
type="article"
|
||||||
|
image={a.couverture ?? '/gong-logo.png'}
|
||||||
|
imageAlt={a.couvertureAlt ?? a.titre}
|
||||||
|
publishedTime={a.iso}
|
||||||
|
modifiedTime={a.iso}
|
||||||
|
graph={[articleNode]}
|
||||||
|
breadcrumb={crumbs}
|
||||||
|
/>
|
||||||
|
|
||||||
|
<main id="contenu" class="section">
|
||||||
|
<div class="container">
|
||||||
|
<Breadcrumb items={crumbs} />
|
||||||
|
<article>
|
||||||
|
<header class="art-head">
|
||||||
|
<time datetime={a.iso} class="date">{a.date}</time>
|
||||||
|
<h1>{a.titre}</h1>
|
||||||
|
<p class="chapeau">{a.chapeau}</p>
|
||||||
|
</header>
|
||||||
|
{#if a.couverture}
|
||||||
|
<figure class="art-cover">
|
||||||
|
<img src={a.couverture} alt={a.couvertureAlt} width="1200" height="800" />
|
||||||
|
</figure>
|
||||||
|
{/if}
|
||||||
|
<!-- Contenu first-party (Sveltia CMS, rendu markdown côté serveur). -->
|
||||||
|
<div class="prose art-body">{@html a.html}</div>
|
||||||
|
</article>
|
||||||
|
|
||||||
|
<p><a class="btn btn--ghost" href="/actualites/">← Toutes les actualités</a></p>
|
||||||
|
</div>
|
||||||
|
</main>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
.art-head {
|
||||||
|
max-width: var(--container-lecture);
|
||||||
|
}
|
||||||
|
.date {
|
||||||
|
font-size: 0.85rem;
|
||||||
|
color: var(--muted-fort);
|
||||||
|
text-transform: uppercase;
|
||||||
|
letter-spacing: 0.04em;
|
||||||
|
}
|
||||||
|
.chapeau {
|
||||||
|
font-size: 1.2rem;
|
||||||
|
color: var(--muted);
|
||||||
|
font-style: italic;
|
||||||
|
}
|
||||||
|
.art-cover {
|
||||||
|
margin: var(--space-3) 0;
|
||||||
|
max-width: 900px;
|
||||||
|
}
|
||||||
|
.art-cover img {
|
||||||
|
width: 100%;
|
||||||
|
border-radius: var(--radius-md);
|
||||||
|
border: 1px solid var(--line);
|
||||||
|
}
|
||||||
|
.art-body {
|
||||||
|
margin-top: var(--space-3);
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
import { getDocument } from '$lib/server/documents';
|
||||||
|
|
||||||
|
export function load() {
|
||||||
|
return { html: getDocument('charte-1963') };
|
||||||
|
}
|
||||||
@@ -0,0 +1,83 @@
|
|||||||
|
<script lang="ts">
|
||||||
|
import Seo from '$lib/components/Seo.svelte';
|
||||||
|
import Breadcrumb from '$lib/components/Breadcrumb.svelte';
|
||||||
|
import Icon from '$lib/components/Icon.svelte';
|
||||||
|
import { webPage } from '$lib/seo';
|
||||||
|
|
||||||
|
let { data } = $props();
|
||||||
|
|
||||||
|
const crumbs = [
|
||||||
|
{ name: 'Accueil', path: '/' },
|
||||||
|
{ name: 'Charte de 1963', path: '/charte/' }
|
||||||
|
];
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<Seo
|
||||||
|
title="La Charte du GONG (juin 1963)"
|
||||||
|
description="Le texte intégral de la Charte du GONG adoptée en assemblée générale en juin 1963 : le droit du peuple guadeloupéen à disposer de lui-même, la souveraineté nationale et les objectifs de la révolution."
|
||||||
|
path="/charte/"
|
||||||
|
type="article"
|
||||||
|
graph={[webPage('/charte/', 'Charte du GONG (1963)', 'Texte fondateur du GONG adopté en juin 1963.')]}
|
||||||
|
breadcrumb={crumbs}
|
||||||
|
/>
|
||||||
|
|
||||||
|
<main id="contenu" class="section">
|
||||||
|
<div class="container">
|
||||||
|
<Breadcrumb items={crumbs} />
|
||||||
|
<header class="doc-head">
|
||||||
|
<p class="doc-kicker"><span class="flag-chip" aria-hidden="true"></span> Texte fondateur · Juin 1963</p>
|
||||||
|
<h1>La Charte du GONG</h1>
|
||||||
|
<a class="btn btn--ghost" href="/assets/charte-du-gong-1963.pdf" rel="external noopener noreferrer" target="_blank">
|
||||||
|
Voir l'original (PDF) <Icon name="download" size="1em" />
|
||||||
|
</a>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<article class="prose doc">
|
||||||
|
<!-- Contenu first-party (transcription du document de 1963, rendu markdown côté serveur). -->
|
||||||
|
{@html data.html}
|
||||||
|
</article>
|
||||||
|
|
||||||
|
<nav class="suite" aria-label="Poursuivre la lecture">
|
||||||
|
<a class="btn btn--ghost" href="/orientation/">Orientation & stratégie →</a>
|
||||||
|
<a class="btn btn--ghost" href="/ideologie/">L'idéologie du GONG →</a>
|
||||||
|
</nav>
|
||||||
|
</div>
|
||||||
|
</main>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
.doc-head {
|
||||||
|
margin-bottom: var(--space-4);
|
||||||
|
}
|
||||||
|
.doc-kicker {
|
||||||
|
display: inline-flex;
|
||||||
|
flex-direction: column;
|
||||||
|
gap: 0.5rem;
|
||||||
|
font-family: var(--font-display);
|
||||||
|
text-transform: uppercase;
|
||||||
|
letter-spacing: 0.08em;
|
||||||
|
font-size: 0.85rem;
|
||||||
|
color: var(--muted);
|
||||||
|
}
|
||||||
|
.doc-head .btn {
|
||||||
|
margin-top: var(--space-2);
|
||||||
|
}
|
||||||
|
.doc :global(h2) {
|
||||||
|
margin-top: var(--space-4);
|
||||||
|
padding-top: var(--space-2);
|
||||||
|
border-top: 1px solid var(--line);
|
||||||
|
font-size: 1.35rem;
|
||||||
|
}
|
||||||
|
.doc :global(h3) {
|
||||||
|
color: var(--accent);
|
||||||
|
font-size: 1.1rem;
|
||||||
|
}
|
||||||
|
.doc :global(blockquote) {
|
||||||
|
font-size: 1.05rem;
|
||||||
|
}
|
||||||
|
.suite {
|
||||||
|
display: flex;
|
||||||
|
gap: 0.6rem;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
margin-top: var(--space-4);
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@@ -0,0 +1,107 @@
|
|||||||
|
<script lang="ts">
|
||||||
|
import Seo from '$lib/components/Seo.svelte';
|
||||||
|
import Breadcrumb from '$lib/components/Breadcrumb.svelte';
|
||||||
|
import Icon from '$lib/components/Icon.svelte';
|
||||||
|
import { SITE, contact } from '$lib/data/gong';
|
||||||
|
import { webPage } from '$lib/seo';
|
||||||
|
|
||||||
|
const crumbs = [
|
||||||
|
{ name: 'Accueil', path: '/' },
|
||||||
|
{ name: 'Contact', path: '/contact/' }
|
||||||
|
];
|
||||||
|
|
||||||
|
const contactNode = {
|
||||||
|
'@type': 'ContactPage',
|
||||||
|
'@id': `${SITE.url}/contact/#contactpage`,
|
||||||
|
url: `${SITE.url}/contact/`,
|
||||||
|
name: 'Contact — GONG',
|
||||||
|
isPartOf: { '@id': `${SITE.url}/#website` },
|
||||||
|
about: { '@id': `${SITE.url}/#organization` },
|
||||||
|
inLanguage: 'fr-FR'
|
||||||
|
};
|
||||||
|
|
||||||
|
const canaux = [
|
||||||
|
{ icon: 'mail', label: 'E-mail (ProtonMail)', valeur: contact.email, href: `mailto:${contact.email}`, ext: false },
|
||||||
|
{ icon: 'globe', label: 'Bokantaj — réseau social', valeur: '@GONG', href: contact.bokantaj, ext: true },
|
||||||
|
{ icon: 'video', label: 'Gade — chaîne vidéo (PeerTube)', valeur: 'gong_tv', href: contact.gade, ext: true },
|
||||||
|
{ icon: 'book', label: 'Code source du site (forge)', valeur: 'labola.o-k-i.net', href: contact.forge, ext: true }
|
||||||
|
];
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<Seo
|
||||||
|
title="Contact"
|
||||||
|
description="Contacter le GONG et l'équipe éditoriale du site : e-mail ProtonMail, réseau social Bokantaj, chaîne vidéo Gade et code source sur la forge de l'écosystème OKI."
|
||||||
|
path="/contact/"
|
||||||
|
graph={[webPage('/contact/', 'Contact — GONG', 'Nous contacter.'), contactNode]}
|
||||||
|
breadcrumb={crumbs}
|
||||||
|
/>
|
||||||
|
|
||||||
|
<main id="contenu" class="section">
|
||||||
|
<div class="container">
|
||||||
|
<Breadcrumb items={crumbs} />
|
||||||
|
<h1>Contact</h1>
|
||||||
|
<p class="lecture intro">
|
||||||
|
Une question, une correction, un témoignage ou une archive à partager ? Écrivez-nous. Ce site
|
||||||
|
est un travail de mémoire ouvert et évolutif.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<ul class="canaux">
|
||||||
|
{#each canaux as c (c.href)}
|
||||||
|
<li>
|
||||||
|
<a
|
||||||
|
class="card card--link"
|
||||||
|
href={c.href}
|
||||||
|
rel={c.ext ? 'external noopener noreferrer' : undefined}
|
||||||
|
target={c.ext ? '_blank' : undefined}
|
||||||
|
>
|
||||||
|
<Icon name={c.icon} size="1.6rem" />
|
||||||
|
<h2>{c.label}</h2>
|
||||||
|
<p>{c.valeur}</p>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
{/each}
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<address class="adresse lecture">
|
||||||
|
<h2>Éditeur</h2>
|
||||||
|
<p>
|
||||||
|
ORGANISATION KA INTERNATIONALE<br />
|
||||||
|
36 rue Lethière, 97100 Basse-Terre, Guadeloupe<br />
|
||||||
|
<a href="mailto:{contact.emailOKI}">{contact.emailOKI}</a>
|
||||||
|
</p>
|
||||||
|
</address>
|
||||||
|
</div>
|
||||||
|
</main>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
.intro {
|
||||||
|
color: var(--muted);
|
||||||
|
margin-bottom: var(--space-4);
|
||||||
|
}
|
||||||
|
.canaux {
|
||||||
|
list-style: none;
|
||||||
|
margin: 0 0 var(--space-5);
|
||||||
|
padding: 0;
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
|
||||||
|
gap: var(--space-3);
|
||||||
|
}
|
||||||
|
.canaux h2 {
|
||||||
|
font-size: 1.05rem;
|
||||||
|
text-transform: none;
|
||||||
|
margin: 0.6rem 0 0.2rem;
|
||||||
|
}
|
||||||
|
.canaux p {
|
||||||
|
color: var(--muted);
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
.adresse {
|
||||||
|
font-style: normal;
|
||||||
|
}
|
||||||
|
.adresse h2 {
|
||||||
|
font-size: 1.1rem;
|
||||||
|
}
|
||||||
|
.adresse p {
|
||||||
|
color: var(--muted);
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@@ -0,0 +1,154 @@
|
|||||||
|
<script lang="ts">
|
||||||
|
import Seo from '$lib/components/Seo.svelte';
|
||||||
|
import Breadcrumb from '$lib/components/Breadcrumb.svelte';
|
||||||
|
import SectionTitle from '$lib/components/SectionTitle.svelte';
|
||||||
|
import { SITE } from '$lib/data/gong';
|
||||||
|
import { webPage } from '$lib/seo';
|
||||||
|
|
||||||
|
const crumbs = [
|
||||||
|
{ name: 'Accueil', path: '/' },
|
||||||
|
{ name: 'Questions fréquentes', path: '/faq/' }
|
||||||
|
];
|
||||||
|
|
||||||
|
// Le texte des réponses est IDENTIQUE à celui du schema (aucun contenu caché).
|
||||||
|
const faq = [
|
||||||
|
{
|
||||||
|
q: "Qu'est-ce que le GONG ?",
|
||||||
|
r: "Le GONG (Groupe d'Organisation Nationale de la Guadeloupe) était une organisation politique indépendantiste et anticolonialiste guadeloupéenne. Fondé le 23 juin 1963 à Paris, il militait pour l'indépendance de la Guadeloupe et fut dissous de fait en 1968."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
q: 'Que signifie le sigle GONG ?',
|
||||||
|
r: "GONG signifie « Groupe d'Organisation Nationale de la Guadeloupe ». On l'écrit aussi G.O.N.G. Le mouvement se réclamait du marxisme-léninisme et de la lutte de libération nationale."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
q: 'Quand et par qui le GONG a-t-il été fondé ?',
|
||||||
|
r: "Le GONG a été fondé le 23 juin 1963 à Paris, dans la clandestinité, par d'anciens militants de l'Association générale des étudiants guadeloupéens (AGEG), parmi lesquels Pierre Sainton, Jacques Nestor, Marcel Manville, Henri Bangou et Serge Glaude."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
q: "Quel était l'objectif du GONG ?",
|
||||||
|
r: "L'objectif principal du GONG était l'indépendance nationale de la Guadeloupe, suivie d'une révolution socialiste. Son programme incluait la réforme agraire, l'industrialisation, l'unité antillaise et la solidarité tiers-mondiste."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
q: "Qu'est-ce que « Mé 67 » ?",
|
||||||
|
r: "« Mé 67 » désigne les émeutes de mai 1967 en Guadeloupe. Du 26 au 28 mai 1967, la répression d'une grève ouvrière à Pointe-à-Pitre a fait, selon les historiens, entre 80 et 200 victimes, contre 7 à 8 morts selon le bilan officiel."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
q: 'Le GONG était-il responsable des émeutes de mai 1967 ?',
|
||||||
|
r: "Non. Deux rapports de police de 1967 (commissaire Gévaudan) ont conclu à l'absence de responsabilité directe du GONG : les émeutes étaient spontanées. Le mouvement a néanmoins servi de prétexte à la répression et à l'arrestation de ses militants."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
q: "Qu'est-il arrivé aux militants du GONG ?",
|
||||||
|
r: "Plus de 70 personnes ont été arrêtées. Dix-huit Guadeloupéens ont été jugés à Paris en février-mars 1968 devant la Cour de sûreté de l'État. Le verdict — 13 acquittements et 6 peines avec sursis — a été vécu comme une victoire politique."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
q: 'Que signifie « Briser les urnes colonialistes » ?',
|
||||||
|
r: "« Briser les urnes colonialistes. Conquérir l'indépendance nationale » était le mot d'ordre du GONG lors des législatives de mars 1967. Il dénonçait des élections jugées frauduleuses et appelait au boycott des scrutins organisés par le pouvoir colonial."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
q: 'Le GONG existe-t-il encore aujourd’hui ?',
|
||||||
|
r: "Non, le GONG a été dissous de fait en 1968. Mais son héritage perdure : plusieurs mouvements en sont issus, notamment l'UPLG (1978), toujours active en 2026, ainsi que le syndicat UGTG. Le 26 mai reste une date de commémoration."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
q: 'Qui était Pierre Sainton ?',
|
||||||
|
r: 'Pierre Sainton (vers 1924 - 2018) était le fondateur principal et l’idéologue du GONG. Médecin généraliste à Capesterre-Belle-Eau, il prononça le discours fondateur du mouvement en Guadeloupe le 30 mai 1964 sur la stèle de Delgrès.'
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
const faqNode = {
|
||||||
|
'@type': 'FAQPage',
|
||||||
|
'@id': `${SITE.url}/faq/#faq`,
|
||||||
|
mainEntity: faq.map((f) => ({
|
||||||
|
'@type': 'Question',
|
||||||
|
name: f.q,
|
||||||
|
acceptedAnswer: { '@type': 'Answer', text: f.r }
|
||||||
|
}))
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<Seo
|
||||||
|
title="Qu'est-ce que le GONG ? Questions fréquentes"
|
||||||
|
description="Réponses aux questions les plus fréquentes sur le GONG : définition, fondation, objectifs, Mé 67, procès de 1968 et héritage. L'essentiel sur le mouvement indépendantiste guadeloupéen."
|
||||||
|
path="/faq/"
|
||||||
|
graph={[webPage('/faq/', 'Questions fréquentes sur le GONG', 'FAQ sur le GONG.'), faqNode]}
|
||||||
|
breadcrumb={crumbs}
|
||||||
|
/>
|
||||||
|
|
||||||
|
<main id="contenu" class="section">
|
||||||
|
<div class="container">
|
||||||
|
<Breadcrumb items={crumbs} />
|
||||||
|
<h1>Qu'est-ce que le GONG ?</h1>
|
||||||
|
<p class="lecture intro">Les réponses essentielles, en quelques phrases.</p>
|
||||||
|
|
||||||
|
<div class="faq lecture">
|
||||||
|
{#each faq as f (f.q)}
|
||||||
|
<details>
|
||||||
|
<summary>{f.q}</summary>
|
||||||
|
<p>{f.r}</p>
|
||||||
|
</details>
|
||||||
|
{/each}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="apres lecture">
|
||||||
|
<SectionTitle title="Aller plus loin" as="h2" />
|
||||||
|
<div class="liens">
|
||||||
|
<a class="btn btn--ghost" href="/histoire/">Histoire complète</a>
|
||||||
|
<a class="btn btn--ghost" href="/me-67/">Mé 67</a>
|
||||||
|
<a class="btn btn--ghost" href="/sources/">Sources</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</main>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
.intro {
|
||||||
|
color: var(--muted);
|
||||||
|
margin-bottom: var(--space-3);
|
||||||
|
}
|
||||||
|
.faq {
|
||||||
|
display: grid;
|
||||||
|
gap: 0.6rem;
|
||||||
|
}
|
||||||
|
details {
|
||||||
|
background: var(--card-bg);
|
||||||
|
border: 1px solid var(--line);
|
||||||
|
border-left: 4px solid var(--accent);
|
||||||
|
border-radius: var(--radius-md);
|
||||||
|
padding: 0 var(--space-3);
|
||||||
|
}
|
||||||
|
summary {
|
||||||
|
font-family: var(--font-display);
|
||||||
|
font-weight: 700;
|
||||||
|
font-size: 1.05rem;
|
||||||
|
cursor: pointer;
|
||||||
|
padding: var(--space-2) 0;
|
||||||
|
list-style: none;
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
gap: 1rem;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
summary::-webkit-details-marker {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
summary::after {
|
||||||
|
content: '+';
|
||||||
|
font-size: 1.5rem;
|
||||||
|
color: var(--accent);
|
||||||
|
flex: none;
|
||||||
|
}
|
||||||
|
details[open] summary::after {
|
||||||
|
content: '−';
|
||||||
|
}
|
||||||
|
details p {
|
||||||
|
margin: 0 0 var(--space-2);
|
||||||
|
color: var(--muted);
|
||||||
|
}
|
||||||
|
.apres {
|
||||||
|
margin-top: var(--space-5);
|
||||||
|
}
|
||||||
|
.liens {
|
||||||
|
display: flex;
|
||||||
|
gap: 0.6rem;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@@ -0,0 +1,174 @@
|
|||||||
|
<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 Icon from '$lib/components/Icon.svelte';
|
||||||
|
import { reveal } from '$lib/motion/reveal';
|
||||||
|
import { webPage } from '$lib/seo';
|
||||||
|
import { heritage as h, repression as r } from '$lib/data/gong';
|
||||||
|
|
||||||
|
const crumbs = [
|
||||||
|
{ name: 'Accueil', path: '/' },
|
||||||
|
{ name: 'Héritage', path: '/heritage/' }
|
||||||
|
];
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<Seo
|
||||||
|
title="L'héritage du GONG"
|
||||||
|
description="Répression, dissolution puis postérité : l'UPLG, l'UGTG, l'UTA et le mouvement indépendantiste guadeloupéen sont nés dans le sillage du GONG. Œuvres, mémoire et commémorations de Mé 67."
|
||||||
|
path="/heritage/"
|
||||||
|
type="article"
|
||||||
|
graph={[webPage('/heritage/', 'Héritage du GONG', 'Répression, mouvements issus, mémoire et postérité culturelle.')]}
|
||||||
|
breadcrumb={crumbs}
|
||||||
|
/>
|
||||||
|
|
||||||
|
<main id="contenu" class="section">
|
||||||
|
<div class="container">
|
||||||
|
<Breadcrumb items={crumbs} />
|
||||||
|
<h1>Héritage</h1>
|
||||||
|
|
||||||
|
<div class="lecture">
|
||||||
|
<Resume
|
||||||
|
lead="Décapité par la répression de 1967-1968, le GONG n'a pas disparu sans laisser de traces. Il a ensemencé tout le mouvement indépendantiste et syndical guadeloupéen : l'UPLG, l'UGTG, l'UTA et d'autres en sont directement issus."
|
||||||
|
points={[
|
||||||
|
'70+ arrestations, dissolution du mouvement en 1968.',
|
||||||
|
'L’UPLG (1978) : premier parti indépendantiste structuré, toujours actif.',
|
||||||
|
'L’UGTG (1973) : syndicat de masse issu de la mouvance GONG/AGEG.',
|
||||||
|
'Mé 67 est aujourd’hui une date de commémoration en Guadeloupe.'
|
||||||
|
]}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- RÉPRESSION -->
|
||||||
|
<section class="section--tight">
|
||||||
|
<SectionTitle title="La répression et la dissolution" as="h2" id="repression" />
|
||||||
|
<div class="lecture prose">
|
||||||
|
<p><strong>Arrestations.</strong> {r.arrestations}</p>
|
||||||
|
<p><strong>Incarcération.</strong> {r.incarceration}. {r.dissolution}.</p>
|
||||||
|
<h3>Conséquences</h3>
|
||||||
|
<ul>
|
||||||
|
{#each r.consequences as c (c)}
|
||||||
|
<li>{c}</li>
|
||||||
|
{/each}
|
||||||
|
</ul>
|
||||||
|
<h3>Les responsables de la répression</h3>
|
||||||
|
<ul>
|
||||||
|
{#each r.responsables as resp (resp.nom)}
|
||||||
|
<li><strong>{resp.nom}</strong> — {resp.role}. {resp.note}</li>
|
||||||
|
{/each}
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- MOUVEMENTS ISSUS -->
|
||||||
|
<section class="section--tight">
|
||||||
|
<SectionTitle title="Les mouvements héritiers" as="h2" id="mouvements" />
|
||||||
|
<ul class="grille">
|
||||||
|
{#each h.mouvements as m, i (m.nom)}
|
||||||
|
<li class="card card--vert" use:reveal={i}>
|
||||||
|
<span class="date">{m.dateCreation}</span>
|
||||||
|
<h3>{m.nom}</h3>
|
||||||
|
<p>{m.description}</p>
|
||||||
|
</li>
|
||||||
|
{/each}
|
||||||
|
</ul>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- INFLUENCE CULTURELLE -->
|
||||||
|
<section class="section--tight">
|
||||||
|
<SectionTitle title="Dans la culture" as="h2" id="culture" />
|
||||||
|
<ul class="oeuvres">
|
||||||
|
{#each h.influenceCulturelle as o, i (o.oeuvre)}
|
||||||
|
<li class="oeuvre" use:reveal={i}>
|
||||||
|
<Icon name="book" size="1.4rem" />
|
||||||
|
<div>
|
||||||
|
<h3>{o.oeuvre} <span class="an">· {o.date}</span></h3>
|
||||||
|
<p class="auteur">{o.auteur} — {o.type}</p>
|
||||||
|
<p class="sujet">{o.sujet}</p>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
{/each}
|
||||||
|
</ul>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- MÉMOIRE -->
|
||||||
|
<section class="section--tight">
|
||||||
|
<SectionTitle title="La mémoire" as="h2" id="memoire" />
|
||||||
|
<ul class="lecture prose">
|
||||||
|
{#each h.memoire as mem (mem)}
|
||||||
|
<li>{mem}</li>
|
||||||
|
{/each}
|
||||||
|
</ul>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<p class="src lecture">Sources : {h.source}.</p>
|
||||||
|
</div>
|
||||||
|
</main>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
.grille {
|
||||||
|
list-style: none;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
|
||||||
|
gap: var(--space-2);
|
||||||
|
}
|
||||||
|
.date {
|
||||||
|
font-family: var(--font-display);
|
||||||
|
font-weight: 700;
|
||||||
|
color: var(--vert-gong);
|
||||||
|
font-size: 0.85rem;
|
||||||
|
}
|
||||||
|
.grille h3 {
|
||||||
|
font-size: 1.05rem;
|
||||||
|
text-transform: none;
|
||||||
|
margin: 0.3rem 0;
|
||||||
|
}
|
||||||
|
.grille p {
|
||||||
|
color: var(--muted);
|
||||||
|
margin: 0;
|
||||||
|
font-size: 0.94rem;
|
||||||
|
}
|
||||||
|
.oeuvres {
|
||||||
|
list-style: none;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
display: grid;
|
||||||
|
gap: var(--space-2);
|
||||||
|
max-width: var(--container-lecture);
|
||||||
|
}
|
||||||
|
.oeuvre {
|
||||||
|
display: flex;
|
||||||
|
gap: var(--space-2);
|
||||||
|
background: var(--card-bg);
|
||||||
|
border: 1px solid var(--line);
|
||||||
|
border-radius: var(--radius-md);
|
||||||
|
padding: var(--space-3);
|
||||||
|
}
|
||||||
|
.oeuvre h3 {
|
||||||
|
margin: 0 0 0.2rem;
|
||||||
|
font-size: 1.05rem;
|
||||||
|
text-transform: none;
|
||||||
|
}
|
||||||
|
.oeuvre .an {
|
||||||
|
color: var(--muted-fort);
|
||||||
|
font-weight: 400;
|
||||||
|
}
|
||||||
|
.auteur {
|
||||||
|
color: var(--accent);
|
||||||
|
font-size: 0.88rem;
|
||||||
|
margin: 0 0 0.3rem;
|
||||||
|
}
|
||||||
|
.sujet {
|
||||||
|
color: var(--muted);
|
||||||
|
margin: 0;
|
||||||
|
font-size: 0.94rem;
|
||||||
|
}
|
||||||
|
.src {
|
||||||
|
color: var(--muted-fort);
|
||||||
|
font-size: 0.85rem;
|
||||||
|
margin-top: var(--space-3);
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@@ -0,0 +1,115 @@
|
|||||||
|
<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 Timeline from '$lib/components/Timeline.svelte';
|
||||||
|
import { webPage } from '$lib/seo';
|
||||||
|
import { presentation, contexteHistorique, chronologie } from '$lib/data/gong';
|
||||||
|
|
||||||
|
const crumbs = [
|
||||||
|
{ name: 'Accueil', path: '/' },
|
||||||
|
{ name: 'Histoire', path: '/histoire/' }
|
||||||
|
];
|
||||||
|
const ctx = contexteHistorique;
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<Seo
|
||||||
|
title="Histoire du GONG (1963-1968)"
|
||||||
|
description="L'histoire du Groupe d'Organisation Nationale de la Guadeloupe : contexte colonial, fondation en 1963, activité clandestine, Mé 67, procès de 1968 et dissolution. Chronologie complète."
|
||||||
|
path="/histoire/"
|
||||||
|
type="article"
|
||||||
|
graph={[webPage('/histoire/', 'Histoire du GONG (1963-1968)', "Contexte, fondation, activité, répression et dissolution du GONG.")]}
|
||||||
|
breadcrumb={crumbs}
|
||||||
|
/>
|
||||||
|
|
||||||
|
<main id="contenu" class="section">
|
||||||
|
<div class="container">
|
||||||
|
<Breadcrumb items={crumbs} />
|
||||||
|
<h1>Histoire du GONG</h1>
|
||||||
|
|
||||||
|
<div class="lecture">
|
||||||
|
<Resume
|
||||||
|
lead="Fondé le 23 juin 1963 à Paris par d'anciens étudiants guadeloupéens, le GONG mène pendant quatre ans une lutte clandestine pour l'indépendance de la Guadeloupe. Les émeutes de mai 1967 et le procès de 1968 précipitent sa dissolution de fait."
|
||||||
|
points={[
|
||||||
|
'Contexte : la Guadeloupe, département français depuis 1946, sous économie de plantation.',
|
||||||
|
'Fondation dans la clandestinité après la dissolution du Front antillo-guyanais.',
|
||||||
|
'Installation légale en Guadeloupe le 30 mai 1964, sur la stèle de Delgrès.',
|
||||||
|
'Décapité par la répression de 1967-1968.'
|
||||||
|
]}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- CONTEXTE -->
|
||||||
|
<section class="section--tight">
|
||||||
|
<SectionTitle title="Le contexte : une colonie qui ne dit pas son nom" as="h2" id="contexte" />
|
||||||
|
<div class="lecture prose">
|
||||||
|
<h3>La Guadeloupe avant le GONG</h3>
|
||||||
|
<p><strong>Statut.</strong> {ctx.guadeloupeAvantGONG.statut}</p>
|
||||||
|
<p><strong>Économie.</strong> {ctx.guadeloupeAvantGONG.economie}</p>
|
||||||
|
<p><strong>Société.</strong> {ctx.guadeloupeAvantGONG.social}</p>
|
||||||
|
<p><strong>Politique.</strong> {ctx.guadeloupeAvantGONG.politique}</p>
|
||||||
|
|
||||||
|
<h3>Un monde en décolonisation</h3>
|
||||||
|
<p>
|
||||||
|
La fondation du GONG s'inscrit dans un contexte international bouillonnant :
|
||||||
|
l'indépendance de l'Algérie (1962), la révolution cubaine (1959), la Conférence
|
||||||
|
tricontinentale de La Havane (1966) et la mobilisation contre la guerre du Vietnam.
|
||||||
|
</p>
|
||||||
|
<ul>
|
||||||
|
<li><strong>Décolonisation :</strong> {ctx.contexteInternational.decolonisation}</li>
|
||||||
|
<li><strong>Guerre froide :</strong> {ctx.contexteInternational.guerreFroide}</li>
|
||||||
|
<li><strong>Révolution cubaine :</strong> {ctx.contexteInternational.revolutionCubaine}</li>
|
||||||
|
<li><strong>Tricontinentale :</strong> {ctx.contexteInternational.tricontinentale}</li>
|
||||||
|
<li><strong>Guerre du Vietnam :</strong> {ctx.contexteInternational.guerreVietnam}</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<h3>Les précurseurs</h3>
|
||||||
|
<ul>
|
||||||
|
{#each ctx.precurseurs as p (p)}
|
||||||
|
<li>{p}</li>
|
||||||
|
{/each}
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- FONDATION -->
|
||||||
|
<section class="section--tight">
|
||||||
|
<SectionTitle title="La fondation" as="h2" id="fondation" />
|
||||||
|
<div class="lecture prose">
|
||||||
|
<p>{presentation.contexteFondation}</p>
|
||||||
|
<p>{presentation.installationGuadeloupe}</p>
|
||||||
|
<p>
|
||||||
|
<strong>Soutiens internationaux.</strong>
|
||||||
|
Le mouvement bénéficie de l'appui du FLN algérien, du Parti communiste belge prochinois de
|
||||||
|
Jacques Grippa (qui imprime son journal), de la Tricontinentale et de l'OLAS.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- CHRONOLOGIE -->
|
||||||
|
<section class="section--tight">
|
||||||
|
<SectionTitle title="Chronologie" as="h2" id="chronologie" />
|
||||||
|
<p class="lecture muted">De la départementalisation (1946) à la reconnaissance mémorielle (2016-2021).</p>
|
||||||
|
<Timeline evenements={chronologie} />
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<nav class="suite" aria-label="Poursuivre la lecture">
|
||||||
|
<a class="btn btn--ghost" href="/me-67/">Mé 67 →</a>
|
||||||
|
<a class="btn btn--ghost" href="/proces-1968/">Le procès de 1968 →</a>
|
||||||
|
<a class="btn btn--ghost" href="/militants/">Les militants →</a>
|
||||||
|
</nav>
|
||||||
|
</div>
|
||||||
|
</main>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
.muted {
|
||||||
|
color: var(--muted);
|
||||||
|
}
|
||||||
|
.suite {
|
||||||
|
display: flex;
|
||||||
|
gap: 0.6rem;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
margin-top: var(--space-4);
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@@ -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 : l’indépendance nationale de la Guadeloupe.',
|
||||||
|
'Mot d’ordre 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>
|
||||||
@@ -0,0 +1,208 @@
|
|||||||
|
<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 { webPage } from '$lib/seo';
|
||||||
|
import { SITE, evenementsMai1967 as m } from '$lib/data/gong';
|
||||||
|
|
||||||
|
const crumbs = [
|
||||||
|
{ name: 'Accueil', path: '/' },
|
||||||
|
{ name: 'Mé 67', path: '/me-67/' }
|
||||||
|
];
|
||||||
|
|
||||||
|
const eventNode = {
|
||||||
|
'@type': 'Event',
|
||||||
|
'@id': `${SITE.url}/me-67/#event`,
|
||||||
|
name: 'Émeutes de mai 1967 en Guadeloupe (Mé 67)',
|
||||||
|
description:
|
||||||
|
"Répression sanglante d'une grève ouvrière à Pointe-à-Pitre les 26-28 mai 1967. Bilan estimé par les historiens : 80 à 200 victimes.",
|
||||||
|
startDate: '1967-05-26',
|
||||||
|
endDate: '1967-05-28',
|
||||||
|
eventStatus: 'https://schema.org/EventScheduled',
|
||||||
|
location: {
|
||||||
|
'@type': 'Place',
|
||||||
|
name: 'Pointe-à-Pitre, Guadeloupe',
|
||||||
|
address: { '@type': 'PostalAddress', addressLocality: 'Pointe-à-Pitre', addressRegion: 'Guadeloupe', addressCountry: 'FR' }
|
||||||
|
},
|
||||||
|
about: { '@id': `${SITE.url}/#organization` }
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<Seo
|
||||||
|
title="Mé 67 — les émeutes de mai 1967 en Guadeloupe"
|
||||||
|
description="Les 26-28 mai 1967, la répression d'une grève ouvrière à Pointe-à-Pitre fait de 8 (bilan officiel) à 200 morts (estimations des historiens). Récit, bilan et rôle du GONG."
|
||||||
|
path="/me-67/"
|
||||||
|
type="article"
|
||||||
|
graph={[webPage('/me-67/', 'Mé 67 — émeutes de mai 1967', 'Récit et bilan des tueries de mai 1967 à Pointe-à-Pitre.'), eventNode]}
|
||||||
|
breadcrumb={crumbs}
|
||||||
|
/>
|
||||||
|
|
||||||
|
<main id="contenu" class="section">
|
||||||
|
<div class="container">
|
||||||
|
<Breadcrumb items={crumbs} />
|
||||||
|
<p class="surtitre"><span class="flag-chip" aria-hidden="true"></span> 26 — 28 mai 1967 · Pointe-à-Pitre</p>
|
||||||
|
<h1>Mé 67</h1>
|
||||||
|
|
||||||
|
<div class="lecture">
|
||||||
|
<Resume
|
||||||
|
lead="« Mé 67 » désigne la répression sanglante des 26, 27 et 28 mai 1967 à Pointe-à-Pitre, en Guadeloupe. Partie d'une grève des ouvriers du bâtiment, elle a fait, selon les historiens, entre 80 et 200 victimes — un massacre colonial longtemps occulté."
|
||||||
|
points={[
|
||||||
|
'Déclencheur : une grève pour +2,5 % de salaire, sur fond d’agression raciste.',
|
||||||
|
'Le 26 mai, les forces de l’ordre tirent à balles réelles.',
|
||||||
|
'Jacques Nestor, militant du GONG (26 ans), est la première victime.',
|
||||||
|
'Bilan officiel : 7-8 morts. Estimations des historiens : 80 à 200 victimes.'
|
||||||
|
]}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- CONTEXTE -->
|
||||||
|
<section class="section--tight">
|
||||||
|
<SectionTitle title="Comment tout a commencé" as="h2" id="contexte" />
|
||||||
|
<div class="lecture prose">
|
||||||
|
<p><strong>Le contexte social.</strong> {m.contexte.social}</p>
|
||||||
|
<p><strong>L'étincelle raciste.</strong> {m.contexte.racial}</p>
|
||||||
|
<p><strong>Le contexte politique.</strong> {m.contexte.politique}</p>
|
||||||
|
<p><strong>L'arrière-plan international.</strong> {m.contexte.international}</p>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- DÉROULEMENT -->
|
||||||
|
<section class="section--tight">
|
||||||
|
<SectionTitle title="Trois jours de répression" as="h2" id="deroulement" />
|
||||||
|
<ol class="jours">
|
||||||
|
{#each Object.entries(m.deroulement) as [jour, recit] (jour)}
|
||||||
|
<li class="jour">
|
||||||
|
<p class="jour__date">{jour}</p>
|
||||||
|
<p class="jour__txt">{recit}</p>
|
||||||
|
</li>
|
||||||
|
{/each}
|
||||||
|
</ol>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- BILAN -->
|
||||||
|
<section class="section--tight">
|
||||||
|
<SectionTitle title="Le bilan" as="h2" id="bilan" />
|
||||||
|
<div class="bilan">
|
||||||
|
<div class="bilan__stat"><span class="bilan__num">7–8</span><span>morts (bilan officiel)</span></div>
|
||||||
|
<div class="bilan__stat is-strong"><span class="bilan__num">80–200</span><span>victimes (estimations des historiens)</span></div>
|
||||||
|
<div class="bilan__stat"><span class="bilan__num">30+</span><span>blessés</span></div>
|
||||||
|
</div>
|
||||||
|
<p class="lecture prose note">{m.bilan.note}</p>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- RÔLE DU GONG -->
|
||||||
|
<section class="section--tight">
|
||||||
|
<SectionTitle title="Quel a été le rôle du GONG ?" as="h2" id="role-gong" />
|
||||||
|
<div class="lecture prose">
|
||||||
|
<p>
|
||||||
|
Le GONG a soutenu les revendications ouvrières et participé à la mobilisation. Mais
|
||||||
|
l'enquête a établi que les émeutes étaient <strong>spontanées</strong>.
|
||||||
|
</p>
|
||||||
|
<ul>
|
||||||
|
{#each m.roleDuGONG.actions as a (a)}
|
||||||
|
<li>{a}</li>
|
||||||
|
{/each}
|
||||||
|
</ul>
|
||||||
|
<p><strong>La controverse.</strong> {m.roleDuGONG.controverse}</p>
|
||||||
|
<blockquote>
|
||||||
|
{m.roleDuGONG.rapportsPolice}
|
||||||
|
<footer>— Commissaire divisionnaire Honoré Gévaudan, rapport de 1967</footer>
|
||||||
|
</blockquote>
|
||||||
|
<p><strong>Une élimination préméditée ?</strong> {m.roleDuGONG.analyse}</p>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<p class="src lecture">Sources : {m.source}.</p>
|
||||||
|
|
||||||
|
<nav class="suite" aria-label="Poursuivre la lecture">
|
||||||
|
<a class="btn btn--ghost" href="/proces-1968/">Le procès de 1968 →</a>
|
||||||
|
<a class="btn btn--ghost" href="/militants/jacques-nestor/">Jacques Nestor →</a>
|
||||||
|
</nav>
|
||||||
|
</div>
|
||||||
|
</main>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
.surtitre {
|
||||||
|
display: inline-flex;
|
||||||
|
flex-direction: column;
|
||||||
|
gap: 0.5rem;
|
||||||
|
font-family: var(--font-display);
|
||||||
|
text-transform: uppercase;
|
||||||
|
letter-spacing: 0.08em;
|
||||||
|
font-size: 0.85rem;
|
||||||
|
color: var(--muted);
|
||||||
|
}
|
||||||
|
.jours {
|
||||||
|
list-style: none;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
display: grid;
|
||||||
|
gap: var(--space-2);
|
||||||
|
}
|
||||||
|
.jour {
|
||||||
|
background: var(--card-bg);
|
||||||
|
border: 1px solid var(--line);
|
||||||
|
border-left: 4px solid var(--accent);
|
||||||
|
border-radius: var(--radius-md);
|
||||||
|
padding: var(--space-3);
|
||||||
|
}
|
||||||
|
.jour__date {
|
||||||
|
font-family: var(--font-display);
|
||||||
|
text-transform: uppercase;
|
||||||
|
font-weight: 800;
|
||||||
|
color: var(--accent);
|
||||||
|
margin: 0 0 0.3rem;
|
||||||
|
}
|
||||||
|
.jour__txt {
|
||||||
|
margin: 0;
|
||||||
|
color: var(--muted);
|
||||||
|
}
|
||||||
|
.bilan {
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
|
||||||
|
gap: var(--space-2);
|
||||||
|
margin-bottom: var(--space-3);
|
||||||
|
}
|
||||||
|
.bilan__stat {
|
||||||
|
background: var(--card-bg);
|
||||||
|
border: 1px solid var(--line);
|
||||||
|
border-radius: var(--radius-md);
|
||||||
|
padding: var(--space-3);
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
gap: 0.3rem;
|
||||||
|
color: var(--muted);
|
||||||
|
}
|
||||||
|
.bilan__stat.is-strong {
|
||||||
|
border-color: var(--accent);
|
||||||
|
border-width: 2px;
|
||||||
|
}
|
||||||
|
.bilan__num {
|
||||||
|
font-family: var(--font-display);
|
||||||
|
font-weight: 900;
|
||||||
|
font-size: 2rem;
|
||||||
|
color: var(--creme);
|
||||||
|
line-height: 1;
|
||||||
|
}
|
||||||
|
.note {
|
||||||
|
font-style: italic;
|
||||||
|
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);
|
||||||
|
}
|
||||||
|
blockquote footer {
|
||||||
|
margin-top: 0.4rem;
|
||||||
|
font-size: 0.85rem;
|
||||||
|
color: var(--muted-fort);
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
import { getDocument } from '$lib/server/documents';
|
||||||
|
|
||||||
|
export function load() {
|
||||||
|
return { html: getDocument('mentions-legales') };
|
||||||
|
}
|
||||||
@@ -0,0 +1,47 @@
|
|||||||
|
<script lang="ts">
|
||||||
|
import Seo from '$lib/components/Seo.svelte';
|
||||||
|
import Breadcrumb from '$lib/components/Breadcrumb.svelte';
|
||||||
|
import { SITE } from '$lib/data/gong';
|
||||||
|
import { webPage } from '$lib/seo';
|
||||||
|
|
||||||
|
let { data } = $props();
|
||||||
|
|
||||||
|
const crumbs = [
|
||||||
|
{ name: 'Accueil', path: '/' },
|
||||||
|
{ name: 'Mentions légales', path: '/mentions-legales/' }
|
||||||
|
];
|
||||||
|
|
||||||
|
const aboutNode = {
|
||||||
|
'@type': 'AboutPage',
|
||||||
|
'@id': `${SITE.url}/mentions-legales/#aboutpage`,
|
||||||
|
url: `${SITE.url}/mentions-legales/`,
|
||||||
|
name: 'Mentions légales — GONG',
|
||||||
|
isPartOf: { '@id': `${SITE.url}/#website` },
|
||||||
|
about: { '@id': `${SITE.url}/#organization` },
|
||||||
|
inLanguage: 'fr-FR'
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<Seo
|
||||||
|
title="Mentions légales"
|
||||||
|
description="Mentions légales du site gong.gp : éditeur (Organisation Ka Internationale), hébergeur, propriété intellectuelle (licence AGPL-3.0), gestion des données personnelles et droit applicable."
|
||||||
|
path="/mentions-legales/"
|
||||||
|
graph={[webPage('/mentions-legales/', 'Mentions légales — GONG', 'Mentions légales du site.'), aboutNode]}
|
||||||
|
breadcrumb={crumbs}
|
||||||
|
/>
|
||||||
|
|
||||||
|
<main id="contenu" class="section">
|
||||||
|
<div class="container">
|
||||||
|
<Breadcrumb items={crumbs} />
|
||||||
|
<h1>Mentions légales</h1>
|
||||||
|
<!-- Contenu first-party (rendu markdown côté serveur). -->
|
||||||
|
<div class="prose doc">{@html data.html}</div>
|
||||||
|
</div>
|
||||||
|
</main>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
.doc :global(h2) {
|
||||||
|
margin-top: var(--space-4);
|
||||||
|
font-size: 1.25rem;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@@ -0,0 +1,93 @@
|
|||||||
|
<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 Icon from '$lib/components/Icon.svelte';
|
||||||
|
import { reveal } from '$lib/motion/reveal';
|
||||||
|
import { webPage } from '$lib/seo';
|
||||||
|
import { membres } from '$lib/data/gong';
|
||||||
|
|
||||||
|
const crumbs = [
|
||||||
|
{ name: 'Accueil', path: '/' },
|
||||||
|
{ name: 'Militants', path: '/militants/' }
|
||||||
|
];
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<Seo
|
||||||
|
title="Les militants et fondateurs du GONG"
|
||||||
|
description="Pierre Sainton, Jacques Nestor, Marcel Manville, Henri Bangou, Serge Glaude… Portraits des femmes et des hommes qui ont fait le Groupe d'Organisation Nationale de la Guadeloupe."
|
||||||
|
path="/militants/"
|
||||||
|
graph={[webPage('/militants/', 'Militants et fondateurs du GONG', 'Portraits des militants du GONG.')]}
|
||||||
|
breadcrumb={crumbs}
|
||||||
|
/>
|
||||||
|
|
||||||
|
<main id="contenu" class="section">
|
||||||
|
<div class="container">
|
||||||
|
<Breadcrumb items={crumbs} />
|
||||||
|
<h1>Militants & fondateurs</h1>
|
||||||
|
|
||||||
|
<div class="lecture">
|
||||||
|
<Resume
|
||||||
|
lead="Le GONG a été porté par quelques dizaines de militants — étudiants, ouvriers, médecins, avocats. Voici les figures documentées : ses fondateurs, ses théoriciens, ses martyrs."
|
||||||
|
points={[
|
||||||
|
'Pierre Sainton : fondateur principal et idéologue.',
|
||||||
|
'Jacques Nestor : leader de masse, première victime de Mé 67.',
|
||||||
|
'Serge Glaude : co-fondateur, auteur de « Le GONG c quoi ? ».',
|
||||||
|
'Abert Béville : précurseur, mort avant la fondation.'
|
||||||
|
]}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<ul class="grille">
|
||||||
|
{#each membres as m, i (m.slug)}
|
||||||
|
<li>
|
||||||
|
<a class="card card--link" href="/militants/{m.slug}/" use:reveal={i}>
|
||||||
|
<Icon name="users" size="1.5rem" />
|
||||||
|
<h2 class="nom">{m.nom}</h2>
|
||||||
|
<p class="role">{m.role}</p>
|
||||||
|
<p class="prof">{m.profession}</p>
|
||||||
|
<span class="more">Voir la fiche <Icon name="arrow-right" size="1em" /></span>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
{/each}
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</main>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
.grille {
|
||||||
|
list-style: none;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
|
||||||
|
gap: var(--space-3);
|
||||||
|
}
|
||||||
|
.nom {
|
||||||
|
font-size: 1.2rem;
|
||||||
|
margin: 0.6rem 0 0.2rem;
|
||||||
|
text-transform: none;
|
||||||
|
}
|
||||||
|
.role {
|
||||||
|
color: var(--accent);
|
||||||
|
font-weight: 600;
|
||||||
|
font-size: 0.9rem;
|
||||||
|
margin: 0 0 0.2rem;
|
||||||
|
}
|
||||||
|
.prof {
|
||||||
|
color: var(--muted);
|
||||||
|
font-size: 0.9rem;
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
.more {
|
||||||
|
margin-top: 0.8rem;
|
||||||
|
display: inline-flex;
|
||||||
|
align-items: center;
|
||||||
|
gap: 0.35rem;
|
||||||
|
font-family: var(--font-display);
|
||||||
|
text-transform: uppercase;
|
||||||
|
font-size: 0.75rem;
|
||||||
|
letter-spacing: 0.05em;
|
||||||
|
color: var(--accent);
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@@ -0,0 +1,110 @@
|
|||||||
|
<script lang="ts">
|
||||||
|
import Seo from '$lib/components/Seo.svelte';
|
||||||
|
import Breadcrumb from '$lib/components/Breadcrumb.svelte';
|
||||||
|
import Icon from '$lib/components/Icon.svelte';
|
||||||
|
import { personNode } from '$lib/seo';
|
||||||
|
|
||||||
|
let { data } = $props();
|
||||||
|
const m = $derived(data.membre);
|
||||||
|
|
||||||
|
const crumbs = $derived([
|
||||||
|
{ name: 'Accueil', path: '/' },
|
||||||
|
{ name: 'Militants', path: '/militants/' },
|
||||||
|
{ name: m.nom, path: `/militants/${m.slug}/` }
|
||||||
|
]);
|
||||||
|
|
||||||
|
const graph = $derived([
|
||||||
|
personNode(`/militants/${m.slug}/`, m.nom, `${m.role} — ${m.profession}. ${m.biographie}`, {
|
||||||
|
jobTitle: m.profession,
|
||||||
|
...(m.dateDeces ? { deathDate: m.dateDeces } : {})
|
||||||
|
})
|
||||||
|
]);
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<Seo
|
||||||
|
title={m.nom}
|
||||||
|
description={`${m.nom} — ${m.role}. ${m.biographie.slice(0, 155)}`}
|
||||||
|
path={`/militants/${m.slug}/`}
|
||||||
|
type="profile"
|
||||||
|
graph={graph}
|
||||||
|
breadcrumb={crumbs}
|
||||||
|
/>
|
||||||
|
|
||||||
|
<main id="contenu" class="section">
|
||||||
|
<div class="container">
|
||||||
|
<Breadcrumb items={crumbs} />
|
||||||
|
|
||||||
|
<article class="fiche">
|
||||||
|
<header class="fiche__head">
|
||||||
|
<Icon name="users" size="2.4rem" />
|
||||||
|
<div>
|
||||||
|
<h1>{m.nom}</h1>
|
||||||
|
<p class="fiche__role">{m.role}</p>
|
||||||
|
<p class="fiche__prof">{m.profession}</p>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<div class="lecture prose">
|
||||||
|
<h2 class="sr-only">Biographie</h2>
|
||||||
|
<p>{m.biographie}</p>
|
||||||
|
|
||||||
|
{#if m.citation}
|
||||||
|
<blockquote>{m.citation}</blockquote>
|
||||||
|
{/if}
|
||||||
|
{#if m.citations}
|
||||||
|
{#each m.citations as c (c)}
|
||||||
|
<blockquote>{c}</blockquote>
|
||||||
|
{/each}
|
||||||
|
{/if}
|
||||||
|
|
||||||
|
{#if m.dateDeces || m.lieuDeces || m.circonstances}
|
||||||
|
<h2>Circonstances</h2>
|
||||||
|
{#if m.dateDeces}<p><strong>Date :</strong> {m.dateDeces}</p>{/if}
|
||||||
|
{#if m.lieuDeces}<p><strong>Lieu :</strong> {m.lieuDeces}</p>{/if}
|
||||||
|
{#if m.circonstances}<p>{m.circonstances}</p>{/if}
|
||||||
|
{/if}
|
||||||
|
|
||||||
|
{#if m.oeuvre}
|
||||||
|
<h2>Œuvre</h2>
|
||||||
|
<p class="tag"><Icon name="book" size="1em" /> {m.oeuvre}</p>
|
||||||
|
{/if}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<footer class="fiche__src">Sources : {m.source}.</footer>
|
||||||
|
</article>
|
||||||
|
|
||||||
|
<p><a class="btn btn--ghost" href="/militants/">← Tous les militants</a></p>
|
||||||
|
</div>
|
||||||
|
</main>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
.fiche__head {
|
||||||
|
display: flex;
|
||||||
|
gap: var(--space-2);
|
||||||
|
align-items: flex-start;
|
||||||
|
padding-bottom: var(--space-3);
|
||||||
|
border-bottom: 1px solid var(--line);
|
||||||
|
margin-bottom: var(--space-3);
|
||||||
|
}
|
||||||
|
.fiche__head h1 {
|
||||||
|
margin: 0;
|
||||||
|
text-transform: none;
|
||||||
|
}
|
||||||
|
.fiche__role {
|
||||||
|
color: var(--accent);
|
||||||
|
font-weight: 600;
|
||||||
|
margin: 0.3rem 0 0.2rem;
|
||||||
|
}
|
||||||
|
.fiche__prof {
|
||||||
|
color: var(--muted);
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
.fiche__src {
|
||||||
|
margin-top: var(--space-3);
|
||||||
|
color: var(--muted-fort);
|
||||||
|
font-size: 0.85rem;
|
||||||
|
}
|
||||||
|
.prose .tag {
|
||||||
|
display: inline-flex;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
import { error } from '@sveltejs/kit';
|
||||||
|
import { membres, getMembre } from '$lib/data/gong';
|
||||||
|
import type { EntryGenerator } from './$types';
|
||||||
|
|
||||||
|
export const entries: EntryGenerator = () => membres.map((m) => ({ slug: m.slug }));
|
||||||
|
|
||||||
|
export function load({ params }) {
|
||||||
|
const membre = getMembre(params.slug);
|
||||||
|
if (!membre) error(404, 'Militant introuvable');
|
||||||
|
return { membre };
|
||||||
|
}
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
<script lang="ts">
|
||||||
|
import Icon from '$lib/components/Icon.svelte';
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<main id="contenu" class="container section" style="text-align:center; min-height:70dvh; display:grid; place-content:center; gap:1rem;">
|
||||||
|
<Icon name="ka" size="4rem" />
|
||||||
|
<h1>Pa ni koneksyon</h1>
|
||||||
|
<p class="prose" style="margin-inline:auto;">
|
||||||
|
<span lang="gcf">Ou dékoné.</span> Vous êtes hors-ligne. Les pages déjà consultées restent
|
||||||
|
disponibles ; reconnectez-vous pour lire le reste du site du GONG.
|
||||||
|
</p>
|
||||||
|
<p><a class="btn" href="/">Rèvin an akèy — Retour à l'accueil</a></p>
|
||||||
|
</main>
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
import { getDocument } from '$lib/server/documents';
|
||||||
|
|
||||||
|
export function load() {
|
||||||
|
return { html: getDocument('orientation-strategie') };
|
||||||
|
}
|
||||||
@@ -0,0 +1,86 @@
|
|||||||
|
<script lang="ts">
|
||||||
|
import Seo from '$lib/components/Seo.svelte';
|
||||||
|
import Breadcrumb from '$lib/components/Breadcrumb.svelte';
|
||||||
|
import Icon from '$lib/components/Icon.svelte';
|
||||||
|
import { webPage } from '$lib/seo';
|
||||||
|
|
||||||
|
let { data } = $props();
|
||||||
|
|
||||||
|
const crumbs = [
|
||||||
|
{ name: 'Accueil', path: '/' },
|
||||||
|
{ name: 'Orientation & stratégie', path: '/orientation/' }
|
||||||
|
];
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<Seo
|
||||||
|
title="Orientation et stratégie de la lutte révolutionnaire"
|
||||||
|
description="Le rapport d'orientation et de stratégie du GONG (1963) : lutte de masse et lutte de classe, suffrage universel, violence libératrice, voie révolutionnaire de la Guadeloupe. Texte intégral."
|
||||||
|
path="/orientation/"
|
||||||
|
type="article"
|
||||||
|
graph={[webPage('/orientation/', 'Orientation et stratégie du GONG', 'Rapport stratégique du GONG (1963).')]}
|
||||||
|
breadcrumb={crumbs}
|
||||||
|
/>
|
||||||
|
|
||||||
|
<main id="contenu" class="section">
|
||||||
|
<div class="container">
|
||||||
|
<Breadcrumb items={crumbs} />
|
||||||
|
<header class="doc-head">
|
||||||
|
<p class="doc-kicker"><span class="flag-chip" aria-hidden="true"></span> Document stratégique · 1963</p>
|
||||||
|
<h1>Orientation & stratégie de la lutte révolutionnaire du peuple guadeloupéen</h1>
|
||||||
|
<a class="btn btn--ghost" href="/assets/orientation-et-strategie-de-la-lutte-revolutionnaire-du-peuple-guadeloupeen-1963.pdf" rel="external noopener noreferrer" target="_blank">
|
||||||
|
Voir l'original (PDF) <Icon name="download" size="1em" />
|
||||||
|
</a>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<article class="prose doc">
|
||||||
|
<!-- Contenu first-party (transcription du document de 1963, rendu markdown côté serveur). -->
|
||||||
|
{@html data.html}
|
||||||
|
</article>
|
||||||
|
|
||||||
|
<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="/histoire/">L'histoire du GONG →</a>
|
||||||
|
</nav>
|
||||||
|
</div>
|
||||||
|
</main>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
.doc-head {
|
||||||
|
margin-bottom: var(--space-4);
|
||||||
|
}
|
||||||
|
.doc-head h1 {
|
||||||
|
font-size: clamp(1.6rem, 1.2rem + 2vw, 2.6rem);
|
||||||
|
}
|
||||||
|
.doc-kicker {
|
||||||
|
display: inline-flex;
|
||||||
|
flex-direction: column;
|
||||||
|
gap: 0.5rem;
|
||||||
|
font-family: var(--font-display);
|
||||||
|
text-transform: uppercase;
|
||||||
|
letter-spacing: 0.08em;
|
||||||
|
font-size: 0.85rem;
|
||||||
|
color: var(--muted);
|
||||||
|
}
|
||||||
|
.doc-head .btn {
|
||||||
|
margin-top: var(--space-2);
|
||||||
|
}
|
||||||
|
.doc :global(h2) {
|
||||||
|
margin-top: var(--space-4);
|
||||||
|
padding-top: var(--space-2);
|
||||||
|
border-top: 1px solid var(--line);
|
||||||
|
font-size: 1.35rem;
|
||||||
|
}
|
||||||
|
.doc :global(h3) {
|
||||||
|
color: var(--accent);
|
||||||
|
font-size: 1.1rem;
|
||||||
|
}
|
||||||
|
.doc :global(blockquote) {
|
||||||
|
font-size: 1.05rem;
|
||||||
|
}
|
||||||
|
.suite {
|
||||||
|
display: flex;
|
||||||
|
gap: 0.6rem;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
margin-top: var(--space-4);
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@@ -0,0 +1,177 @@
|
|||||||
|
<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 { webPage } from '$lib/seo';
|
||||||
|
import { SITE, proces1968 as p, accusesProces1968 as acc } from '$lib/data/gong';
|
||||||
|
|
||||||
|
const crumbs = [
|
||||||
|
{ name: 'Accueil', path: '/' },
|
||||||
|
{ name: 'Procès de 1968', path: '/proces-1968/' }
|
||||||
|
];
|
||||||
|
|
||||||
|
const eventNode = {
|
||||||
|
'@type': 'Event',
|
||||||
|
'@id': `${SITE.url}/proces-1968/#event`,
|
||||||
|
name: 'Procès des 18 Guadeloupéens',
|
||||||
|
description: p.accusation,
|
||||||
|
startDate: '1968-02-19',
|
||||||
|
endDate: '1968-03-01',
|
||||||
|
eventStatus: 'https://schema.org/EventScheduled',
|
||||||
|
location: { '@type': 'Place', name: "Cour de sûreté de l'État, Paris", address: { '@type': 'PostalAddress', addressLocality: 'Paris', addressCountry: 'FR' } },
|
||||||
|
about: { '@id': `${SITE.url}/#organization` }
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<Seo
|
||||||
|
title="Le procès des 18 Guadeloupéens (1968)"
|
||||||
|
description="Du 19 février au 1er mars 1968, 18 membres du GONG sont jugés à Paris pour « atteinte à l'intégrité du territoire ». Sartre et Césaire témoignent. Verdict : 13 acquittés, 6 condamnés avec sursis."
|
||||||
|
path="/proces-1968/"
|
||||||
|
type="article"
|
||||||
|
graph={[webPage('/proces-1968/', 'Procès des 18 Guadeloupéens (1968)', 'Le procès du GONG devant la Cour de sûreté de l’État.'), eventNode]}
|
||||||
|
breadcrumb={crumbs}
|
||||||
|
/>
|
||||||
|
|
||||||
|
<main id="contenu" class="section">
|
||||||
|
<div class="container">
|
||||||
|
<Breadcrumb items={crumbs} />
|
||||||
|
<p class="surtitre"><span class="flag-chip" aria-hidden="true"></span> 19 février — 1er mars 1968 · Paris</p>
|
||||||
|
<h1>Le procès des 18</h1>
|
||||||
|
|
||||||
|
<div class="lecture">
|
||||||
|
<Resume
|
||||||
|
lead="Du 19 février au 1er mars 1968, dix-huit Guadeloupéens, dont les dirigeants du GONG, sont jugés à Paris devant la Cour de sûreté de l'État pour « atteinte à l'intégrité du territoire français ». Jean-Paul Sartre et Aimé Césaire témoignent en leur faveur. Le verdict — 13 acquittements, 6 peines avec sursis — est vécu comme une victoire politique."
|
||||||
|
points={[
|
||||||
|
'Juridiction d’exception : la Cour de sûreté de l’État (créée en 1963 pour l’OAS).',
|
||||||
|
'Accusation : atteinte à l’intégrité du territoire, complot contre l’État.',
|
||||||
|
'Témoins de la défense : Jean-Paul Sartre, Aimé Césaire, la LDH.',
|
||||||
|
'Verdict : 13 acquittés, 6 condamnés avec sursis (dont Pierre Sainton).'
|
||||||
|
]}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<section class="section--tight">
|
||||||
|
<SectionTitle title="Un tribunal d'exception" as="h2" id="juridiction" />
|
||||||
|
<div class="lecture prose">
|
||||||
|
<p><strong>{p.juridiction}.</strong> {p.noteJuridiction}</p>
|
||||||
|
<p><strong>L'accusation :</strong> {p.accusation}.</p>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section class="section--tight">
|
||||||
|
<SectionTitle title="Les accusés" as="h2" id="accuses" />
|
||||||
|
<p class="lecture muted">{acc.description}. Noms identifiés dans les sources :</p>
|
||||||
|
<ul class="chips lecture">
|
||||||
|
{#each acc.nomsIdentifies as nom (nom)}
|
||||||
|
<li class="tag">{nom}</li>
|
||||||
|
{/each}
|
||||||
|
</ul>
|
||||||
|
<p class="lecture note">{acc.note}</p>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section class="section--tight">
|
||||||
|
<SectionTitle title="Sartre et Césaire à la barre" as="h2" id="temoins" />
|
||||||
|
<div class="lecture prose">
|
||||||
|
<p>La défense fait citer des figures majeures de la pensée anticolonialiste :</p>
|
||||||
|
<ul>
|
||||||
|
{#each p.temoinsDefense as t (t)}
|
||||||
|
<li>{t}</li>
|
||||||
|
{/each}
|
||||||
|
</ul>
|
||||||
|
<p><strong>Avocats :</strong> {p.avocats.join(', ')}.</p>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section class="section--tight">
|
||||||
|
<SectionTitle title="Le verdict" as="h2" id="verdict" />
|
||||||
|
<div class="verdict">
|
||||||
|
<div class="verdict__stat is-ok"><span class="verdict__num">{p.verdict.acquittes}</span><span>acquittés</span></div>
|
||||||
|
<div class="verdict__stat"><span class="verdict__num">{p.verdict.condamnes}</span><span>condamnés avec sursis</span></div>
|
||||||
|
</div>
|
||||||
|
<p class="lecture prose">{p.verdict.interpretation}</p>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section class="section--tight">
|
||||||
|
<SectionTitle title="Ce que le procès a révélé" as="h2" id="elements-cles" />
|
||||||
|
<ul class="lecture prose">
|
||||||
|
{#each p.elementsCles as e (e)}
|
||||||
|
<li>{e}</li>
|
||||||
|
{/each}
|
||||||
|
</ul>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<p class="src lecture">Sources : {p.source}.</p>
|
||||||
|
|
||||||
|
<nav class="suite" aria-label="Poursuivre la lecture">
|
||||||
|
<a class="btn btn--ghost" href="/heritage/">L'héritage du GONG →</a>
|
||||||
|
<a class="btn btn--ghost" href="/militants/pierre-sainton/">Pierre Sainton →</a>
|
||||||
|
</nav>
|
||||||
|
</div>
|
||||||
|
</main>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
.surtitre {
|
||||||
|
display: inline-flex;
|
||||||
|
flex-direction: column;
|
||||||
|
gap: 0.5rem;
|
||||||
|
font-family: var(--font-display);
|
||||||
|
text-transform: uppercase;
|
||||||
|
letter-spacing: 0.08em;
|
||||||
|
font-size: 0.85rem;
|
||||||
|
color: var(--muted);
|
||||||
|
}
|
||||||
|
.chips {
|
||||||
|
list-style: none;
|
||||||
|
padding: 0;
|
||||||
|
display: flex;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
gap: 0.5rem;
|
||||||
|
margin: 0 0 var(--space-2);
|
||||||
|
}
|
||||||
|
.muted {
|
||||||
|
color: var(--muted);
|
||||||
|
}
|
||||||
|
.note {
|
||||||
|
font-style: italic;
|
||||||
|
color: var(--muted-fort);
|
||||||
|
font-size: 0.9rem;
|
||||||
|
}
|
||||||
|
.verdict {
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
|
||||||
|
gap: var(--space-2);
|
||||||
|
margin-bottom: var(--space-3);
|
||||||
|
}
|
||||||
|
.verdict__stat {
|
||||||
|
background: var(--card-bg);
|
||||||
|
border: 1px solid var(--line);
|
||||||
|
border-radius: var(--radius-md);
|
||||||
|
padding: var(--space-3);
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
gap: 0.3rem;
|
||||||
|
color: var(--muted);
|
||||||
|
}
|
||||||
|
.verdict__stat.is-ok {
|
||||||
|
border-left: 4px solid var(--vert-gong);
|
||||||
|
}
|
||||||
|
.verdict__num {
|
||||||
|
font-family: var(--font-display);
|
||||||
|
font-weight: 900;
|
||||||
|
font-size: 2.2rem;
|
||||||
|
color: var(--creme);
|
||||||
|
line-height: 1;
|
||||||
|
}
|
||||||
|
.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);
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@@ -0,0 +1,104 @@
|
|||||||
|
<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 Icon from '$lib/components/Icon.svelte';
|
||||||
|
import { reveal } from '$lib/motion/reveal';
|
||||||
|
import { webPage } from '$lib/seo';
|
||||||
|
import { publications as pubs } from '$lib/data/gong';
|
||||||
|
|
||||||
|
const crumbs = [
|
||||||
|
{ name: 'Accueil', path: '/' },
|
||||||
|
{ name: 'Publications', path: '/publications/' }
|
||||||
|
];
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<Seo
|
||||||
|
title="Les publications du GONG"
|
||||||
|
description="Gong-Information (« Journal du Patriote Guadeloupéen »), Révolution Caraïbe, tracts clandestins et affiches électorales de 1967 : les organes de propagande et de théorie du GONG."
|
||||||
|
path="/publications/"
|
||||||
|
type="article"
|
||||||
|
graph={[webPage('/publications/', 'Publications du GONG', 'Journaux, tracts et affiches du GONG.')]}
|
||||||
|
breadcrumb={crumbs}
|
||||||
|
/>
|
||||||
|
|
||||||
|
<main id="contenu" class="section">
|
||||||
|
<div class="container">
|
||||||
|
<Breadcrumb items={crumbs} />
|
||||||
|
<h1>Publications</h1>
|
||||||
|
|
||||||
|
<div class="lecture">
|
||||||
|
<Resume
|
||||||
|
lead="Le GONG diffusait ses idées par un journal clandestin, Gong-Information, imprimé en Belgique avec l'appui du Parti communiste belge prochinois, ainsi que par des tracts et des affiches électorales — dont les célèbres « Briser les urnes colonialistes » de 1967."
|
||||||
|
points={[
|
||||||
|
'Gong-Information : organe politique et théorique (1964-1967).',
|
||||||
|
'Imprimé en Belgique, diffusé clandestinement en France et en Guadeloupe.',
|
||||||
|
'Affiches de 1967 saisies par la police sur le port de Pointe-à-Pitre.'
|
||||||
|
]}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<ul class="pubs">
|
||||||
|
{#each pubs as p, i (p.titre)}
|
||||||
|
<li class="card" use:reveal={i}>
|
||||||
|
<Icon name="book" size="1.6rem" />
|
||||||
|
<h2>{p.titre}</h2>
|
||||||
|
{#if p.sousTitre}<p class="sous">« {p.sousTitre} »</p>{/if}
|
||||||
|
<p class="meta"><span class="tag">{p.type}</span> <span class="tag tag--vert">{p.periode}</span></p>
|
||||||
|
<p class="contenu">{p.contenu}</p>
|
||||||
|
{#if p.lieuImpression}<p class="detail"><strong>Impression :</strong> {p.lieuImpression}</p>{/if}
|
||||||
|
{#if p.lieuDiffusion}<p class="detail"><strong>Diffusion :</strong> {p.lieuDiffusion}</p>{/if}
|
||||||
|
{#if p.extraitProgramme}<blockquote>{p.extraitProgramme}</blockquote>{/if}
|
||||||
|
{#if p.note}<p class="note">{p.note}</p>{/if}
|
||||||
|
<p class="src">Source : {p.source}.</p>
|
||||||
|
</li>
|
||||||
|
{/each}
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</main>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
.pubs {
|
||||||
|
list-style: none;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
display: grid;
|
||||||
|
gap: var(--space-3);
|
||||||
|
max-width: var(--container-lecture);
|
||||||
|
}
|
||||||
|
.pubs h2 {
|
||||||
|
font-size: 1.3rem;
|
||||||
|
margin: 0.5rem 0 0.2rem;
|
||||||
|
text-transform: none;
|
||||||
|
}
|
||||||
|
.sous {
|
||||||
|
color: var(--accent);
|
||||||
|
font-style: italic;
|
||||||
|
margin: 0 0 0.5rem;
|
||||||
|
}
|
||||||
|
.meta {
|
||||||
|
display: flex;
|
||||||
|
gap: 0.5rem;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
margin: 0 0 0.6rem;
|
||||||
|
}
|
||||||
|
.contenu {
|
||||||
|
color: var(--creme);
|
||||||
|
margin: 0 0 0.6rem;
|
||||||
|
}
|
||||||
|
.detail {
|
||||||
|
color: var(--muted);
|
||||||
|
font-size: 0.92rem;
|
||||||
|
margin: 0 0 0.3rem;
|
||||||
|
}
|
||||||
|
.note {
|
||||||
|
color: var(--muted);
|
||||||
|
font-style: italic;
|
||||||
|
font-size: 0.92rem;
|
||||||
|
}
|
||||||
|
.src {
|
||||||
|
color: var(--muted-fort);
|
||||||
|
font-size: 0.82rem;
|
||||||
|
margin: 0.5rem 0 0;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@@ -0,0 +1,48 @@
|
|||||||
|
import { SITE, membres } from '$lib/data/gong';
|
||||||
|
import { getActualites } from '$lib/server/actualites';
|
||||||
|
|
||||||
|
export const prerender = true;
|
||||||
|
|
||||||
|
const statiques: { path: string; priority: string; changefreq: string }[] = [
|
||||||
|
{ path: '/', priority: '1.0', changefreq: 'monthly' },
|
||||||
|
{ path: '/histoire/', priority: '0.9', changefreq: 'yearly' },
|
||||||
|
{ path: '/me-67/', priority: '0.9', changefreq: 'yearly' },
|
||||||
|
{ path: '/proces-1968/', priority: '0.8', changefreq: 'yearly' },
|
||||||
|
{ path: '/militants/', priority: '0.8', changefreq: 'yearly' },
|
||||||
|
{ path: '/ideologie/', priority: '0.7', changefreq: 'yearly' },
|
||||||
|
{ path: '/heritage/', priority: '0.7', changefreq: 'yearly' },
|
||||||
|
{ path: '/publications/', priority: '0.6', changefreq: 'yearly' },
|
||||||
|
{ path: '/charte/', priority: '0.7', changefreq: 'yearly' },
|
||||||
|
{ path: '/orientation/', priority: '0.7', changefreq: 'yearly' },
|
||||||
|
{ path: '/sources/', priority: '0.6', changefreq: 'yearly' },
|
||||||
|
{ path: '/faq/', priority: '0.8', changefreq: 'monthly' },
|
||||||
|
{ path: '/actualites/', priority: '0.6', changefreq: 'weekly' },
|
||||||
|
{ path: '/contact/', priority: '0.4', changefreq: 'yearly' },
|
||||||
|
{ path: '/mentions-legales/', priority: '0.2', changefreq: 'yearly' }
|
||||||
|
];
|
||||||
|
|
||||||
|
export function GET() {
|
||||||
|
const today = new Date().toISOString().slice(0, 10);
|
||||||
|
const urls: string[] = [];
|
||||||
|
|
||||||
|
for (const s of statiques) {
|
||||||
|
urls.push(
|
||||||
|
`<url><loc>${SITE.url}${s.path}</loc><lastmod>${today}</lastmod><changefreq>${s.changefreq}</changefreq><priority>${s.priority}</priority></url>`
|
||||||
|
);
|
||||||
|
}
|
||||||
|
for (const m of membres) {
|
||||||
|
urls.push(`<url><loc>${SITE.url}/militants/${m.slug}/</loc><lastmod>${today}</lastmod><changefreq>yearly</changefreq><priority>0.6</priority></url>`);
|
||||||
|
}
|
||||||
|
for (const a of getActualites()) {
|
||||||
|
urls.push(`<url><loc>${SITE.url}/actualites/${a.slug}/</loc><lastmod>${a.iso}</lastmod><changefreq>monthly</changefreq><priority>0.5</priority></url>`);
|
||||||
|
}
|
||||||
|
|
||||||
|
const xml = `<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
|
||||||
|
${urls.join('\n')}
|
||||||
|
</urlset>`;
|
||||||
|
|
||||||
|
return new Response(xml, {
|
||||||
|
headers: { 'Content-Type': 'application/xml', 'Cache-Control': 'max-age=3600' }
|
||||||
|
});
|
||||||
|
}
|
||||||
@@ -0,0 +1,103 @@
|
|||||||
|
<script lang="ts">
|
||||||
|
import Seo from '$lib/components/Seo.svelte';
|
||||||
|
import Breadcrumb from '$lib/components/Breadcrumb.svelte';
|
||||||
|
import Icon from '$lib/components/Icon.svelte';
|
||||||
|
import { webPage } from '$lib/seo';
|
||||||
|
import { sources, metadata } from '$lib/data/gong';
|
||||||
|
|
||||||
|
const crumbs = [
|
||||||
|
{ name: 'Accueil', path: '/' },
|
||||||
|
{ name: 'Sources', path: '/sources/' }
|
||||||
|
];
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<Seo
|
||||||
|
title="Sources & bibliographie"
|
||||||
|
description="Les 15 sources académiques, journalistiques et archivistiques du dossier documentaire sur le GONG : Sylvain Mary, Contretemps, LDH, Lutte Ouvrière, Archives nationales, Wikipédia, etc."
|
||||||
|
path="/sources/"
|
||||||
|
graph={[webPage('/sources/', 'Sources et bibliographie', 'Sources du dossier documentaire sur le GONG.')]}
|
||||||
|
breadcrumb={crumbs}
|
||||||
|
/>
|
||||||
|
|
||||||
|
<main id="contenu" class="section">
|
||||||
|
<div class="container">
|
||||||
|
<Breadcrumb items={crumbs} />
|
||||||
|
<h1>Sources & bibliographie</h1>
|
||||||
|
<p class="lecture intro">{metadata.avertissement}</p>
|
||||||
|
|
||||||
|
<ol class="biblio">
|
||||||
|
{#each sources as s, i (s.titre)}
|
||||||
|
<li class="ref">
|
||||||
|
<Icon name="book" size="1.2rem" />
|
||||||
|
<div>
|
||||||
|
<p class="ref__titre">
|
||||||
|
{#if s.url}
|
||||||
|
<a href={s.url} rel="external noopener noreferrer" target="_blank">{s.titre}</a>
|
||||||
|
<Icon name="external" size="0.85em" />
|
||||||
|
{:else}
|
||||||
|
{s.titre}
|
||||||
|
{/if}
|
||||||
|
</p>
|
||||||
|
<p class="ref__meta">
|
||||||
|
<strong>{s.auteur}</strong> · {s.editeur}{s.annee !== 'Non daté' ? `, ${s.annee}` : ''} · <span class="ref__type">{s.type}</span>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
{/each}
|
||||||
|
</ol>
|
||||||
|
|
||||||
|
<p class="lecture note">
|
||||||
|
Ce site est un travail de documentation à but non lucratif et pédagogique. Les extraits de
|
||||||
|
textes historiques sont reproduits à des fins de mémoire et de recherche, avec mention de leur
|
||||||
|
provenance.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</main>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
.intro {
|
||||||
|
color: var(--muted);
|
||||||
|
margin-bottom: var(--space-4);
|
||||||
|
}
|
||||||
|
.biblio {
|
||||||
|
list-style: none;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
display: grid;
|
||||||
|
gap: var(--space-2);
|
||||||
|
counter-reset: ref;
|
||||||
|
}
|
||||||
|
.ref {
|
||||||
|
display: flex;
|
||||||
|
gap: 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);
|
||||||
|
}
|
||||||
|
.ref__titre {
|
||||||
|
margin: 0 0 0.2rem;
|
||||||
|
font-weight: 600;
|
||||||
|
color: var(--creme);
|
||||||
|
}
|
||||||
|
.ref__titre a {
|
||||||
|
color: var(--creme);
|
||||||
|
}
|
||||||
|
.ref__titre a:hover {
|
||||||
|
color: var(--accent);
|
||||||
|
}
|
||||||
|
.ref__meta {
|
||||||
|
margin: 0;
|
||||||
|
color: var(--muted);
|
||||||
|
font-size: 0.9rem;
|
||||||
|
}
|
||||||
|
.ref__type {
|
||||||
|
font-style: italic;
|
||||||
|
}
|
||||||
|
.note {
|
||||||
|
margin-top: var(--space-4);
|
||||||
|
color: var(--muted-fort);
|
||||||
|
font-size: 0.88rem;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@@ -0,0 +1,52 @@
|
|||||||
|
# ============================================================================
|
||||||
|
# gong.gp — configuration Apache (o2switch / hébergement mutualisé statique).
|
||||||
|
# Le CSP script-src/style-src est géré par la balise <meta> hachée de SvelteKit.
|
||||||
|
# ============================================================================
|
||||||
|
|
||||||
|
# ── HTTPS forcé ──
|
||||||
|
<IfModule mod_rewrite.c>
|
||||||
|
RewriteEngine On
|
||||||
|
RewriteCond %{HTTPS} off
|
||||||
|
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
|
||||||
|
</IfModule>
|
||||||
|
|
||||||
|
# ── En-têtes de sécurité ──
|
||||||
|
<IfModule mod_headers.c>
|
||||||
|
Header always set X-Frame-Options "DENY"
|
||||||
|
Header always set X-Content-Type-Options "nosniff"
|
||||||
|
Header always set Referrer-Policy "strict-origin-when-cross-origin"
|
||||||
|
Header always set Permissions-Policy "geolocation=(), camera=(), microphone=(), payment=(), usb=(), interest-cohort=()"
|
||||||
|
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
|
||||||
|
Header always set Content-Security-Policy "frame-ancestors 'none'; base-uri 'self'; form-action 'self'; object-src 'none'"
|
||||||
|
</IfModule>
|
||||||
|
|
||||||
|
# ── Cache : assets immuables ──
|
||||||
|
<IfModule mod_headers.c>
|
||||||
|
<FilesMatch "\.(woff2|avif|webp|png|jpg|jpeg|svg|ico)$">
|
||||||
|
Header set Cache-Control "public, max-age=31536000, immutable"
|
||||||
|
</FilesMatch>
|
||||||
|
</IfModule>
|
||||||
|
<IfModule mod_expires.c>
|
||||||
|
ExpiresActive On
|
||||||
|
ExpiresByType text/css "access plus 1 year"
|
||||||
|
ExpiresByType application/javascript "access plus 1 year"
|
||||||
|
ExpiresByType font/woff2 "access plus 1 year"
|
||||||
|
ExpiresByType image/avif "access plus 1 year"
|
||||||
|
ExpiresByType image/webp "access plus 1 year"
|
||||||
|
ExpiresByType text/html "access plus 0 seconds"
|
||||||
|
</IfModule>
|
||||||
|
|
||||||
|
# ── Compression ──
|
||||||
|
<IfModule mod_deflate.c>
|
||||||
|
AddOutputFilterByType DEFLATE text/html text/css application/javascript application/json image/svg+xml application/xml
|
||||||
|
</IfModule>
|
||||||
|
|
||||||
|
# ── Page 404 autonome ──
|
||||||
|
ErrorDocument 404 /404.html
|
||||||
|
|
||||||
|
# ── Types ──
|
||||||
|
<IfModule mod_mime.c>
|
||||||
|
AddType application/manifest+json .webmanifest
|
||||||
|
AddType font/woff2 .woff2
|
||||||
|
AddType image/avif .avif
|
||||||
|
</IfModule>
|
||||||
@@ -0,0 +1,81 @@
|
|||||||
|
<!doctype html>
|
||||||
|
<html lang="fr">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||||
|
<meta name="robots" content="noindex" />
|
||||||
|
<title>404 — GONG</title>
|
||||||
|
<link rel="icon" href="/favicon.ico" sizes="32x32" />
|
||||||
|
<link rel="stylesheet" href="/fonts/fonts.css" />
|
||||||
|
<style>
|
||||||
|
:root {
|
||||||
|
--noir: #0d0d0d;
|
||||||
|
--creme: #faf6ef;
|
||||||
|
--rouge: #e11419;
|
||||||
|
--vert: #00a651;
|
||||||
|
--muted: rgba(250, 246, 239, 0.68);
|
||||||
|
}
|
||||||
|
* {
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
body {
|
||||||
|
margin: 0;
|
||||||
|
min-height: 100dvh;
|
||||||
|
display: grid;
|
||||||
|
place-content: center;
|
||||||
|
justify-items: center;
|
||||||
|
text-align: center;
|
||||||
|
gap: 0.6rem;
|
||||||
|
padding: 2rem;
|
||||||
|
background: var(--noir);
|
||||||
|
color: var(--creme);
|
||||||
|
font-family: 'Inter', system-ui, sans-serif;
|
||||||
|
}
|
||||||
|
.flag {
|
||||||
|
width: 72px;
|
||||||
|
height: 6px;
|
||||||
|
background: linear-gradient(to right, var(--vert) 0 40%, #fff 40% 60%, var(--rouge) 60% 100%);
|
||||||
|
margin-bottom: 1rem;
|
||||||
|
}
|
||||||
|
.code {
|
||||||
|
font-family: 'Archivo', 'Arial Black', sans-serif;
|
||||||
|
font-weight: 900;
|
||||||
|
font-size: clamp(3rem, 2rem + 6vw, 6rem);
|
||||||
|
line-height: 1;
|
||||||
|
color: var(--rouge);
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
h1 {
|
||||||
|
font-family: 'Archivo', 'Arial Black', sans-serif;
|
||||||
|
font-weight: 800;
|
||||||
|
text-transform: uppercase;
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
p {
|
||||||
|
max-width: 44ch;
|
||||||
|
color: var(--muted);
|
||||||
|
}
|
||||||
|
a.btn {
|
||||||
|
display: inline-block;
|
||||||
|
margin-top: 1rem;
|
||||||
|
font-family: 'Archivo', sans-serif;
|
||||||
|
font-weight: 700;
|
||||||
|
text-transform: uppercase;
|
||||||
|
letter-spacing: 0.03em;
|
||||||
|
text-decoration: none;
|
||||||
|
padding: 0.85em 1.4em;
|
||||||
|
border: 2px solid var(--rouge);
|
||||||
|
border-radius: 3px;
|
||||||
|
background: var(--rouge);
|
||||||
|
color: #0d0d0d;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div class="flag"></div>
|
||||||
|
<p class="code">404</p>
|
||||||
|
<h1 lang="gcf">Paj-la pa la</h1>
|
||||||
|
<p>Cette page n'existe pas ou a été déplacée. Mais l'histoire du GONG, elle, est toujours là.</p>
|
||||||
|
<a class="btn" href="/">Retour à l'accueil</a>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
# En-têtes Cloudflare Pages.
|
||||||
|
# Le CSP script-src/style-src est géré par la balise <meta> hachée de SvelteKit (kit.csp).
|
||||||
|
# Ici : uniquement les directives d'en-tête (frame-ancestors…) et les en-têtes de sécurité.
|
||||||
|
|
||||||
|
/*
|
||||||
|
X-Frame-Options: DENY
|
||||||
|
X-Content-Type-Options: nosniff
|
||||||
|
Referrer-Policy: strict-origin-when-cross-origin
|
||||||
|
Permissions-Policy: geolocation=(), camera=(), microphone=(), payment=(), usb=(), interest-cohort=()
|
||||||
|
Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
|
||||||
|
Content-Security-Policy: frame-ancestors 'none'; base-uri 'self'; form-action 'self'; object-src 'none'
|
||||||
|
|
||||||
|
# Assets immuables — cache long.
|
||||||
|
/_app/immutable/*
|
||||||
|
Cache-Control: public, max-age=31536000, immutable
|
||||||
|
|
||||||
|
/fonts/*
|
||||||
|
Cache-Control: public, max-age=31536000, immutable
|
||||||
|
|
||||||
|
# L'administration (Sveltia CMS) doit joindre la forge Gitea.
|
||||||
|
/admin/*
|
||||||
|
X-Robots-Tag: noindex
|
||||||
|
Content-Security-Policy: default-src 'self'; script-src 'self' 'wasm-unsafe-eval'; style-src 'self' 'unsafe-inline'; img-src 'self' data: https://labola.o-k-i.net; font-src 'self' data:; connect-src 'self' https://labola.o-k-i.net; frame-ancestors 'none'; base-uri 'self'
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
# CSP spécifique à l'administration (Sveltia CMS) : doit joindre la forge Gitea.
|
||||||
|
<IfModule mod_headers.c>
|
||||||
|
Header always set X-Robots-Tag "noindex, nofollow"
|
||||||
|
Header always set Content-Security-Policy "default-src 'self'; script-src 'self' 'wasm-unsafe-eval'; style-src 'self' 'unsafe-inline'; img-src 'self' data: https://labola.o-k-i.net; font-src 'self' data:; connect-src 'self' https://labola.o-k-i.net; frame-ancestors 'none'; base-uri 'self'"
|
||||||
|
</IfModule>
|
||||||
@@ -0,0 +1,47 @@
|
|||||||
|
# Sveltia CMS — administration des actualités du GONG.
|
||||||
|
# Backend git : forge Gitea/Forgejo de l'écosystème OKI (labola.o-k-i.net).
|
||||||
|
# Prérequis (une seule fois) : créer une application OAuth dans Gitea
|
||||||
|
# (Paramètres → Applications → Nouvelle application OAuth2),
|
||||||
|
# URL de redirection : https://gong.gp/admin/ — puis renseigner `app_id` ci-dessous.
|
||||||
|
# Voir DEPLOIEMENT.md.
|
||||||
|
|
||||||
|
backend:
|
||||||
|
name: gitea
|
||||||
|
repo: ORGANISATION-KA-INTERNATIONALE/gong.gp
|
||||||
|
branch: prod # ⚠️ doit correspondre à la branche déployée en production
|
||||||
|
base_url: https://labola.o-k-i.net
|
||||||
|
# app_id: "<client-id-oauth-gitea>"
|
||||||
|
|
||||||
|
# Édition locale sans authentification : `npx @sveltia/cms-cli` ou ?dev côté outillage.
|
||||||
|
# media : images des actualités auto-hébergées dans le dépôt.
|
||||||
|
media_folder: static/images/actualites
|
||||||
|
public_folder: /images/actualites
|
||||||
|
|
||||||
|
# Interface en français.
|
||||||
|
locale: fr
|
||||||
|
|
||||||
|
collections:
|
||||||
|
- name: actualites
|
||||||
|
label: Actualités
|
||||||
|
label_singular: Actualité
|
||||||
|
description: Communiqués, commémorations et annonces du GONG.
|
||||||
|
folder: content/actualites
|
||||||
|
create: true
|
||||||
|
delete: true
|
||||||
|
slug: '{{year}}-{{month}}-{{day}}-{{slug}}'
|
||||||
|
identifier_field: titre
|
||||||
|
summary: '{{titre}} — {{date}}'
|
||||||
|
sortable_fields: [date, titre]
|
||||||
|
fields:
|
||||||
|
- { name: titre, label: Titre, widget: string }
|
||||||
|
- name: date
|
||||||
|
label: Date de publication
|
||||||
|
widget: datetime
|
||||||
|
format: 'YYYY-MM-DD'
|
||||||
|
date_format: 'YYYY-MM-DD'
|
||||||
|
time_format: false
|
||||||
|
- { name: chapeau, label: Chapeau (résumé court), widget: text }
|
||||||
|
- { name: couverture, label: Image de couverture, widget: image, required: false }
|
||||||
|
- { name: couvertureAlt, label: "Texte alternatif de l'image", widget: string, required: false }
|
||||||
|
- { name: top, label: Mettre en avant, widget: boolean, default: false }
|
||||||
|
- { name: body, label: Contenu, widget: markdown }
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
<!doctype html>
|
||||||
|
<html lang="fr">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||||
|
<meta name="robots" content="noindex, nofollow" />
|
||||||
|
<title>GONG — Administration</title>
|
||||||
|
<link rel="icon" href="/favicon.ico" sizes="32x32" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<!-- Sveltia CMS — bundle auto-hébergé (souveraineté + CSP script-src 'self'). -->
|
||||||
|
<script src="/admin/sveltia-cms.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
Before Width: | Height: | Size: 29 KiB After Width: | Height: | Size: 29 KiB |
|
Before Width: | Height: | Size: 4.2 KiB After Width: | Height: | Size: 4.2 KiB |
@@ -0,0 +1,69 @@
|
|||||||
|
/* Polices auto-hébergées — souveraineté numérique, zéro appel Google Fonts.
|
||||||
|
Archivo (display, titres + boutons) · Inter (corps). Sous-ensemble latin, woff2. */
|
||||||
|
|
||||||
|
/* ── Archivo (display) ── */
|
||||||
|
@font-face {
|
||||||
|
font-family: 'Archivo';
|
||||||
|
font-style: normal;
|
||||||
|
font-weight: 600;
|
||||||
|
font-display: swap;
|
||||||
|
src: url('/fonts/archivo-latin-600-normal.woff2') format('woff2');
|
||||||
|
}
|
||||||
|
@font-face {
|
||||||
|
font-family: 'Archivo';
|
||||||
|
font-style: normal;
|
||||||
|
font-weight: 700;
|
||||||
|
font-display: swap;
|
||||||
|
src: url('/fonts/archivo-latin-700-normal.woff2') format('woff2');
|
||||||
|
}
|
||||||
|
@font-face {
|
||||||
|
font-family: 'Archivo';
|
||||||
|
font-style: normal;
|
||||||
|
font-weight: 800;
|
||||||
|
font-display: swap;
|
||||||
|
src: url('/fonts/archivo-latin-800-normal.woff2') format('woff2');
|
||||||
|
}
|
||||||
|
@font-face {
|
||||||
|
font-family: 'Archivo';
|
||||||
|
font-style: normal;
|
||||||
|
font-weight: 900;
|
||||||
|
font-display: swap;
|
||||||
|
src: url('/fonts/archivo-latin-900-normal.woff2') format('woff2');
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ── Inter (corps) ── */
|
||||||
|
@font-face {
|
||||||
|
font-family: 'Inter';
|
||||||
|
font-style: normal;
|
||||||
|
font-weight: 400;
|
||||||
|
font-display: swap;
|
||||||
|
src: url('/fonts/inter-latin-400-normal.woff2') format('woff2');
|
||||||
|
}
|
||||||
|
@font-face {
|
||||||
|
font-family: 'Inter';
|
||||||
|
font-style: normal;
|
||||||
|
font-weight: 500;
|
||||||
|
font-display: swap;
|
||||||
|
src: url('/fonts/inter-latin-500-normal.woff2') format('woff2');
|
||||||
|
}
|
||||||
|
@font-face {
|
||||||
|
font-family: 'Inter';
|
||||||
|
font-style: normal;
|
||||||
|
font-weight: 600;
|
||||||
|
font-display: swap;
|
||||||
|
src: url('/fonts/inter-latin-600-normal.woff2') format('woff2');
|
||||||
|
}
|
||||||
|
@font-face {
|
||||||
|
font-family: 'Inter';
|
||||||
|
font-style: normal;
|
||||||
|
font-weight: 700;
|
||||||
|
font-display: swap;
|
||||||
|
src: url('/fonts/inter-latin-700-normal.woff2') format('woff2');
|
||||||
|
}
|
||||||
|
@font-face {
|
||||||
|
font-family: 'Inter';
|
||||||
|
font-style: normal;
|
||||||
|
font-weight: 800;
|
||||||
|
font-display: swap;
|
||||||
|
src: url('/fonts/inter-latin-800-normal.woff2') format('woff2');
|
||||||
|
}
|
||||||
|
Before Width: | Height: | Size: 91 KiB After Width: | Height: | Size: 91 KiB |
@@ -0,0 +1,17 @@
|
|||||||
|
/* ÉQUIPE */
|
||||||
|
Éditeur : ORGANISATION KA INTERNATIONALE
|
||||||
|
Site : https://o-k-i.net
|
||||||
|
Lieu : Basse-Terre, Guadeloupe (971)
|
||||||
|
|
||||||
|
/* EN MÉMOIRE */
|
||||||
|
Pierre Sainton (v.1924 - 2018) — fondateur du GONG
|
||||||
|
Jacques Nestor (1941 - 1967) — première victime de Mé 67
|
||||||
|
Et toutes les victimes de mai 1967.
|
||||||
|
|
||||||
|
/* SITE */
|
||||||
|
Objet : dossier documentaire sur le Groupe d'Organisation Nationale de la Guadeloupe (1963-1968)
|
||||||
|
Dernière refonte : 2026
|
||||||
|
Standards : HTML5, CSS3, ES2022
|
||||||
|
Composants : SvelteKit 2, Svelte 5 (runes), TypeScript
|
||||||
|
Doctrine : souveraineté numérique — zéro service tiers, tout auto-hébergé
|
||||||
|
Licence : AGPL-3.0
|
||||||
|
Before Width: | Height: | Size: 29 KiB After Width: | Height: | Size: 29 KiB |
@@ -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 |
|
Before Width: | Height: | Size: 2.1 KiB After Width: | Height: | Size: 2.1 KiB |
|
Before Width: | Height: | Size: 86 KiB After Width: | Height: | Size: 86 KiB |
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 1.8 KiB |
|
Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 2.6 KiB |
@@ -0,0 +1,17 @@
|
|||||||
|
{
|
||||||
|
"name": "GONG — Groupe d'Organisation Nationale de la Guadeloupe",
|
||||||
|
"short_name": "GONG",
|
||||||
|
"description": "Histoire du Groupe d'Organisation Nationale de la Guadeloupe (1963-1968) : indépendantisme, Mé 67, procès de 1968.",
|
||||||
|
"start_url": "/",
|
||||||
|
"scope": "/",
|
||||||
|
"display": "standalone",
|
||||||
|
"lang": "fr",
|
||||||
|
"dir": "ltr",
|
||||||
|
"background_color": "#0D0D0D",
|
||||||
|
"theme_color": "#0D0D0D",
|
||||||
|
"icons": [
|
||||||
|
{ "src": "/icon.png", "sizes": "192x192", "type": "image/png", "purpose": "any" },
|
||||||
|
{ "src": "/gong-logo.png", "sizes": "512x512", "type": "image/png", "purpose": "any" },
|
||||||
|
{ "src": "/gong-logo.png", "sizes": "512x512", "type": "image/png", "purpose": "maskable" }
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
// Enregistrement du service worker par fichier statique, chemin ABSOLU
|
||||||
|
// (évite le ./sw.js relatif cassé sur les routes imbriquées /me-67/, /militants/…).
|
||||||
|
if ('serviceWorker' in navigator) {
|
||||||
|
window.addEventListener('load', function () {
|
||||||
|
navigator.serviceWorker.register('/sw.js', { scope: '/' }).catch(function () {
|
||||||
|
/* PWA optionnelle — échec silencieux */
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
@@ -1,3 +1,5 @@
|
|||||||
User-agent: *
|
User-agent: *
|
||||||
Disallow:
|
Allow: /
|
||||||
|
Disallow: /admin/
|
||||||
|
|
||||||
Sitemap: https://gong.gp/sitemap.xml
|
Sitemap: https://gong.gp/sitemap.xml
|
||||||