cspell
На очереди проверка орфографии. Это очень важный момент, потому что безграмотная документация не вызывает доверия. На самом деле это касается вообще всего вокруг, если вы делаете неряшливый продукт: допускаете ошибки или опечатки, есть какие-то баги верстки, используете разную стилистику оформления картинок и прочее-прочее, то и отношение к такому продукту будет соответствующее. Относитесь к качеству выпускаемого вами продукта очень серьезно.
Писать код будем в рамках созданной ранее задачи:
Для проверки орфографии будем использовать линтер cspell.
Напишем промт:
К markdownlint добавь еще и проверку орфографии через cspell: https://github.com/streetsidesoftware/cspell-cli
Подключи русский и английский словари. Добавь словарь неизвестных (custom) слов. Разреши его ручное наполнение. Проверять орфографию будем только в маркдаун-файлах.
Добавь вызов cspell в lint-staged, так же как markdownlint.
Агент справился с задачей.
Он создал cspell.config.json с нужными настройками:
В область lint-staged добавил настройки для запуска нового линтера:
Создал пустой файл для неизвестных слов:
Давайте переустановим все зависимости. Удалите файл package-lock.json и выполните команду:
npm i
Система снова создаст файл package-lock.json, но уже с обновленными зависимостями.
Проверим работу нового линтера. Внесите произвольные изменения в файл docs/intro.md, например, намеренно допустим ошибку в последнем предложении «…стоит дораго»:
Теперь попытаемся закоммитить изменения:
git add .
git commit -m "test cspell"
Линтер отработал и нашел целую кучу ошибок или неизвестных ему слов:
Что это за ошибки? Сspell выполняет проверку в рамках установленных словарей. В нашем случае это встроенный американский словарь и подключенный дополнительно — русский:
"import": [
"@cspell/dict-ru_ru/cspell-ext.json"
],
Это значит, что если в словаре нет какого-то слова, которое есть в вашем markdown-файле, то система выдаст ошибку. Такие ошибки можно свести к минимуму, если не использовать несловарные слова, но это скорее невозможно. Поэтому мы попросили агента создать словарь неизвестных слов.
Вы будете наполнять этот словарь неизвестной лексикой, которая встречается в вашей документации и рано или поздно обучите линтер всем новым словам.
Этот словарь называется cspell-custom-words.txt. Внесите в него все неизвестные слова:
Когда словарь станет больше или слова начнут дублироваться меняя лишь окончание, то есть смысл оптимизировать его.
Попробуйте снова закоммитить изменения:
git add .
git commit -m "test cspell"
Осталась только одна ошибка, которую мы допустили намеренно:
Исправьте ее и повторите коммит.
Супер! В файле intro.md нет ошибок, а все изменения закоммичены: