new
new copied to clipboard
Найти и прикрутить линтер для Маркдауна
- [x] Найти линтер и правила к нему
- [ ] Прикрутить проверку на пре-что-нибудь и к тестам
Например, хотелось бы, чтобы списки шли всегда только так:
- Item
- Item
- Item
А не
* Item
* Item
* Item
И чтобы для курсива всегда был _italic_
, а не *italic*
. Ну и ещё какие-то мелочи, наверное.
Предлагаю использовать remark-lint. Список доступных правил. Есть готовый пресет по умолчанию.
Вариант :) Если интересно заняться, то давайте заведём это в отдельной ветке пулреквеста и там уже поймём какой список правил нужен. Можно начать с пресета и посмотреть на ошибки. Фикс там есть?
Ок, попробую вечером разобраться как это работает. Насколько я понимаю, автофикс есть.
Нужно разрешить inline HTML для переноса строки с помощью <br>
@b0gok Нужна какая-нибудь помощь? Или просто пока руки не дошли?
@pepelsbey Кстати в remark-lint есть пресет который построен на базе Markdown Style Guide, там вроде вполне разумные правила, разе что для italic
используются *
. Но его поднастроить под себя можно если большенство правил подходит.
@FFxSquall всё хорошо кроме того, что при фиксе у меня не учитываются настройки из конфига по непонятной мне пока причине. Особо это бесит в плане настройки rule
, который по умолчанию *
, а не -
. Но, я думаю, в воскресение я с этим разберусь.
На текущий момент конфиг у меня выглядит таким образом (расписал правила из пресетов в отдельные, чтобы было понятнее как что отрабатывает)
.remarkrc.js
module.exports = {
settings: {
fences: false,
bullet: '-',
listItemIndent: '1',
incrementListMarker: true,
rule: '-',
ruleRepetition: 3,
ruleSpaces: false,
strong: '*',
emphasis: '_'
},
plugins: {
'remark-lint-blockquote-indentation': ['error', 2],
'remark-lint-code-block-style': ['error', 'indented'],
'remark-lint-emphasis-marker': ['error', '_'],
'remark-lint-final-newline': ['error'],
'remark-lint-hard-break-spaces': ['error'],
'remark-lint-link-title-style': ['error', '"'],
'remark-lint-list-item-bullet-indent': ['error'],
'remark-lint-list-item-content-indent': ['error'],
'remark-lint-list-item-indent': ['error', 'space'],
'remark-lint-no-auto-link-without-protocol': ['error'],
'remark-lint-no-blockquote-without-marker': ['error'],
'remark-lint-no-duplicate-definitions': ['error'],
'remark-lint-no-heading-content-indent': ['error'],
'remark-lint-no-inline-padding': ['error'],
'remark-lint-no-shortcut-reference-image': ['error'],
'remark-lint-no-shortcut-reference-link': ['error'],
'remark-lint-no-undefined-references': ['error'],
'remark-lint-no-unused-definitions': ['error'],
'remark-lint-ordered-list-marker-style': ['error', '.'],
'remark-lint-ordered-list-marker-value': ['error', 'ordered'],
'remark-lint-rule-style': ['error', '---'],
'remark-lint-strong-marker': ['error', '*'],
'remark-lint-unordered-list-marker-style': ['error', '-']
}
};
Вот почему надо такое сразу в пулреквест, а в нём уже работать совместно.
Кидайте, разберёмся :)