db5a997e50
Architecture décidée et documentée dans ADR.md : SvelteKit natif en fichiers plats plutôt que Strapi (55 outils, données statiques, souveraineté et budget performance prioritaires — doctrine §1.2, §4.4). - frontend/ : SvelteKit 2 + Svelte 5 (runes), adapter-static, 58 pages prérendues, CSS natif en @layer (reset→tokens→base→layouts→components), tokens oklch(), container queries, typo fluide clamp(), 2 polices WOFF2 auto-hébergées (Atkinson Hyperlegible, Fraunces), zéro CDN tiers - i18n FR/gcf typé (clé manquante = erreur de build), bascule Kréyòl persistée en localStorage, micro-textes créoles (« Ou pa manké ayen ») - Composants : ToolCard, DifficultyBadge (forme+texte+couleur, jamais la couleur seule), CategoryNav (≤5 entrées, divulgation progressive), SearchBar (raccourci /), LanguageSwitcher, EndMarker - content/ : 55 fiches migrées depuis src/ (script frontend/scripts/ migrate-tools.mjs, idempotent), licences SPDX reprises de directory.json - docs/ : DESIGN_SYSTEM.md et CONTENT_GUIDE.md Budgets vérifiés : JS 41 Ko gzip, CSS 2,9 Ko gzip, svelte-check 0 erreur. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
3.0 KiB
3.0 KiB
Guide de rédaction — fiches d'outils FR/créole
Format d'une fiche (content/outils/<slug>.md)
---
name: "Signal"
slug: "signal"
category: "messagerie" # slug d'une catégorie de content/categories.json
difficulty: "beginner" # beginner | intermediate | advanced
license: "AGPL-3.0" # identifiant SPDX exact (spdx.org/licenses)
url: "https://signal.org"
color: "#3a76f0" # couleur du monogramme (décorative)
monogram: "S"
tags: ["Remplace WhatsApp","🇺🇸 · open-source"]
lang: "fr"
---
## what
À quoi sert l'outil, en deux phrases maximum.
## why
Pourquoi il compte pour la souveraineté numérique.
## who
Pour qui, et à quel moment du parcours.
## install
<ol><li>Étapes concrètes, numérotées.</li></ol>
Les valeurs du frontmatter sont encodées en JSON (guillemets doubles). Le corps accepte Markdown et HTML simple ; il est rendu au build, rien n'est interprété côté client. Le build échoue si une fiche est invalide — c'est le contrat de validation (ADR-001).
Ton éditorial
- Militant mais chaleureux, ancré Caraïbe. Pas de langage corporate, pas de peur gratuite : on explique le geste, on donne le pouvoir d'agir.
- Tutoiement. Phrases courtes. Le premier mot de chaque section porte le sens (motif en F, doctrine §1.1).
whatdit le service rendu,whydit l'enjeu politique/technique,whodonne la porte d'entrée (« commence ici si… »),installest actionnable sans autre lecture.- Exemples et localisation ancrés territoire — jamais de Lorem ipsum hexagonal (doctrine §4.2).
Créole guadeloupéen (gcf)
- Les micro-textes de l'interface (boutons, filtres, états vides, marqueur
de fin) vivent dans
frontend/src/lib/i18n/gcf.json. C'est la couche à plus fort impact affectif pour le plus faible coût (doctrine §4.2) — elle est traduite en premier. - ⚠️ Relecture par un locuteur natif requise : les chaînes gcf actuelles sont un premier jet à valider avant mise en production. La graphie de référence à trancher (GEREC-F ou autre) doit être notée ici une fois choisie.
- La traduction intégrale des fiches est un chantier éditorial séparé :
le format prévu est un fichier jumeau
content/outils/gcf/<slug>.mdaveclang: "gcf"(le chargeur l'ignorera tant que la locale de contenu n'est pas activée). - Termes fixés : « zouti » (outil), « Ou pa manké ayen » (fin de liste), « Chwazi zouti ou » (héros), niveaux « Débitan / Entèmédia / Avansé ».
Ajouter une catégorie
Ajouter une entrée à content/categories.json (slug, title, order,
part). La navigation n'affiche que 4 catégories avant la divulgation
progressive (Hick-Hyman, doctrine §1.3) : l'ordre order décide lesquelles.
Vérifications avant merge
licenseest un identifiant SPDX validedifficultyreflète l'expérience réelle d'installation (pas le prestige)- Chaque section respecte sa question (what/why/who/install)
pnpm buildpasse (validation du frontmatter incluse)