Au printemps dernier avait été lancé une campagne de financement pour grammalecte, un correcteur grammatical et typographique dont la teneur est expliquée notamment sur linuxfr. J'ai cherché à voir l'évolution du projet puisque la campagne s'est terminée avec succès. J'ai pu trouver l'état d'avancement sur le forum.
Malheureusement, il semble que l'auteur n'utilise pas de forge. D'après mes recherches, la dernière beta est la 0.5.0b4, sous forme d'extension pour libreoffice. L'ordre prévu par la campagne fait que le développeur doit se consacrer en premier à l'extension firefox, dont une version est prévue avec la sortie de firefox 44, pour des questions de version de javascript.
Néanmoins, en ouvrant l'extension pour libreoffice, on a accès au parser écrit en python. L'extension étant installée pour moi, je retrouve ce fichier dans
python $HOME/.config/libreoffice/4/user/uno_packages/cache/uno_packages/luq78j49.tmp_/Grammalecte-v0.5.0b4-1.oxt/pythonpath/parser.py
J'en ai fait un alias qui s'appelle grammalecte. Trois commandes sont possibles :
- grammalecte : permet de tester le texte que vous entrez à la main.
- grammalecte -f filename : pour analyser un fichier texte (UTF-8 requis).
- grammalecte -ff filename : pour analyser un fichier texte (UTF-8 requis) et produire un fichier résultat.
Le résultat est plutôt bon, on peut clairement aller chercher les erreurs dans un fichiers markdown ou latex. Il y aura cependant des erreurs soulevées pour les balises ainsi que, dans mon cas, les apostrophes typographiques puisque je n'utilise que des apostrophes droites. Je n'ai pas vu de moyen pour ne pas faire apparaitre certaines erreurs. Celle des apostrophes est particulièrement handicapante dans mon cas, c'est à dire la différence entre l'apostrophe et l’apostrophe.
Mais c'est là que vient l'option -tf, qui corrige la typographie avant de regarder la grammaire. Ainsi, il suffit de faire
grammalecte -tf -f filename
En somme, il y a déjà de quoi avoir un outil fonctionnel même si une version finale n'est pas encore sortie.