Я всегда говорил, что самому настраивать линтеры, а не
...plugin.configs.recommended — один из лучших способов обучения и повышения насмотренности, Да, вот прям сесть и каждое правило вдумчиво через себя пропустить.
Я вот тут это делаю. А у вас какие развлечения? 😄
В недавнем посте делился ESLint-плагином markdown-preferences.
Заканчиваю его настройку и хочу поделиться интересными фактами о Markdown, о которых я не знал:
1️⃣ Даже стыдно, но я не знал о существовании link reference definitions
Я использую [ESLint], но планирую переехать на [Oxlint].
[Стайллинт][stylelint] -- тоже классный инструмент.
[eslint]: https://eslint.org/
[oxlint]: https://oxc.rs/docs/guide/usage/linter
[stylelint]: https://stylelint.io/
<!-- да, оно регистронезависимое -->
Вижу применение, во первых, для многократно повторяющихся ссылок — например у меня вот здесь в Stylelint-плагине для БЭМ кучу раз повторяется ссылка на сайт БЭМ-методологии.
Кроме того, иногда ссылки прям длинные и это смотрится в потоке документа просто некрасиво и трудночитаемо в режиме редактирования, особенно если несколько ссылок идут почти подряд. Буду выносить отдельно в конец документа 🫡
2️⃣ Для создания блоков кода может использоваться tilde (~), а не только backtick (`).
Причём их количество необязательно должно быть равно трём — согласно спецификации, их должно быть не меньше трёх и количество закрывающих должно быть не меньше, чем открывающих (spec)
```js
const foo = 'bar'; // к этому мы привычны
```
~~~js
const foo = 'bar'; // с тильдой тоже валидно
~~~
~~~~~~~~~~js
const foo = 'bar'; // если вы больной на голову, то так тоже можно
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Впрочем, с точки зрения применимости это по большей части это просто прикольный факт, ибо тильда в обычной раскладке клавиатуры прячется за модификатором Shift, а бэктик доступен напрямую, и нет никакого смысла жать две кнопки вместо одной для создания код-блока.
Ровно как нет (почти) никакого смысла предварять его более чем тремя символами.
Когда может пригодиться?
Ну, например, если нужно вложить один блок в другой (как например у меня здесь в примерах —
js внутри md), или если в содержимом блока присутствует символ его начала. Вдруг вы в блоке кода захотите сделать console.log('```')?Ни разу не сталкивался за 16 лет :)
* Авторы syntax-highlight'ера Telegram, видимо, тоже :)
3️⃣ Ссылкам можно указывать атрибут title (spec)
<!-- При наведении всплывёт браузерный тултип -->
[MorevM](https://github.com/morevm/ 'Мой Github-аккаунт')
Полезность сомнительная 🤔
Я сначала подумал про доступность, но вот тут с Анатолием Попко обсуждали, что
title для интерактивного элемента скорее приведёт к избыточной озвучке, чем поможет. Если текст важен, напишите его прямо в ссылке, а не в атрибуте title.Потом подумал про сценарии в духе
[?](/help 'Open help section') — но это тоже не могу рекомендовать. Если какой-то текст важен, напишите его сразу в ссылке. Если неважен, то он не нужен. Вспомнился Максим Ильяхов с его рекомендацией по поводу текста в скобках — какое-то похожее ощущение.Единственное, что для меня выглядит более-менее обосновано — это расшифровка аббревиатур (а ещё у меня есть видео про аббревиатуры в коде)
<!-- Почему бы и не да -->
[MDN](https://developer.mozilla.org "Mozilla Developer Network")
Если знаете, где ещё от того будет польза — напишите в комментарии, интересно 🙏
—
Всё на сегодня :)
Завтра ещё 4 пункта напишу. Написал бы сразу, но телега не даёт писать длинные посты :(
Может, пора уже нормальный блог сделать?..