В библиотеке Marked горизонтальные линии создаются с
помощью Markdown-синтаксиса. Стандартный синтаксис для горизонтальной
линии включает три или более дефиса (---), подчеркивания
(___) или звездочки (***) на отдельной строке.
Эти символы должны быть отделены от текста пустой строкой и не могут
содержать других символов на той же строке.
Пример корректного синтаксиса:
---
***
___
Результатом преобразования через Marked будет HTML-элемент
<hr>, представляющий горизонтальную линию:
<hr>
Marked предоставляет возможность изменять поведение рендеринга через
объект options. Для горизонтальных линий ключевое
значение имеет renderer — кастомный объект, в котором
можно переопределить метод hr().
Пример создания кастомного рендерера:
const marked = require('marked');
const renderer = new marked.Renderer();
renderer.hr = function() {
return '<hr style="border: 2px solid red;">\n';
};
const markdown = '---';
const html = marked(markdown, { renderer });
console.log(html);
В результате сгенерированный HTML будет содержать стилизованную красную линию.
Горизонтальные линии могут использоваться как визуальные разделители в тексте, но важно соблюдать правила Markdown, чтобы рендеринг был корректным:
<hr>.Пример некорректного использования:
Текст перед---
Текст после
Marked преобразует это в текст без линии, поскольку дефисы не были отделены пустыми строками.
renderer.hr = function() {
return '<hr class="divider" id="section-break">';
};
renderer.hr = function() {
return '<hr oncl ick="alert(\'Разделение выполнено\')">';
};
<hr> Иногда требуется более сложная
графика:renderer.hr = function() {
return `
<svg height="2" width="100%">
<line x1="0" y1="1" x2="100%" y2="1" style="stroke:rgb(0,0,0);stroke-width:2" />
</svg>
`;
};
Некоторые глобальные опции Marked, которые могут косвенно влиять на отображение линий:
true) — включает
поддержку GitHub Flavored Markdown, без этого горизонтальные линии с
дефисами и звездочками могут не распознаваться.<hr>, но влияет на визуальное
оформление вокруг линии.---,
***, ___) для надежного распознавания
линии.С заголовками и списками:
# Заголовок
---
- Пункт 1
- Пункт 2
Рендеринг через Marked даст:
<h1>Заголовок</h1>
<hr>
<ul>
<li>Пункт 1</li>
<li>Пункт 2</li>
</ul>
С текстовыми блоками и цитатами:
> Цитата
***
Текст после линии
HTML-результат:
<blockquote>
<p>Цитата</p>
</blockquote>
<hr>
<p>Текст после линии</p>
<hr>
достаточно встроенного рендерера Marked.Горизонтальные линии в Marked — простая, но гибкая возможность создавать визуальные разделы в документах с полной поддержкой кастомизации и расширенной стилизации.