Для работы с Markdown-it требуется наличие Node.js и npm (или Yarn) в системе. Установка производится через командную строку:
npm install markdown-it
или с использованием Yarn:
yarn add markdown-it
После установки библиотека доступна для импорта в проекте:
const MarkdownIt = require('markdown-it');
// или в синтаксисе ES6
import MarkdownIt from 'markdown-it';
Создание экземпляра Markdown-it позволяет настроить парсер Markdown под конкретные задачи. Базовая инициализация выглядит следующим образом:
const md = new MarkdownIt();
По умолчанию используется стандартный режим с минимальными настройками. Для более точной конфигурации можно передавать объект параметров:
const md = new MarkdownIt({
html: true, // разрешает использование HTML-тегов в Markdown
xhtmlOut: false, // генерирует XHTML-совместимый вывод
breaks: true, // перевод строки при одиночном переносе
linkify: true, // автоматически превращает URL в ссылки
typographer: true // включает типографические замены (например, кавычки, тире)
});
Каждый параметр имеет прямое влияние на работу парсера:
true, парсер
оставляет HTML-теги в тексте без удаления.true, парсер формирует
теги с закрытием для совместимости с XHTML.<br>.-- на — или
"..." на «…».Markdown-it поддерживает расширения через плагины. Подключение
плагина выполняется через метод .use():
const markdownItEmoji = require('markdown-it-emoji');
md.use(markdownItEmoji);
После подключения плагина парсер получает новые возможности,
например, обработку смайликов :smile:. Плагины могут
принимать свои параметры, которые передаются вторым аргументом метода
use:
md.use(require('markdown-it-footnote'), { customLabel: 'Примечание' });
Для преобразования текста Markdown в HTML используется метод
.render():
const markdownText = `
# Заголовок первого уровня
Текст с **жирным выделением** и *курсивом*.
`;
const result = md.render(markdownText);
console.log(result);
Метод возвращает строку HTML, которая может быть вставлена в документ
или сохранена в файл. Для однострочного рендеринга используется
.renderInline(), который игнорирует блочные элементы:
const inlineResult = md.renderInline('Текст с **жирным** словом');
Markdown-it предоставляет возможность тонкой настройки генерации HTML через собственные рендереры. Можно изменить обработку конкретных токенов:
md.renderer.rules.heading_open = function (tokens, idx, options, env, self) {
const level = tokens[idx].tag;
return `<${level} class="custom-heading">`;
};
Это позволяет добавлять CSS-классы, атрибуты и другие кастомизации на уровне каждого элемента.
Markdown-it поддерживает передачу данных в процессе рендеринга через
объект env. Он используется для хранения дополнительной
информации, которую парсер может использовать при генерации HTML:
const env = { author: 'Иванов' };
const html = md.render('Пример текста', env);
Данные из env могут быть обработаны в кастомных
рендерерах для динамического изменения контента.
html: false повышает
безопасность.Markdown-it обеспечивает гибкую настройку и расширяемость, что делает его удобным инструментом для обработки Markdown в любых JavaScript-проектах.