Библиотека Markdown-it предоставляет мощный и гибкий
механизм управления функциональностью через правила
парсинга (rules) и плагины. Методы
enable и disable позволяют включать или
отключать отдельные блоки синтаксиса Markdown на уровне движка, управляя
поведением парсера.
enable(rules) — активирует одно или
несколько правил Markdown.disable(rules) — деактивирует одно или
несколько правил.Оба метода принимают:
Правила соответствуют внутренним именам, которые использует
Markdown-it для обработки определённых элементов Markdown (например,
emphasis, link, image,
code_block).
Методы мутируют текущий экземпляр Markdown-it, что делает их полезными для динамического изменения функциональности парсера.
disableМетод disable полезен, когда необходимо
ограничить набор допустимого синтаксиса. Например,
можно запретить обработку изображений и ссылок:
const MarkdownIt = require('markdown-it');
const md = new MarkdownIt();
md.disable(['image', 'link']);
const result = md.render(' [link](https://example.com)');
console.log(result);
Результат: Все изображения и ссылки остаются в исходном тексте как обычный текст, без генерации HTML.
Примечание: Если указать правило, которое уже отключено, ошибок не возникает — метод просто игнорирует такое действие.
enableМетод enable используется для включения ранее
отключённых правил. Например:
md.enable('image');
const result2 = md.render(' [link](https://example.com)');
console.log(result2);
Результат: Обработка изображений возобновляется, а ссылки по-прежнему остаются отключёнными.
В реальных проектах часто требуется точно контролировать функциональность Markdown. Методы можно комбинировать:
md.disable(['link', 'code_inline'])
.enable(['code_inline']);
const output = md.render('`inline code` [link](url)');
console.log(output);
Результат:
code_inline снова обрабатывается как встроенный
кодlink остаётся отключённымMarkdownIt, а не на глобальные
настройки.| Правило | Назначение |
|---|---|
emphasis |
Курсив и полужирный текст (*text*,
**text**) |
link |
Гиперссылки ([text](url)) |
image |
Изображения () |
code_inline |
Встроенный код
(\code`) | |code_block| Блоки кода (тройные обратные кавычки) | |fence| Fence-коды с подсветкой | |blockquote| Цитаты (>
text) | |list` |
Методы enable и disable делают Markdown-it
не просто парсером, а гибким инструментом для контроля
синтаксиса, позволяя включать и отключать отдельные элементы
Markdown без изменения основного кода или структуры документа.