javascript42
Главная
Все учебники
Блог
Учебник Markdown-it
Введение
Что такое Markdown-it
История создания и развития
Философия библиотеки
Сравнение с другими парсерами
Установка и настройка окружения
Первый пример использования
Основы работы с Markdown-it
Инициализация парсера
Базовый синтаксис преобразования
Методы render и parse
Настройки по умолчанию
Пресеты конфигурации
Включение и отключение правил
Работа с опциями html, breaks, linkify
Типографические замены
Архитектура библиотеки
Структура парсера
Понятие токенов
Цепочка обработки правил
Блочные и инлайн-парсеры
Рендерер и его роль
StateCore, StateBlock, StateInline
Токены
Структура токена
Типы токенов
Атрибуты токенов
Вложенность токенов
Методы работы с токенами
Навигация по дереву токенов
Создание собственных токенов
Правила парсинга
Концепция правил
Блочные правила
Инлайн-правила
Правила ядра
Приоритет и порядок выполнения
Встроенные правила
Включение и отключение правил программно
Рендеринг
Принцип работы рендерера
Дефолтные рендер-функции
Переопределение рендеринга
Рендеринг отдельных элементов
Экранирование HTML
Добавление классов и атрибутов
Кастомизация вывода
Плагины
Что такое плагины
Структура плагина
Регистрация плагинов
Популярные плагины
Плагин для якорей
Плагин для таблиц
Плагин для сносок
Плагин для контейнеров
Плагин для эмодзи
Плагин для математических формул
Плагин для подсветки кода
Плагин для аббревиатур
Создание собственных плагинов
Добавление новых правил парсинга
Регистрация правил в цепочке
Создание токенов в плагине
Добавление рендер-функций
Обработка опций плагина
Валидация и обработка ошибок
Тестирование плагинов
Расширенный синтаксис
Таблицы
Списки задач
Списки определений
Сноски
Якоря заголовков
Контейнеры
Математические формулы
Надстрочный и подстрочный текст
Вставка видео и медиа
Работа с HTML
Разрешение HTML в markdown
Безопасность и санитизация
Фильтрация тегов
Взаимодействие с DOMPurify
Обработка небезопасного контента
Атрибуты rel и target для ссылок
Типографика
Автоматические замены
Кавычки
Тире и дефисы
Многоточие
Символы копирайта и товарного знака
Настройка типографических правил
Производительность
Оптимизация парсинга
Кеширование результатов
Ленивая загрузка правил
Профилирование
Работа с большими документами
Потоковая обработка
Ограничение сложности
Безопасность
XSS-атаки и защита
Инъекции через ссылки
Безопасная обработка протоколов
Лимиты на вложенность
Защита от ReDoS
Валидация входных данных
Рекомендации по безопасности
Интеграция
Использование в Node.js
Интеграция в браузере
Webpack и сборщики
Интеграция с React
Интеграция с Angular
Серверный рендеринг
Работа с TypeScript
Расширенные техники
Препроцессинг markdown
Постпроцессинг HTML
Модификация токенов на лету
Условный рендеринг
Мультиязычность
Кастомные валидаторы
Работа с метаданными
Отладка и диагностика
Отладка парсинга
Просмотр токенов
Логирование правил
Частые ошибки и решения
Несовместимость с CommonMark
Миграция и совместимость
Миграция с других парсеров
Совместимость с CommonMark
Совместимость с GFM
Обратная совместимость
Обновление версий
Изменения в API
API Reference
Класс MarkdownIt
Методы render, renderInline, parse
Методы use, set, configure
Методы enable, disable
Объект Ruler
Объект Renderer
Объект Token
Хелперы utils