Разработка будет продолжена в репозитории https://github.com/343dev/languagetool-node.
Консольная утилита для проверки грамматики и орфографии с помощью локального сервиса LanguageTool.
Порой репозитории с проектами содержат большое количество файлов с документацией. Однажды мы решили начать проверять грамматику и орфографию в таких файлах. Но отправлять наши доки на неизвестные сервера всем известных сервисов не очень хотелось.
Потому мы решили сделать свой консольный инструмент поверх LanguageTool.
LanguageTool для работы нужна Java, потому сперва нужно пойти на java.com и скачать её.
А затем установить сам пакет:
npm i -g @funboxteam/languagetool-node
Лучше всего устанавливать его глобально, потому что в процессе скачается архив с LanguageTool (≈250 МБ) и распакуется в директорию с пакетом.
Утилита умеет проверять переданные файлы или текст из STDIN.
Проверить файлы:
languagetool-node README.md CHANGELOG.md
Проверить файлы с конкретными расширениями в указанных директориях:
languagetool-node ~/project1/**/*.txt ~/project2/*.md
Проверить текст из STDIN:
echo "Вставьте ваш текст сюда .. или проверьте этот текстт. Релиз LanguageTool 4.0 состоялся в четверг 29 декабря 2017 года." | languagetool-node
Пример вывода
$ echo "Вставьте ваш текст сюда .. или проверьте этот текстт. Релиз LanguageTool 4.0 состоялся в четверг 29 декабря 2017 года." | languagetool-node
<stdin>
1:25 warning Две точки подряд typographical spell
Context: «Вставьте ваш текст сюда .. или проверьте этот текстт. Релиз Langua...»
Possible replacements: «.»
1:28 warning Это предложение не начинается с заглавной буквы typographical spell
Context: «Вставьте ваш текст сюда .. или проверьте этот текстт. Релиз LanguageTo...»
Possible replacements: «Или»
1:47 warning Найдена орфографическая ошибка misspelling spell
Context: «...те ваш текст сюда .. или проверьте этот текстт. Релиз LanguageTool 4.0 состоялся в чет...»
Possible replacements: «текст, текста, тексте, тексту, тексты, текс тт, текст т»
1:90 warning Днём недели 29 декабря 2017 является не четверг, а пятница. uncategorized spell
Context: «...стт. Релиз LanguageTool 4.0 состоялся в четверг 29 декабря 2017 года. »
⚠ 4 warnings
Если нужно, можно перезаписать настройки по умолчанию, создав файл ~/.languagetoolrc.js
.
Его содержимое будет слито со стандартным конфигом.
Пример внешнего конфига:
module.exports = {
// белый список (поддерживает регулярные выражения)
ignore: [
'фронт(е|э)нд'
],
};
Картинку для проекта нарисовали Сергей Мыльников и Игорь Гарибальди.