new
new copied to clipboard
Добавляет линтер для маркдауна
Closes #61
Сделано
Для линтинга маркдауна добавлен пакет remark-lint, который использует под капотом remark. Для автоматического исправления используется remark-stringify.
Конфигурация для remark-lint
находится в файле .remarkrc.js.
Раздел plugins
является аналогом раздела rules
в eslint
Для автоматического исправления части ошибок используется команда
remark . -o
В результате которой запускается remark-stringify
Подробнее
Сейчас добавлены 2 набора правил:
Для понимания что конкретно там за правила используются они расписаны в .remarkrc.js.
Проблемы
- [ ] При вызове команды
lint-md:fix
не учитываются настройки из .remarkrc.js дляremark-stringify
Дополнительно
Можно исправлять js внутри маркдауна с помощью eslint-plugin-markdown
Спасибо за пулреквест :) Надо призвать людей и попросить разобраться
@b0gok А что именно не работает при фиксе? Если я запускаю на единичный файл npx remark ./content/articles/a11y-users-interview/index.md --o
он подтягивает настройки из секции settings в файле .remarkrc.js
. Вот только ломает мета шапку. И вместо
---
title: "О доступности интерфейсов из первых уст"
date: "2018-02-19"
---
получается
---
title: "О доступности интерфейсов из первых уст"
## date: "2018-02-19"
И ещё если я в настройках задаю для болда _
, он фиксит, а когда я меняю назад на *
просто начинает ругатся error Strong should use
* as a marker strong-marker remark-lint
, очень странно
FYI: хотелось бы для болда **
и _
для курсива.
FYI: хотелось бы для болда
**
и_
для курсива.
**
не получится использовать, потому что там нет такой опции.
Для курсива уже стоит _
.
там не такой опции
Но это тогда не маркдаун :О Важно сохранить совместимость, а не просто фантазировать

Учитывая, что options.strong
принимает строку, то может это просто плохо написанная документация и он принимает любую, и **
тоже?
@pepelsbey options.strong
просто говорит какой символ remark и так знает, что их 2 надо использовать
В общем мне кажется у них чето неработает. Они сами в remark-lint
пишут
Note: running remark example.md -o or remark example.md --output overwrites example.md and formats it. So, if you’d run that twice (the first pass lints and fixes the markdown, the second pass checks it again), you’d see the output example.md: written as all warnings are now fixed.
На деле если поменять strong на _
то он форматирует документ, если поменять назад, то просто начинает валиться ошибки линтера, что strong должен быть *
. Тут либо начинают плагины отрабатывать до настроек и все останавливается на этапе ошибок. Либо форматер не считает что __example__
strong и не форматирует в **exmaple**
, а потом линтер ругается. Мне кажется, что второе.
@b0gok А что именно не работает при фиксе? Если я запускаю на единичный файл
npx remark ./content/articles/a11y-users-interview/index.md --o
он подтягивает настройки из секции settings в файле.remarkrc.js
. Вот только ломает мета шапку. И вместо--- title: "О доступности интерфейсов из первых уст" date: "2018-02-19" ---
получается
--- title: "О доступности интерфейсов из первых уст" ## date: "2018-02-19"
И ещё если я в настройках задаю для болда
_
, он фиксит, а когда я меняю назад на*
просто начинает ругатсяerror Strong should use
*as a marker strong-marker remark-lint
, очень странно
Я решил, что он не работает совсем как раз из-за шапки, потому что в одной из итераций он заменял ---
на * * *
. Из чего я сделал вывод, что не отрабатывает параметр rule
.
С настройкой strong я ошибся, там будут два знака **
https://github.com/remarkjs/remark-lint/tree/master/packages/remark-lint-strong-marker