cspell

На очереди проверка орфографии. Это очень важный момент, потому что безграмотная документация не вызывает доверия. На самом деле это касается вообще всего вокруг, если вы делаете неряшливый продукт: допускаете ошибки или опечатки, есть какие-то баги верстки, используете разную стилистику оформления картинок и прочее-прочее, то и отношение к такому продукту будет соответствующее. Относитесь к качеству выпускаемого вами продукта очень серьезно.

Писать код будем в рамках созданной ранее задачи:

Introduction Docusaurus

Для проверки орфографии будем использовать линтер cspell.

Напишем промт:

К markdownlint добавь еще и проверку орфографии через cspell: https://github.com/streetsidesoftware/cspell-cli

Подключи русский и английский словари. Добавь словарь неизвестных (custom) слов. Разреши его ручное наполнение. Проверять орфографию будем только в маркдаун-файлах.

Добавь вызов cspell в lint-staged, так же как markdownlint.

Агент справился с задачей.

Он создал cspell.config.json с нужными настройками:

Introduction Docusaurus

В область lint-staged добавил настройки для запуска нового линтера:

Introduction Docusaurus

Создал пустой файл для неизвестных слов:

Introduction Docusaurus

Давайте переустановим все зависимости. Удалите файл package-lock.json и выполните команду:

npm i

Система снова создаст файл package-lock.json, но уже с обновленными зависимостями.

Проверим работу нового линтера. Внесите произвольные изменения в файл docs/intro.md, например, намеренно допустим ошибку в последнем предложении «…стоит дораго»:

Introduction Docusaurus

Теперь попытаемся закоммитить изменения:

git add .
git commit -m "test cspell"

Линтер отработал и нашел целую кучу ошибок или неизвестных ему слов:

Introduction Docusaurus

Что это за ошибки? Сspell выполняет проверку в рамках установленных словарей. В нашем случае это встроенный американский словарь и подключенный дополнительно — русский:

"import": [
  "@cspell/dict-ru_ru/cspell-ext.json"
  ],

Это значит, что если в словаре нет какого-то слова, которое есть в вашем markdown-файле, то система выдаст ошибку. Такие ошибки можно свести к минимуму, если не использовать несловарные слова, но это скорее невозможно. Поэтому мы попросили агента создать словарь неизвестных слов.

Вы будете наполнять этот словарь неизвестной лексикой, которая встречается в вашей документации и рано или поздно обучите линтер всем новым словам.

Этот словарь называется cspell-custom-words.txt. Внесите в него все неизвестные слова:

Introduction Docusaurus

Когда словарь станет больше или слова начнут дублироваться меняя лишь окончание, то есть смысл оптимизировать его.

Попробуйте снова закоммитить изменения:

git add .
git commit -m "test cspell"

Осталась только одна ошибка, которую мы допустили намеренно:

Introduction Docusaurus

Исправьте ее и повторите коммит.

Супер! В файле intro.md нет ошибок, а все изменения закоммичены:

Introduction Docusaurus