Molveau
Tous les guides

Skills pour agents8 min de lecture

Skills de typographie française : Antidote, JoliTypo

Les skills, bibliothèques et correcteurs qui gèrent les espaces insécables, les guillemets et les apostrophes du français, et le skill que j’utilise.

Sur un téléphone, un prix se coupe en deux : 2 au bout d’une ligne, 450 $ au début de la suivante. Ailleurs, un point d’interrogation se retrouve tout seul en début de ligne. Dans les deux cas, on a mis une espace ordinaire là où le français demande une espace insécable, et les lecteurs québécois s’en aperçoivent. Les agents de code tapent une espace ordinaire par défaut : il faut donc vérifier le résultat plutôt que compter sur leur mémoire. J’ai trouvé un seul autre skill d’agent qui lance un script, et plusieurs bons correcteurs et bonnes bibliothèques. Aucun de ceux que j’ai testés ne sait à la fois lire un fichier de messages JSON sans toucher à ses clés et faire échouer l’intégration continue sur l’espacement français, alors que c’est exactement ce qu’il faut à un site bilingue. J’utilise donc french-typography, de molveau/skills. Si vos textes français sont dans des documents Word ou de longs textes suivis, Antidote ou Grammalecte vous rendront plus de services, et chaque section plus bas dit dans quels cas.

Les outils en lice

Outil Auteur Licence Sa force Ses limites
typography Gleb Kalinin MIT Un skill d’agent avec un script pour du texte en quatre langues, et --check pour l’intégration continue Ignore les règles du Québec et malmène le JSON : dans mon test, il a mis des guillemets autour des clés
LanguageTool LanguageTool LGPL-2.1 La grammaire et l’orthographe, avec une règle stricte pour l’espacement français Ne corrige pas les fichiers ; la règle stricte est désactivée par défaut, et il faut un serveur Java ou l’API
Grammalecte Projet Grammalecte GPL-3.0 Un correcteur grammatical français gratuit qui vérifie aussi les espaces typographiques, dans LibreOffice, Firefox ou un terminal Ne comprend ni le JSON ni le JSX : il lit du texte brut
JoliTypo JoliCode MIT Corriger la typographie française dans du HTML, depuis PHP, Symfony ou Twig Aucun mode de vérification ; sa locale fr_CA suit l’espacement anglais
Richtypo Artem Sapegin MIT Appliquer les règles françaises à du Markdown ou du HTML au moment du build, en Node Ni mode de vérification ni mode québécois
Antidote Druide informatique Commercial La relecture par la personne qui rédige, avec un réglage d’espace pour chaque signe Rien qu’un dépôt ou une intégration continue puisse lancer
french-typography Molveau Studio MIT Vérifier et corriger le JSON, le Markdown et le MDX, à la québécoise ou à la française, avec un garde-fou en intégration continue Ni grammaire ni orthographe, et aucun autre format que JSON, Markdown et MDX

Chacun, sans parti pris

typography, de Gleb Kalinin

C’est le seul autre skill d’agent que j’ai trouvé qui lance un script au lieu de demander au modèle de se souvenir des règles. Il s’appuie sur la bibliothèque typograf, à laquelle il ajoute ses propres règles pour l’allemand et le français, couvre le russe, l’anglais, l’allemand et le français, et offre --check avec un code de sortie, --diff et --in-place. En français, il suit l’usage de France, avec des espaces fines : une espace fine insécable avant : comme avant ; ! ?, alors que l’OQLF et l’Imprimerie nationale demandent toutes deux une espace insécable pleine avant le deux-points. Dans mon test, il a aussi supprimé l’espace avant %, laissé des espaces ordinaires entre les milliers et changé - en tiret cadratin. Lancé sur un fichier .json, il a entouré les clés de guillemets et brisé le fichier ; son propre SKILL.md recommande d’ailleurs de lui passer les chaînes i18n à la main. Installez-le pour du Markdown en plusieurs langues, si l’usage de France vous convient.

J’ai aussi trouvé quelques skills de typographie française qui se résument à des instructions. Ils décrivent les règles sans rien vérifier, et le résultat dépend encore du modèle, qui doit placer chaque espace sans se tromper.

LanguageTool

LanguageTool est un correcteur grammatical open source qui a fait ses preuves. Sa règle française FRENCH_WHITESPACE signale l’absence d’espace avant ? ! ; :, mais se contente d’une espace ordinaire ; la règle plus stricte, FRENCH_WHITESPACE_STRICT, exige une espace insécable ou fine insécable, mais elle est classée comme pointilleuse et désactivée par défaut. Il signale les problèmes sans réécrire les fichiers, et il tourne comme serveur Java ou par l’API hébergée. Prenez-le si vous voulez aussi corriger la grammaire et l’orthographe de longs textes en français, et activez la règle stricte.

Grammalecte

Grammalecte est un correcteur grammatical français gratuit qui vérifie, entre autres choses typographiques, les espaces insécables, les apostrophes et les guillemets. Il fonctionne dans LibreOffice, Firefox et Thunderbird, comme serveur, et en ligne de commande avec une sortie JSON. Comme il lit du texte brut, il faut d’abord aplatir un fichier de messages. Prenez-le quand les rédacteurs veulent un correcteur gratuit dans leur éditeur, avant que le texte arrive dans le dépôt.

