Contribuer¶
Toutes les ressources de l'annuaire proviennent d'un seul fichier : docs/data/resources.json.
Sans compétences techniques¶
Utilisez les formulaires GitHub :
Ajouter une ressource (Pull Request)¶
Ajoutez une entrée dans le tableau resources :
{
"id": "mon-outil",
"name": "Mon outil",
"url": "https://exemple.org/",
"category": "communication",
"tags": ["messagerie", "open-source"],
"description": {
"fr": "Description courte en français.",
"en": "Short description in English (optional)."
},
"check": { "date": "2026-10-28", "result": "confirmed", "by": "volunteer" }
}
Règles :
idettagsen minuscules, sans accents, séparés par des tirets (hors-ligne).categorydoit exister dans l'objetcategoriesdu même fichier.urlenhttps://.description.frest obligatoire ;description.enest facultative (repli sur le français).check: la dernière vérification du lien et des informations (voir « Vérifier une information » ci-dessous).date(AAAA-MM-JJ) : quand vous avez vérifié. Au-delà de 12 mois, la maintenance hebdomadaire signale la ressource.result:confirmed(lien joignable, informations exactes) ouunconfirmed(impossible à confirmer : badge « Non confirmé » sur la carte, pas de numéro de téléphone autorisé).note: obligatoire siunconfirmed, pour expliquer ce qui n'a pas pu être confirmé.by: qui a vérifié (ai,volunteer,lawyer,medicalouhistorian).
urlest aussi la source principale de la description. Si la description affirme quelque chose qui vient d'ailleurs, ajoutezsources:[{ "title": "…", "url": "https://…" }].- Dans les guides, chaque information factuelle ou juridique porte une note de bas de page (
[^id]). Les sources sont centralisées dansdocs/data/sources.json(titre FR/EN, URL, date de vérification) : ajoutez-y la source une seule fois, puis citez-la par son identifiant dans n'importe quelle page. - Pour mentionner une ressource de l'annuaire dans un guide, utilisez
{{ res("id") }}(ou{{ res("id", "texte du lien") }}) au lieu de coller son URL. phone(facultatif) : uniquement un numéro public officiel (ligne d'urgence, permanence).
Vérifier une information¶
Le contenu a d'abord été recherché et sourcé avec l'aide d'une IA. Chaque entrée des référentiels (resources.json, sources.json, history.json, victimes.json) porte un indicateur check qui dit qui l'a vérifiée, du moins au plus fiable :
by |
Affiché | Qui |
|---|---|---|
ai |
Sourcé par IA, à vérifier par un humain | Valeur de départ : lien et contenu trouvés par une IA, aucune relecture humaine |
volunteer |
Vérifié par un·e bénévole | Une personne a ouvert la source et confirmé l'information |
lawyer |
Vérifié par un·e avocat·e | Information juridique confirmée par un·e avocat·e |
medical |
Vérifié par un·e soignant·e | Information médicale confirmée par un·e professionnel·le de santé |
historian |
Vérifié par un·e historien·ne | Fait historique (date, bilan, contexte) confirmé par un·e historien·ne |
Pour vérifier : ouvrez la source, comparez avec ce qui est écrit, corrigez si besoin, puis mettez à jour check (date du jour, result, by). Pas de compétence technique ? Signalez votre vérification dans une issue.
Traduire et faire relire¶
- Chaque page anglaise (
page.en.md) indique danssource_commitle commit de la page française qu'elle traduit. Si la page française change ensuite, la traduction est signalée comme en retard (CI, rapport hebdomadaire et avertissement sur la page). Après avoir mis à jour une traduction, remplacezsource_commitpar le dernier commit de la page française (git log -1 --format=%H -- docs/…/page.md). - Les pages juridiques ou médicales portent
review: juridiqueoureview: medicaletreview_status: pending. Après relecture par un·e professionnel·le, passez àreview_status: reviewedet ajoutezreviewed_on: AAAA-MM-JJ: le badge « pas encore relu » disparaît.
Améliorer la recherche¶
Deux blocs du même fichier règlent la recherche de l'annuaire :
situations: les raccourcis affichés au-dessus de la recherche (« Je suis en garde à vue »…). Une ressource apparaît si elle a au moins un destagsou une descategorieslistés.synonyms: mots que les gens tapent, associés aux tags ou mots à chercher aussi ("gav": ["garde-a-vue"]). Clés en minuscules et sans accents.
Le tag essentiel alimente le raccourci « C'est ma première manif » : réservez-le à une poignée d'outils et de guides indispensables.
Si une recherche courante ne donne rien, ajoutez un synonyme plutôt qu'un tag de plus.
Ajouter un parcours « Je suis… et je veux… »¶
Les parcours sont dans docs/data/parcours.json : chaque profil (« Je suis… ») a des mots-clés pour la saisie et des besoins (« … et je veux… »). Chaque besoin liste des résultats :
{ "resource": "id" }: une ressource de l'annuaire ;{ "guide": "slug", "anchor": { "fr": "…", "en": "…" }, "label": { … } }: une section de guide ;{ "page": "sos" | "carte" | "comprendre" | "histoire" | "repressions", … }ou{ "directory": { "situation": "…" }, … }.
Ajoutez "urgent": true pour afficher le lien vers la page SOS. npm run validate:data vérifie que chaque ressource, situation et ancre existe, en français et en anglais.
Données ouvertes (Open Data)¶
Toutes les données du site sont publiques et disponibles au format JSON dans docs/data/ (schémas de validation dans schemas/) :
resources.json— annuaire des outils, associations, médias et numéros d'urgence ;parcours.json— arbre de décision « Je suis… et je veux… » ;history.json— repères historiques, conquêtes sociales et répressions/démentis documentés ;victimes.json— recensements et frise des personnes blessées ou tuées en manifestation ;sources.json— registre centralisé des sources citées sur le site.
Vérifier¶
npm run validate:data # valide le référentiel
npm run readme # régénère la liste du README
npm run check # format, lint, orthographe, référentiel
npm test # build MkDocs strict
Puis ouvrez une Pull Request sur le dépôt GitHub.