Настройки по умолчанию

Markdown-it — это высокопроизводительный парсер Markdown на JavaScript, который обеспечивает гибкость в конфигурации и расширяемость. Основой работы с библиотекой являются настройки по умолчанию, которые определяют поведение парсера при интерпретации текста. Понимание этих настроек важно для тонкой настройки рендеринга и интеграции Markdown в веб-приложения.


Инициализация Markdown-it

Создание экземпляра 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);

В этом примере:

  • HTML в тексте будет обработан и не экранирован.
  • Теги <br> будут стандартными, а не XHTML-совместимыми.
  • URL будет автоматически преобразован в <a href="...">.
  • Типографика заменит двойные и одинарные кавычки на корректные, а двойной дефис на длинное тире.

Детальное описание поведения по умолчанию

  1. Парсинг блоков Markdown-it по умолчанию поддерживает стандартные блоковые элементы Markdown: заголовки (#), списки (-, *, 1.), цитаты (>), кодовые блоки и горизонтальные линии (---).

  2. Парсинг инлайновых элементов Обрабатываются ссылки, изображения, жирный и курсивный текст, код в строке и эмодзи (при подключении соответствующих плагинов).

  3. Обработка HTML Если html: false, HTML внутри Markdown не рендерится, а экранируется как обычный текст.

  4. Управление ссылками и безопасностью При linkify: true URL автоматически оборачиваются в ссылки. Однако не производится проверка безопасности, поэтому потенциально опасный HTML следует фильтровать отдельно.

  5. Поддержка расширений через плагины Настройки по умолчанию можно расширять плагинами, сохраняя основные флаги. Плагины могут добавлять поддержку таблиц, задач, подсветки кода и других расширенных возможностей.


Доступ к настройкам после инициализации

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 обеспечивает предсказуемое поведение по умолчанию, которое можно изменять и расширять, делая библиотеку гибкой для любых веб-приложений и редакторов текста.