Параметр breaks в Marked отвечает за способ обработки
переносов строк в Markdown. По умолчанию Markdown игнорирует одиночные
переносы строк, объединяя текст в один абзац, если строки не разделены
пустой строкой. Параметр breaks изменяет это поведение,
заставляя Marked преобразовывать одиночные переносы строк в
<br>.
При инициализации Marked можно задать объект опций, где указывается
значение breaks:
const marked = require('marked');
marked.setOptions({
breaks: true
});
Значение параметра:
true — каждый одиночный перенос строки будет
преобразован в тег <br>.false — сохраняется стандартное поведение Markdown
(одиночные переносы строк игнорируются).Пример обработки:
const markdownString = `Это первая строка
Это вторая строка`;
const html = marked(markdownString);
console.log(html);
breaks: false результат:<p>Это первая строка
Это вторая строка</p>
breaks: true результат:<p>Это первая строка<br>
Это вторая строка</p>
Параметр breaks особенно полезен при обработке текстов
из текстовых редакторов или форм, где пользователи вводят текст с
ручными переносами строк. В стандартном Markdown такой текст без пустых
строк между абзацами будет объединен в один блок. Установка
breaks: true сохраняет визуальную структуру текста,
соответствующую вводимым пользователем переносам строк.
Пример с динамическим контентом:
function renderUserComment(comment) {
return marked(comment, { breaks: true });
}
const commentText = `Привет!
Как дела?
Это мой первый комментарий.`;
console.log(renderUserComment(commentText));
Результат:
<p>Привет!<br>
Как дела?<br>
Это мой первый комментарий.</p>
Параметр breaks работает независимо от большинства
других опций Marked, таких как gfm или
headerIds. Однако стоит учитывать:
gfm отключен, некоторые возможности Markdown
(таблицы, чекбоксы) могут быть недоступны, но breaks все
равно будет работать.sanitize: true) <br> сохраняется, так
как это разрешенный тег.Важно понимать, что breaks: true не создает новых
<p>-абзацев, а лишь добавляет <br>
внутри существующего абзаца. Для создания отдельного абзаца по стандарту
Markdown нужно оставить пустую строку между блоками текста:
Первая строка
Вторая строка
С breaks: true это преобразуется так же, как с
breaks: false, но одиночные переносы внутри абзацев будут
превращены в <br>.
breaks: true, если текст вводится напрямую
пользователями и важно сохранить визуальные переносы.breaks: false при создании контента, где
Markdown-синтаксис важнее визуальной структуры текста.<br> может
влиять на верстку при ограниченной высоте контейнера.Параметр breaks предоставляет гибкий способ
контролировать преобразование переносов строк, делая Marked более
удобным инструментом для рендеринга Markdown в HTML в условиях
динамического контента.