Markdown-it — это высокопроизводительный парсер Markdown на JavaScript, который обеспечивает гибкость в конфигурации и расширяемость. Основой работы с библиотекой являются настройки по умолчанию, которые определяют поведение парсера при интерпретации текста. Понимание этих настроек важно для тонкой настройки рендеринга и интеграции Markdown в веб-приложения.
Создание экземпляра Markdown-it производится через конструктор:
const MarkdownIt = require('markdown-it');
const md = new MarkdownIt();
Если вызван конструктор без параметров, используются настройки по умолчанию, обеспечивающие стандартное поведение Markdown.
Markdown-it использует объект конфигурации, который передается в конструктор. Ключевые флаги:
html (false по умолчанию) Разрешает
или запрещает парсинг HTML внутри Markdown. Если true, теги
HTML не экранируются.
xhtmlOut (false) Если
true, закрывающие теги генерируются в формате XHTML
(<br />, <hr />), иначе
используется стандартный HTML (<br>,
<hr>).
breaks (false) При значении
true все переносы строк в Markdown интерпретируются как
<br>. По умолчанию переносы строк игнорируются, кроме
пустой строки между абзацами.
linkify (false) Автоматическое
распознавание URL и email-адресов в тексте и превращение их в
ссылки.
typographer (false) Включает
расширенные правила типографики: замена дефисов на тире, кавычек на
правильные, апострофов и т. д.
quotes ("“”‘’") Определяет символы,
используемые типографикой для кавычек, если typographer
включен.
const md = new MarkdownIt({
html: true,
xhtmlOut: false,
breaks: false,
linkify: true,
typographer: true
});
const result = md.render(`
# Заголовок
Пример текста с ссылкой: https://example.com
С "кавычками" и дефисами --
`);
console.log(result);
В этом примере:
<br> будут стандартными, а не
XHTML-совместимыми.<a href="...">.Парсинг блоков Markdown-it по умолчанию
поддерживает стандартные блоковые элементы Markdown: заголовки
(#), списки (-, *,
1.), цитаты (>), кодовые блоки и
горизонтальные линии (---).
Парсинг инлайновых элементов Обрабатываются ссылки, изображения, жирный и курсивный текст, код в строке и эмодзи (при подключении соответствующих плагинов).
Обработка HTML Если html: false,
HTML внутри Markdown не рендерится, а экранируется как обычный
текст.
Управление ссылками и безопасностью При
linkify: true URL автоматически оборачиваются в ссылки.
Однако не производится проверка безопасности, поэтому потенциально
опасный HTML следует фильтровать отдельно.
Поддержка расширений через плагины Настройки по умолчанию можно расширять плагинами, сохраняя основные флаги. Плагины могут добавлять поддержку таблиц, задач, подсветки кода и других расширенных возможностей.
Markdown-it позволяет изменять некоторые параметры после создания экземпляра:
md.set({
breaks: true,
linkify: false
});
Метод set принимает объект с ключами, аналогичными
конструктору, и мгновенно обновляет поведение парсера. Это удобно для
динамического изменения режима рендеринга без пересоздания
экземпляра.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
| html | Boolean | false | Разрешение HTML внутри Markdown |
| xhtmlOut | Boolean | false | Использование XHTML-стиля для самозакрывающихся тегов |
| breaks | Boolean | false | Переносы строк превращаются в <br> |
| linkify | Boolean | false | Автоматическая обработка URL и email |
| typographer | Boolean | false | Включение типографских замен |
| quotes | String | ““‘’” | Символы для кавычек при включенном typographer |
Эта таблица служит справочным инструментом для быстрой настройки Markdown-it под конкретные требования, сохраняя при этом поведение, ожидаемое от стандартного Markdown.
Markdown-it обеспечивает предсказуемое поведение по умолчанию, которое можно изменять и расширять, делая библиотеку гибкой для любых веб-приложений и редакторов текста.