markdownlint

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

Для этого нам подойдет markdownlint. Давайте попробуем его прикрутить и начнем с постановки задачи:

Что мы хотим: автоматически проверять все измененные md-файлы на соответствие стандартам линтера markdownlint.

Когда мы хотим: всякий раз, когда кто-то что-то коммитит в проект.

Давайте разбираться:

Почему следует запускать проверку до коммита? Так вы будете уверены, что в репозиторий не попадут файлы, которые не соответствуют вашим стандартам. Сделаем это через pre-commit.

Почему стоит проверять только измененные файлы? Во-первых, проверка всего проекта может занять много времени. Во-вторых, конкретный контрибьютер может не должен отвечать за ошибки в других файлах. Реализуем эту историю через lint-staged.

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

Introduction Docusaurus

Дополните задачу описанием, создайте ветку и переключитесь на нее.

Теперь напишем промт:

Хочу автоматически проверять все измененные md-файлы на соответствие стандартам линтера markdownlint: https://github.com/DavidAnson/markdownlint.

Проверять хочу только измененные файлы, используй для этого lint-staged: https://github.com/lint-staged/lint-staged.

Запускать проверку хочу до коммита. Используй для управления хуками husky: https://github.com/hyiso/husky.

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

Не добавляй инструкцию по использованию.

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

Отлично! Теперь давайте внесем некоторые изменения в файл с принципами:

Introduction Docusaurus

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

git add .
git commit -m "test lint"
Introduction Docusaurus

Система не пропустила коммит и отобразила список ошибок.

Исправьте ошибки MD001, MD009, MD022 в файле. А ошибку MD013 мы просто добавим в исключения. Для этого напишите в чат: Добавь исключение для правила MD013. В итоге Cursor создаст файл .markdownlint.json и добавит туда исключение: Markdownlint. Rules

Introduction Docusaurus

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

Introduction Docusaurus

Поздравляю! Вы настроили первый линтер. Двигаемся дальше.