Методы render, renderInline, parse

Библиотека Markdown-it предоставляет высокопроизводительные средства для преобразования текста в формате Markdown в HTML. Три ключевых метода — render, renderInline и parse — обеспечивают разные способы обработки и интерпретации Markdown-содержимого.


Метод render

Метод render выполняет полное преобразование Markdown-текста в HTML. Он разбивает текст на блоки, применяет правила синтаксического анализа и генерации HTML, возвращая готовый результат.

Синтаксис:

md.render(src, env)
  • src — исходная строка с Markdown.
  • env — объект окружения, который используется для передачи дополнительных данных между различными этапами обработки (опционально).

Пример использования:

const MarkdownIt = require('markdown-it');
const md = new MarkdownIt();

const result = md.render('# Заголовок\n\nТекст с **жирным** выделением');
console.log(result);

Особенности метода render:

  • Генерирует полный HTML, включая все блочные элементы (параграфы, списки, таблицы, заголовки).
  • Подходит для обработки целых документов Markdown.
  • Использует парсер блоков и инлайновый парсер, что делает его максимально универсальным.

Метод renderInline

Метод renderInline предназначен для обработки только инлайнового содержимого. Он не создает обертки в виде

или других блочных тегов, что полезно для встраивания Markdown-текста внутри существующих HTML-структур.

Синтаксис:

md.renderInline(src, env)
  • src — Markdown-строка.
  • env — объект окружения, аналогично render.

Пример использования:

const text = 'Текст с **жирным** и *курсивом*';
const html = md.renderInline(text);
console.log(html);

Особенности метода renderInline:

  • Не создает блочных тегов (

    ,

    и т.д.).

  • Обрабатывает только инлайновые конструкции: жирный, курсив, ссылки, изображения, коды.
  • Идеален для использования внутри компонентов UI, где необходимо только форматирование текста.

Метод parse

Метод parse возвращает структурное представление Markdown-документа в виде массива токенов, без генерации HTML. Это полезно для анализа документа, кастомной обработки или генерации нестандартного HTML.

Синтаксис:

md.parse(src, env)
  • src — Markdown-текст.
  • env — объект окружения, через который можно передавать данные между правилами.

Пример использования:

const tokens = md.parse('# Заголовок\n\nСписок:\n- Пункт 1\n- Пункт 2', {});
console.log(tokens);

Особенности метода parse:

  • Возвращает массив токенов, каждый из которых содержит тип (heading_open, inline, paragraph_open), уровень вложенности, содержимое и другие параметры.
  • Позволяет реализовать кастомную генерацию HTML, анализ структуры документа или обработку Markdown для других целей.
  • Используется как внутренняя основа для render, который берет токены и превращает их в HTML.

Структура токена:

  • type — тип токена (paragraph_open, text, strong_open и др.).
  • tag — соответствующий HTML-тег.
  • content — текстовое содержимое токена.
  • level — уровень вложенности.
  • children — массив дочерних токенов (для инлайновых токенов).
  • attrs — массив атрибутов, если они есть (id, class, href и др.).

Взаимосвязь методов

  • parse → возвращает токены для анализа.
  • renderInline → использует инлайновые токены для генерации HTML без блочной обертки.
  • render → комбинирует блоковые и инлайновые токены, возвращая полный HTML-документ.

Схематически:

Markdown-текст
      │
      ├─ parse ─→ токены
      │
      ├─ renderInline ─→ HTML (инлайн)
      │
      └─ render ─→ HTML (полный документ)

Использование этих методов позволяет полностью контролировать процесс обработки Markdown, включая анализ, модификацию токенов и генерацию HTML как в стандартной, так и в кастомной форме.