Marked — это библиотека для JavaScript, которая позволяет конвертировать текст в формате Markdown в HTML. Основное отличие Marked от других парсеров заключается в высокой скорости обработки, простоте интеграции и гибкой настройке через опции и расширения.
Marked разработан с приоритетом максимальной
производительности. В сравнении с популярными альтернативами,
такими как markdown-it и remark, Marked
обрабатывает большие объёмы текста значительно быстрее за счёт:
Marked имеет минимальное количество зависимостей и интуитивно понятный API. Основные функции включают:
import { marked } from 'marked';
const markdown = '# Заголовок\nТекст с **жирным** выделением.';
const html = marked(markdown);
console.log(html);
В отличие от некоторых библиотек, где необходимо создавать сложные конфигурации, Marked позволяет сразу получать HTML из Markdown без лишних настроек.
Marked предоставляет несколько уровней настройки:
Опции парсера позволяют изменять поведение обработки Markdown:
marked.setOptions({
gfm: true, // Поддержка GitHub Flavored Markdown
breaks: true, // Перенос строк
smartLists: true, // Интеллектуальные списки
smartypants: true // Автоматическая замена кавычек и тире
});Кастомные рендереры позволяют изменять конечный HTML:
const renderer = {
heading(text, level) {
return `<h${level} class="custom-heading">${text}</h${level}>`;
}
};
marked.use({ renderer });Лексеры и токенизация дают контроль над промежуточным представлением Markdown, что полезно для создания специфичных расширений или интеграции с другими системами.
Marked поддерживает стандарт GitHub Flavored Markdown (GFM) и обеспечивает корректное отображение:
В сравнении, remark фокусируется на AST (Abstract Syntax
Tree) и модульной обработке, а markdown-it делает акцент на
плагинах и extensibility. Marked же сочетает скорость, простоту
и достаточную гибкость, что делает его удобным инструментом для
большинства задач конвертации Markdown в веб-приложениях.
Marked имеет встроенные механизмы очистки HTML для
предотвращения XSS-атак. Параметр sanitize позволяет
автоматически удалять потенциально опасные элементы. В новых версиях
рекомендуется использовать комбинацию с библиотеками вроде
DOMPurify для ещё более строгой фильтрации.
Некоторые парсеры, как markdown-it, делают акцент на
системе плагинов и расширяемости, позволяя подключать сторонние
обработчики для новых синтаксических конструкций. Marked использует
более простой подход:
| Особенность | Marked | markdown-it | remark |
|---|---|---|---|
| Скорость | Очень высокая | Высокая | Средняя |
| Простота использования | Очень проста | Средняя | Сложная |
| Расширяемость | Через рендереры | Через плагины | Через AST и плагины |
| Поддержка GFM | Полная | Полная | Полная |
| Безопасность | Базовая + sanitize | Через плагины | Через плагины |
| Потоковая обработка | Есть | Нет | Ограничено |
Marked выгодно отличается скоростью, простотой и потоковой обработкой, что делает его оптимальным выбором для приложений, где важен быстрый рендеринг и минимальная сложность интеграции.