Параметр silent является важной опцией при работе с
библиотекой Marked, предназначенной для преобразования
Markdown в HTML. Он позволяет контролировать поведение парсера при
обнаружении ошибок в исходном Markdown-коде.
Параметр silent используется для подавления
ошибок, возникающих во время парсинга. По умолчанию Marked
выбрасывает исключения, если встречает некорректный Markdown,
например:
# Заголовок
*Незакрытый курсив
В стандартной конфигурации это приведет к ошибке и остановке работы
парсера. При включении silent библиотека не будет
выбрасывать исключения, вместо этого ошибки обрабатываются
внутренне, а результат парсинга возвращается максимально корректно.
Тип: Boolean
Значение по умолчанию:
false
Возможные значения:
true — парсер работает в «тихом» режиме, ошибки
игнорируются.false — стандартное поведение, ошибки приводят к
выбросу исключения.const marked = require('marked');
const markdown = `
# Заголовок
*Незакрытый курсив
`;
const html = marked.parse(markdown, { silent: true });
console.log(html);
В этом примере несмотря на синтаксическую ошибку
(*Незакрытый курсив без закрывающего *),
парсер вернет HTML, содержащий максимально корректный вывод, не прерывая
выполнение скрипта.
Обработка ошибок: Включение silent
предотвращает выброс исключений, позволяя обрабатывать Markdown с
потенциальными синтаксическими ошибками. Это особенно полезно для
динамического контента, который не всегда можно гарантированно проверить
на корректность до парсинга.
Возврат HTML: При включенном silent
парсер пытается восстановить разметку и продолжить обработку оставшегося
текста. Например, незакрытые теги курсивного или полужирного текста
могут быть проигнорированы, а остальной текст будет корректно
преобразован в HTML.
Журнализация ошибок: Marked сохраняет информацию о пропущенных ошибках во внутреннем объекте, но не выбрасывает исключение. Это позволяет при необходимости реализовать собственную систему логирования ошибок Markdown без прерывания работы приложения.
Веб-приложения с пользовательским вводом:
Пользователи могут вставлять Markdown с ошибками, которые не должны
ломать страницу или компонент. silent: true обеспечивает
безопасный рендеринг.
Обработка большого объема Markdown-контента: При пакетной обработке документов даже единичные синтаксические ошибки не останавливают обработку всех файлов.
Тестирование и разработка: В режиме разработки
можно включить silent для анализа некорректного контента и
последующей отладки без остановки программы.
Параметр silent может использоваться совместно с другими
настройками Marked, например:
gfm — поддержка расширенного синтаксиса GitHub Flavored
Markdownbreaks — преобразование переносов строк в
smartLists и smartypants — улучшенные
списки и типографикаПример совместного использования:
const html = marked.parse(markdown, {
gfm: true,
breaks: true,
silent: true,
});
В этом случае парсер будет работать в расширенном Markdown-режиме, автоматически обрабатывать переносы строк, при этом игнорируя синтаксические ошибки.
silent, чтобы избежать аварийного
завершения работы приложения.false для строгой проверки Markdown и
выявления потенциальных ошибок в исходных данных.silent с собственными механизмами
логирования, анализируя внутренние объекты парсера.