Библиотека Markdown-it предоставляет гибкий механизм обработки текста и расширения стандартного синтаксиса Markdown. Одним из важных аспектов является контроль над типографикой, то есть автоматическое преобразование символов, расстановка кавычек, тире, апострофов и других элементов, влияющих на читаемость и оформление текста.
Типографические возможности реализуются через плагин
markdown-it-typographer, который встроен в
библиотеку, но требует явной активации.
const MarkdownIt = require('markdown-it');
const md = new MarkdownIt({
typographer: true
});
Флаг typographer: true включает стандартные
типографические замены. После этого Markdown-it автоматически
преобразует:
" в «ёлочки» (« ») или “умные” кавычки
(“ ”) в зависимости от локали.' в апострофы или одиночные «ёлочки»
(‘ ’).-- в длинное тире —.... в единственный символ
….Markdown-it позволяет настраивать собственные правила типографики
через объект quotes и методы плагина.
const md = new MarkdownIt({
typographer: true,
quotes: '«»„“'
});
Параметр quotes задаёт последовательность символов для
замены:
Пример:
md.render('"Пример одинарных и двойных кавычек"');
Будет преобразован в:
<p>«Пример одинарных и двойных кавычек»</p>
Стандартный механизм превращает двойное тире -- в
длинное тире —. Для более тонкой настройки можно
использовать регулярные выражения в плагинах или собственные
inline-правила.
md.core.ruler.push('custom_dash', function(state) {
state.src = state.src.replace(/ - /g, ' — ');
});
Эта функция заменяет одиночные дефисы, окружённые пробелами, на длинное тире. Порядок добавления правил критичен: новые правила должны выполняться после стандартной обработки, чтобы не ломать другие преобразования.
Markdown-it позволяет создавать свои сокращения и спецсимволы через
typographer:
md.use(require('markdown-it-replace'), {
patterns: [
{ regex: /\(c\)/gi, replacement: '©' },
{ regex: /\(r\)/gi, replacement: '®' },
{ regex: /\(tm\)/gi, replacement: '™' }
]
});
Каждое выражение в массиве patterns заменяет найденный
текст на указанный символ. Это особенно удобно для автоматической замены
авторских обозначений или математических сокращений.
По умолчанию Markdown-it использует европейские правила типографики, но при необходимости их можно переопределять через собственные функции рендера.
md.renderer.rules.text = function(tokens, idx) {
return tokens[idx].content.replace(/"/g, '«»');
};
Этот метод позволяет заменить любой текстовый токен на кастомизированный, сохраняя при этом все остальные преобразования Markdown.
quotes: выбор
символов для двойных и одинарных кавычек.core.ruler или inline-правила.renderer.rules.typographer: true только
если требуется точная типографика, так как это добавляет дополнительную
обработку текста.Типографические возможности Markdown-it делают текст более читабельным и эстетически аккуратным без ручной коррекции символов. Правильная настройка плагина и расширений позволяет адаптировать библиотеку под любые требования оформления и локализации.