La correction Grammalecte pour vos fichiers Markdown

Grammalecte est un correcteur grammatical open source pour le traitement de texte LibreOffice et pour le navigateur web Firefox.

Voici les nouveautés de la dernière version :

  • Le moteur interne de Grammalecte est dorénavant indépendant. Plus besoin de Hunspell ni de LibreOffice. La syntaxe d’écriture des règles de contrôle a pas mal changé (la gestion de la délimitation des mots et de la casse est facilitée).
  • Il y a un désambiguïsateur (il est encore peu utilisé, mais ça va aller en s’améliorant).
  • D’un moteur multi-passes, on est revenu à un moteur bi-passes (une pour le paragraphe, une pour les phrases), qui permet de gérer le flot des règles avec plus de finesse. Chaque règle de contrôle est dorénavant multi-actions, elle peut générer plusieurs erreurs, modifier le texte et faire de la désambiguïsation.
  • Il y a dorénavant des tests unitaires (pas complets, mais ça va aller en s’améliorant).
  • Le correcteur a été porté en JavaScript pour Firefox, avec la syntaxe ES6 (non portable, car il utilise des spécificités à Firefox).
  • Le moteur de suggestion a été amélioré. (Du travaille => travail).
  • De nouvelles règles ont été ajoutées.
  • Pas mal de bugs corrigés.
  • Moins de faux positifs.
  • Le correcteur est utilisable en ligne de commande (cli.py).

Ce qui m’intéresse, c’est la dernière ligne. La puissance de Grammalecte est disponible via la ligne de commande \o/.

Pourquoi ? Me direz-vous. Simplement car je me sers du format Markdown pour écrire articles, nouvelles, romans, …etc via l’éditeur de textes Vim.

Le script magique est situé dans un endroit un peu loin de votre $PATH. Un alias plus tard et tout s’arrange :

alias gramma='python3.4 ~/.config/libreoffice/4/user/uno_packages/cache/uno_packages/lu95180ptkdca.tmp_/Grammalecte-fr-v0.5.6.oxt/pythonpath/cli.py'

L’utilisation est basique :

$ cli.py -h
usage: cli.py [-h] [-f FILE] [-ff FILE_TO_FILE] [-j]
              [-w {40,50,60,70,80,90,100,110,120,130,140,150,160,170,180,190,200}]
              [-tf] [-tfo]

optional arguments:
  -h, --help            show this help message and exit
  -f FILE, --file FILE  parse file (UTF-8 required!) [on Windows, -f is
                        similar to -ff]
  -ff FILE_TO_FILE, --file_to_file FILE_TO_FILE
                        parse file (UTF-8 required!) and create a result file
                        (*.res.txt)
  -j, --json            generate list of errors in JSON
  -w {40,50,60,70,80,90,100,110,120,130,140,150,160,170,180,190,200}, --width {40,50,60,70,80,90,100,110,120,130,140,150,160,170,180,190,200}
                        width in characters (40 < width < 200; default: 100)
  -tf, --textformatter  auto-format text according to typographical rules
  -tfo, --textformatteronly
                        auto-format text and disable grammar checking (only
                        with option 'file' or 'file_to_file')

Je ne me suis pas encore amusé avec toutes les options. J’utilise :

gramma -ff 01_aelsir.md

Cela produit le fichier 01_aelsir.res.txt que j’ouvre à côté de l’original afin de repérer mes horreurs. J’illustre avec une ‘tite capture d’écran du premier jet bien dégueux du 1er chapitre d’Aëlsir :

grammalecte

Certes, le confort d’utilisation via l’interface de LibreOffice n’est pas au programme. Mais, c’est léger et ça fait le job. De plus, connaissant la communauté, un plugin vim a toutes ses chances d’éclore un jour ;).