Форматтер Markdown

Вставьте документ Markdown, и форматтер перепишет его в едином стиле: исправит скачки уровней заголовков (никакого H2 после H4), выровняет столбцы таблиц в исходнике, обеспечит одну пустую строку между блоками, нормализует маркеры списков к -, схлопнет серии пустых строк и отсортирует ссылочные определения внизу. Отрендеренный HTML не меняется, аккуратнее становится только исходный файл, благодаря чему диффы становятся читаемыми.

Как форматтер переписывает Markdown

  1. 1

    Вставьте Markdown

    Вставьте сырой документ: README, страницу документации, заметки со встречи.

  2. 2

    Выберите параметры стиля

    Маркер списка (`-`/`*`), стиль заголовков (ATX/Setext), выравнивание таблиц, колонка переноса.

  3. 3

    Отформатируйте

    Инструмент разбирает документ в AST и заново сериализует его в выбранном стиле.

  4. 4

    Сравните вывод

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

Что исправляет форматтер

  • Маркеры списков. *, -, + нормализуются к одному единому символу (по умолчанию -).
  • Иерархия заголовков. Предупреждает (или повышает уровень), когда за H2 следует H4 без H3 между ними.
  • Пустые строки. Ровно одна пустая строка между блоками; никаких серий из трех и более.
  • Таблицы. Дополняет каждый столбец так, чтобы вертикальные черты выравнивались в исходнике, хотя рендерерам Markdown это безразлично.
  • Конечные пробелы. Убирает пробелы в конце каждой строки, кроме намеренного маркера переноса из двух пробелов.
  • Ссылочные ссылки. Собирает определения [label]: url в конце документа, отсортированные по алфавиту.
  • Ограждения кода. Тег языка нормализуется к нижнему регистру; блоки кода на основе отступов становятся огражденными блоками.

Параметры стиля, которые можно задать

Параметр По умолчанию Альтернативы
Маркер списка - *, +
Стиль заголовков ATX Setext для H1/H2
Разделитель курсива * _
Разделитель жирного ** __
Колонка переноса 0 (выкл) 80, 100, 120
Сортировка ссылочных ссылок вкл выкл

Почему важен единообразный Markdown

В командном репозитории неединообразный Markdown порождает шумные диффы: каждый раз, когда кто-то сохраняет файл в другом редакторе, маркеры списков меняются, а таблицы переформатируются. Форматтер обеспечивает единый стиль, поэтому ревьюеры pull request видят только изменения содержимого. Считайте это prettier для прозы.

Когда не форматировать

  • Огражденные блоки кода остаются байт в байт нетронутыми, форматтер никогда не трогает содержимое блока кода. Если форматирование меняет код, это баг.
  • Намеренные жесткие переносы на узкой ширине (readme.md в терминальном проекте) перепереносятся, если вы включите колонку переноса. Отключите перенос, если храните вручную настроенные переносы строк.
  • Встроенные блоки HTML проходят без изменений.

Замены drop-in

Если вы предпочитаете локальный CLI, форматтер использует те же правила AST, что и remark-stringify с плагином remark-gfm. prettier --parser markdown дает похожий результат.

Часто задаваемые вопросы

Нет. Форматтер переписывает только исходник, отрендеренный HTML для версий «до» и «после» должен быть эквивалентным. Если вы видите изменение в рендеринге, сообщите об этом как о баге.

Нет. Front-matter в YAML или TOML в начале файла обнаруживается и пропускается без изменений.

Да, задайте колонку переноса в 80, 100 или 120, и абзацы будут перенесены заново. Строки внутри ограждений кода никогда не трогаются.

Нет. Форматтер предполагает, что ваши ссылки работают; он лишь реорганизует ссылочные определения. Используйте инструмент проверки ссылок отдельно.

Нет. Разбор и форматирование выполняются в вашем браузере; содержимое никогда не покидает ваше устройство.

Сопутствующие инструменты

Смешивание цветов

Смешайте два HEX-цвета в 2-20 равномерных образцов. Каждый промежуточный цвет показывается как HEX-код в верхнем регистре, включая оба края.

Генератор вымышленных телефонных номеров

Создавайте до 50 вымышленных номеров из официально зарезервированных диапазонов пяти стран.

Генератор конфигурации webpack

Создайте webpack.config.js для webpack 5 под чистый JavaScript, React или Vue: TypeScript, Babel, CSS или Sass, изображения, HtmlWebpackPlugin, dev-сервер и команда npm install.

Генератор бейджей README

Создавайте бейджи shields.io для файлов README на GitHub: статус сборки, версия, лицензия, число загрузок и покрытие кода. Просмотрите и скопируйте фрагмент Markdown.

Генератор случайных букв

Генерируйте случайные буквы A-Z. Выберите количество, верхний или нижний регистр либо смешанный вариант для игр, заданий и уроков.

Генератор случайных адресов

Создавайте 1–20 похожих на адрес записей для макетов и тестов в трёх упрощённых форматах.

Инструмент доступен на других языках