Библиотека Markdown-it предоставляет гибкий и
расширяемый парсер Markdown для JavaScript. Одной из часто
недооцениваемых, но важных возможностей является правильная обработка
кавычек — как обычных прямых (", '), так и
типографских («ёлочек», «лапок») — для создания аккуратного,
читабельного текста.
По умолчанию Markdown-it сохраняет прямые кавычки в тексте без изменений:
const md = require('markdown-it')();
const result = md.render('"Пример текста в кавычках"');
console.log(result);
Результат:
<p>"Пример текста в кавычках"</p>
Если требуется конвертация прямых кавычек в типографские, используется плагин markdown-it-typographer.
const MarkdownIt = require('markdown-it');
const md = new MarkdownIt({ typographer: true });
const result = md.render('"Текст в типографских кавычках"');
console.log(result);
Результат:
<p>«Текст в типографских кавычках»</p>
Ключевой момент: включение опции
typographer: true позволяет Markdown-it автоматически
заменять прямые кавычки на «ёлочки», одинарные кавычки на ‹лапки› и
корректно расставлять апострофы.
Markdown-it поддерживает расширяемую систему правил рендеринга
(renderer.rules), что позволяет создавать индивидуальные
обработки кавычек.
Пример замены всех двойных кавычек на фигурные:
const md = new MarkdownIt();
md.renderer.rules.text = (tokens, idx) => {
return tokens[idx].content.replace(/"/g, '“');
};
const result = md.render('"Фигурные кавычки"');
console.log(result);
Результат:
<p>“Фигурные кавычки“</p>
Особенности: данный подход заменяет кавычки только в
обычном тексте, не затрагивая кодовые блоки или inline-код. Для более
точного контроля можно использовать токенизацию
(token.type) и фильтровать только нужные типы токенов
(inline, text).
Markdown-it корректно обрабатывает одинарные кавычки '.
С включённым typographer они преобразуются в типографские
апострофы и кавычки:
const md = new MarkdownIt({ typographer: true });
const result = md.render("'одинарная кавычка'");
console.log(result);
Результат:
<p>‹одинарная кавычка›</p>
Можно настроить поведение через опции quotes:
const md = new MarkdownIt({
typographer: true,
quotes: '«»„“'
});
Описание формата quotes:
Это позволяет полностью адаптировать кавычки под стилистические требования текста.
Типографские кавычки генерируют корректный HTML:
<p>«Текст»</p> — семантически и визуально
правильный абзац."Текст" иногда
снижает читаемость и может выглядеть устаревшим.Markdown-it с плагином typographer автоматически учитывает пробелы и тире, что особенно важно для публикаций в вебе и SEO-оптимизации.
Для более продвинутой работы с кавычками доступны сторонние плагины:
Пример интеграции с markdown-it-replace:
const replace = require('markdown-it-replace');
const md = new MarkdownIt().use(replace, [
{ pattern: /"/g, replacement: '«' },
{ pattern: /'/g, replacement: '‹' }
]);
const result = md.render('"Пример" и \'одинарная\' кавычка');
console.log(result);
Результат:
<p>«Пример« и ‹одинарная‹ кавычка</p>
Это демонстрирует, как можно полностью контролировать стиль кавычек в тексте Markdown.
typographer: true для типографически
корректных публикаций.quotes для адаптации под языковые и
стилистические стандарты.inline_code и
code_block), чтобы сохранить синтаксис.Markdown-it предоставляет мощный инструментарий для работы с кавычками, обеспечивая гибкость, корректность и визуальную эстетику текста, что особенно важно для веб-контента, электронных книг и профессиональных публикаций.