JoliTypo, de JoliCode

JoliTypo corrige la typographie de HTML depuis PHP, avec des intégrations Symfony et Twig et un PHAR pour la ligne de commande. Pour fr_FR, fr_BE et fr_CH, son correcteur de ponctuation met une espace insécable avant : et une espace fine insécable avant ; ! ?, et il s’occupe des guillemets. Son README précise que la locale fr_CA ne met aucune espace avant la ponctuation et suit l’usage anglais, ce qui est faux au Québec pour le deux-points : utilisez plutôt fr_FR. Installez-le si votre site génère son HTML avec un CMS en PHP.

Richtypo, d’Artem Sapegin

Richtypo est une bibliothèque Node sans dépendance, avec des règles pour le français : une espace fine insécable avant ? ! : ; et à l’intérieur des guillemets, ajoutée même quand personne n’a tapé d’espace, et les guillemets droits doubles changés en guillemets français. Son jeu de règles français par défaut change aussi certains traits d’union en tirets cadratins, que j’évite dans les textes. Il ne fait que corriger, sans mode de vérification ni code de sortie. Prenez-le pour appliquer la typographie au moment de générer votre Markdown ou votre HTML, dans un projet qui suit l’usage de France.

Antidote, de Druide informatique

Antidote est le correcteur que beaucoup de rédacteurs québécois paient déjà. Selon le guide de Druide, son volet Typographie corrige le type d’espace qu’exige chaque signe de ponctuation, et ses réglages d’espaces permettent de choisir, pour chaque contexte, une espace sécable, insécable, fine ou aucune espace, y compris autour de % et des symboles monétaires. Il travaille sur ce qu’une personne est en train d’écrire, pas sur les fichiers d’un dépôt. Gardez-le pour la rédaction et la relecture, et ajoutez une vérification en intégration continue pour ce qui est mis en ligne.

Ce que french-typography ajoute

  • Les caractères exacts. Un tableau des cas, avec le caractère qu’il faut pour chacun : U+00A0 avant : ; ! ? et à l’intérieur des « », U+202F entre les groupes de milliers, U+00A0 entre un nombre et $ ou %, l’apostrophe courbe U+2019, et aucun tiret cadratin dans les textes.
  • Les deux usages, sources à l’appui. Le tableau de l’OQLF pour le Québec, qui permet de ne mettre aucune espace ou une espace fine avant ; ! ?, l’espace fine de l’Imprimerie nationale pour la France, et une règle maison clairement annoncée : une espace insécable pleine avant les quatre signes, parce qu’elle s’affiche de la même façon dans toutes les polices. Le guide de rédaction d’un client peut changer la règle à un seul endroit.
  • Un script qui connaît les fichiers de messages. fr-typo.mjs lit le JSON, le Markdown et le MDX. Dans le JSON, il ne modifie que les valeurs, jamais les clés. Dans le Markdown, il saute les blocs de code, le code indenté et le code en ligne. Il ne touche pas aux URL, aux heures comme 10:30, aux variables ICU comme {count} ni aux numéros de téléphone.
  • Vérifier, puis corriger. --check se termine avec le code 1 s’il trouve un problème et affiche du JSON avec --json, ce qui permet de faire échouer l’intégration continue. --fix normalise les espaces qui existent déjà sans jamais en inventer, et le relancer ne change plus rien. Une espace manquante, comme dans Prix: 5, est signalée pour qu’une personne la corrige.
  • Une recette de garde-fou pour l’intégration continue. Un test pour next-intl ou i18next qui parcourt les messages français, échoue sur toute chaîne que la règle modifierait, et s’étend un espace de noms à la fois, pour que les anciens textes ne bloquent pas le premier commit.
  • Des limites assumées. Ni grammaire ni orthographe, aucun fichier .po, HTML ou JSX, et pas de mode québécois strict prêt à utiliser : pour passer à aucune espace avant ; ! ?, il faut modifier le script.

Installer

Le skill seul, avec la CLI skills :

npx skills add molveau/skills -s french-typography

Le lot Québec (french-typography et loi-25-website) :

npx skills add molveau/skills -s french-typography -s loi-25-website

Dans Claude Code, les onze skills dans un seul plugin :

/plugin marketplace add molveau/skills
/plugin install molveau-skills@molveau

Tous les skills et tous les lots sont sur la page des skills, et le code source est sur github.com/molveau/skills. À lire aussi : un site bilingue et la Loi 96 et le comparatif des skills Loi 25.

Liste de vérification

  • Le projet a choisi un seul usage avant ; ! ? (règle maison, Québec strict ou France) et l’applique partout.
  • Dans les textes français, chaque : est précédé de U+00A0.
  • Les prix s’écrivent 1 900 $, avec U+202F dans le nombre et U+00A0 avant le symbole.
  • Les apostrophes sont courbes et les textes ne contiennent aucun tiret cadratin.
  • fr-typo.mjs --check tourne sur les fichiers français en intégration continue et fait échouer le build au moindre problème.
  • Les rédacteurs relisent dans leur propre outil ; la vérification en intégration continue couvre ce qui est mis en ligne.

Stanislas Molveau

Fondateur, Molveau Studio

Je conçois et développe des produits web et mobiles, et j'écris ces guides à partir de démontages d'apps réelles plutôt que de théorie.

LinkedInVoir mes projets