Markdown-it — это мощная и гибкая библиотека для парсинга Markdown в JavaScript, позволяющая тонко настраивать процесс обработки текста. Одним из ключевых элементов её конфигурации являются пресеты — заранее определённые наборы опций, которые обеспечивают быстрый старт с оптимальными настройками для различных сценариев.
Markdown-it включает несколько встроенных пресетов, каждый из которых отличается набором включённых плагинов и опций:
default Базовый пресет, включающий
поддержку стандартного синтаксиса Markdown, безопасные ссылки и
обработку основных тегов. Идеален для общего использования.
commonmark Соответствует
спецификации CommonMark. Отключает нестандартные расширения, такие как
таблицы и ссылки на автоидентификаторы заголовков, чтобы обеспечить
строгую совместимость.
zero Минимальный пресет, который
практически ничего не включает. Используется для построения собственного
набора расширений с нуля.
Для инициализации Markdown-it с пресетом используется конструкция:
const MarkdownIt = require('markdown-it');
const md = new MarkdownIt('default'); // или 'commonmark', 'zero'
Пресет автоматически задаёт базовые значения для следующих ключевых опций:
html — разрешение на встраивание HTML.xhtmlOut — использование XHTML-совместимого
вывода.breaks — автоматическая конвертация переносов строк в
<br>.linkify — автоматическое преобразование URL в
ссылки.typographer — замена стандартных символов на
типографские (например, кавычек и тире).Даже при использовании пресета доступно изменение отдельных параметров:
const md = new MarkdownIt('default', {
html: true, // разрешаем HTML
linkify: true, // активируем автоматические ссылки
typographer: true // включаем типографику
});
Это позволяет сохранить преимущества пресета, одновременно адаптируя его под конкретные требования проекта.
Пресеты также включают стандартные плагины Markdown-it, например для
обработки таблиц, ссылок с заголовками
и списков задач. Для их настройки используются методы
use и disable:
// Подключение плагина
md.use(require('markdown-it-emoji'));
// Отключение встроенного плагина
md.disable('table');
Каждый пресет определяет, какие плагины подключаются по умолчанию.
Использование zero позволяет полностью контролировать этот
процесс.
Выбор пресета напрямую влияет на следующие аспекты:
default включает безопасное встраивание HTML,
zero оставляет его отключённым.default, отключены в commonmark и
zero.default
для проектов, где важна поддержка расширенного Markdown.commonmark, когда требуется соответствие стандарту
Markdown.zero
подходит для создания уникальных конфигураций, когда нужно подключать
только определённые плагины.Markdown-it позволяет создавать кастомные пресеты, комбинируя опции и плагины:
function myPreset(md) {
md.set({ html: true, breaks: true });
md.use(require('markdown-it-emoji'));
md.use(require('markdown-it-anchor'));
return md;
}
const md = myPreset(new MarkdownIt('zero'));
Это обеспечивает повторное использование настроек и упрощает управление проектами с несколькими Markdown-редакторами.
| Пресет | HTML | Типографика | Linkify | Плагины по умолчанию |
|---|---|---|---|---|
default |
Да | Да | Да | Таблицы, эмодзи, списки задач |
commonmark |
Нет | Нет | Нет | Минимальные, только стандартный синтаксис |
zero |
Нет | Нет | Нет | Нет, полностью настраиваемый |
Пресеты в Markdown-it создают основу, на которой строится дальнейшая конфигурация. Правильный выбор и модификация пресета позволяет оптимизировать работу с Markdown, облегчая поддержку и расширение функционала.