2026-07-21 08:00:16 -04:00
|
|
|
# o-k-i.net
|
2025-11-05 17:32:17 +04:00
|
|
|
|
2026-07-21 08:00:16 -04:00
|
|
|
Site web officiel de **ORGANISATION KA INTERNATIONALE (OKI)** â « Le numĂ©rique au service de vos luttes ».
|
2025-11-05 17:32:17 +04:00
|
|
|
|
2026-07-21 08:00:16 -04:00
|
|
|
Version 3, reconstruite avec **SvelteKit + Svelte 5 (runes) + TypeScript**, entiÚrement pré-rendue en statique (`adapter-static`). L'ancienne version Eleventy est conservée sur la branche `main`.
|
2025-11-05 20:46:51 +04:00
|
|
|
|
2026-07-21 08:00:16 -04:00
|
|
|
## Ă propos
|
2025-11-05 20:46:51 +04:00
|
|
|
|
2026-07-21 08:00:16 -04:00
|
|
|
ORGANISATION KA INTERNATIONALE (OKI) construit un internet diffĂ©rent : un espace oĂč nos langues ont leur place, oĂč nos donnĂ©es nous appartiennent vraiment, et oĂč nos communautĂ©s se connectent sur des plateformes qu'on contrĂŽle collectivement. Applis web sur mesure Ă tarifs solidaires pour associations, collectifs et organisations militantes.
|
2025-11-05 17:32:17 +04:00
|
|
|
|
|
|
|
|
## Technologies
|
|
|
|
|
|
2026-07-21 08:00:16 -04:00
|
|
|
- **SvelteKit 2 / Svelte 5** â composants en runes, TypeScript strict
|
|
|
|
|
- **adapter-static** â prĂ©-rendu intĂ©gral, aucun serveur Node requis
|
|
|
|
|
- **vite-imagetools** â images AVIF/WebP responsives gĂ©nĂ©rĂ©es au build
|
|
|
|
|
- **vite-plugin-pwa** â service worker + shell hors-ligne
|
|
|
|
|
- **CSS vanilla** â tokens de la charte OKI (`src/lib/styles/oki-tokens.css`), aucun framework
|
|
|
|
|
- **Polices self-hĂ©bergĂ©es** â Archivo (600-900) et Inter (400-800) en woff2 (`static/fonts/`)
|
|
|
|
|
- **ZĂ©ro service tiers** â aucune requĂȘte vers un CDN, Google Fonts ou autre domaine externe
|
2025-11-05 17:32:17 +04:00
|
|
|
|
2026-07-21 08:00:16 -04:00
|
|
|
## Développement
|
2025-11-05 17:32:17 +04:00
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
npm install
|
2026-07-21 08:00:16 -04:00
|
|
|
npm run dev # serveur de développement
|
|
|
|
|
npm run build # build de production â build/
|
|
|
|
|
npm run preview # prévisualisation du build
|
|
|
|
|
npm run check # svelte-check (types + a11y)
|
2025-11-05 17:32:17 +04:00
|
|
|
```
|
|
|
|
|
|
2026-07-21 08:00:16 -04:00
|
|
|
## Structure
|
2025-11-05 17:32:17 +04:00
|
|
|
|
|
|
|
|
```
|
2026-07-21 08:00:16 -04:00
|
|
|
src/
|
|
|
|
|
app.html # coquille HTML (thĂšme anti-FOUC, fonts, manifest)
|
|
|
|
|
hooks.server.ts # attribut lang fr/en selon la route
|
|
|
|
|
lib/
|
|
|
|
|
styles/ # oki-tokens.css (charte), base.css (primitives)
|
|
|
|
|
i18n/ # bundles FR/EN (contenu éditorial, repris de la V2)
|
|
|
|
|
assets/images/ # sources images (optimisées au build)
|
|
|
|
|
components/ # Seo, Nav, Footer, sections/, motion/, icons/
|
|
|
|
|
motion/tokens.ts # gate reduced-motion, stagger syncopé gwoka
|
|
|
|
|
routes/
|
|
|
|
|
+layout.svelte # skip-link, ScrollProgressBar, Nav, Footer, View Transitions
|
|
|
|
|
+page.svelte # accueil FR en/+page.svelte # accueil EN
|
|
|
|
|
dons/ # dons FR en/donate/ # dons EN
|
|
|
|
|
presse/ # presse FR en/press/ # presse EN
|
|
|
|
|
mentions-legales/ # légal FR en/legal-notice/ # légal EN
|
|
|
|
|
offline/ # page hors-ligne (cible navigateFallback du SW)
|
|
|
|
|
+error.svelte # 404/erreurs designée (microcopy KA)
|
|
|
|
|
static/
|
2026-08-09 09:07:53 +04:00
|
|
|
fonts/ images/ assets/press/ theme.js lang-redirect.js
|
2026-07-21 08:00:16 -04:00
|
|
|
manifest.webmanifest 404.html robots.txt sitemap.xml _headers .htaccess
|
2025-11-05 17:32:17 +04:00
|
|
|
```
|
|
|
|
|
|
2026-07-21 08:00:16 -04:00
|
|
|
## Internationalisation
|
2025-11-05 17:32:17 +04:00
|
|
|
|
2026-07-21 08:00:16 -04:00
|
|
|
FR par dĂ©faut, EN sous `/en/`. Les bundles JSON de `src/lib/i18n/{fr,en}/` alimentent les composants via `getBundle(locale)`. Les correspondances d'URLs FRâEN (hreflang, bascule de langue) sont dans `alternatePath()` (`src/lib/i18n/index.ts`).
|
2025-11-05 17:32:17 +04:00
|
|
|
|
2026-07-21 08:00:16 -04:00
|
|
|
## Sécurité & déploiement
|
2026-07-09 03:37:51 +04:00
|
|
|
|
2026-07-21 08:00:16 -04:00
|
|
|
Headers de sécurité (CSP stricte `default-src 'self'`, HSTS, `X-Frame-Options: DENY`, `nosniff`, `Referrer-Policy`, `Permissions-Policy`) livrés en deux formats : `static/.htaccess` (Apache/o2switch) et `static/_headers` (Cloudflare Pages). Voir **DEPLOY.md**.
|
2026-07-09 03:37:51 +04:00
|
|
|
|
2026-07-21 08:41:55 -04:00
|
|
|
## Charte et documents de référence
|
2025-11-05 17:32:17 +04:00
|
|
|
|
2026-07-21 12:45:48 -04:00
|
|
|
Ces documents de travail sont **locaux** (non versionnés, voir `.gitignore`) :
|
|
|
|
|
|
2026-07-21 08:41:55 -04:00
|
|
|
- **`charte-oki-design-system.md`** â marque canonique : couleurs, typographie, motion (cadences gwoka), iconographie SVG (zĂ©ro emoji en interface), voix. Prime pour tout ce qui est marque.
|
|
|
|
|
- **`recette-sveltekit-playbook-agent.md`** â mĂ©thode technique : principes, budgets performance, rĂšgles motion, DoD (sa version longue : `recette-sveltekit-15-sites-awwwards.md`).
|
|
|
|
|
- **`AGENTS.md`** â point d'entrĂ©e pour les agents de code : impose l'usage de l'outillage Svelte MCP.
|
|
|
|
|
- **`svelte-5_code_writer.md`** â commandes `@sveltejs/mcp` (doc Svelte 5 + `svelte-autofixer`, Ă passer sur tout composant modifiĂ©).
|
|
|
|
|
- **`svelte_core_bestpractices.md`** â conventions runes Svelte 5 ($state/$derived/$effect, events, snippets, styles).
|
2026-07-21 12:45:48 -04:00
|
|
|
- **`DEPLOY.md`** â dĂ©ploiement o2switch (Apache) et Cloudflare Pages (versionnĂ©, lui).
|
2026-07-21 08:41:55 -04:00
|
|
|
|
|
|
|
|
ThÚme sombre par défaut, thÚme clair en opt-in persisté (`localStorage['oki-theme']`).
|
2025-11-05 17:32:17 +04:00
|
|
|
|
|
|
|
|
## Licence
|
|
|
|
|
|
2026-07-21 08:00:16 -04:00
|
|
|
AGPL-3.0 â voir `LICENSE`.
|