Skip to content

Конфигурация

Структура Config

Config — это единая структура конфигурации библиотеки HTML, охватывающая управление ресурсами, безопасность, извлечение контента, форматы вывода и фильтрацию ссылок.

Управление ресурсами

ПолеТипПо умолчаниюОписание
MaxInputSizeint52428800 (50 МБ)Максимальный размер ввода (байты)
MaxCacheEntriesint2000Максимальное количество записей в кэше
CacheTTLtime.DurationВремя жизни записей в кэше
CacheCleanuptime.DurationИнтервал очистки кэша
WorkerPoolSizeint4Размер пула воркеров
ProcessingTimeouttime.Duration30сТайм-аут обработки

Подсказка

Установка MaxCacheEntries, CacheCleanup или ProcessingTimeout в 0 — это не ошибка, а значения с определённой семантикой (отключить кэш, отключить фоновую очистку и без тайм-аута соответственно). MaxInputSize, WorkerPoolSize и MaxDepth должны быть положительными, иначе возвращается ConfigError.

Безопасность

ПолеТипПо умолчаниюОписание
EnableSanitizationbooltrueВключить очистку контента, можно отключить только для доверенного ввода
MaxDepthint500Максимальная глубина DOM
AllowedBaseDirstring""Ограничивает файловые операции этим каталогом; пустое значение (по умолчанию) означает отсутствие ограничений. Используйте при работе с путями файлов из ненадёжных источников
AuditAuditConfigDefaultAuditConfig()Конфигурация аудита

Извлечение контента

ПолеТипПо умолчаниюОписание
ExtractArticlebooltrueВключить интеллектуальное распознавание статей
PreserveImagesbooltrueСохранять информацию об изображениях
PreserveLinksbooltrueСохранять информацию о ссылках
PreserveVideosbooltrueСохранять информацию о видео
PreserveAudiosbooltrueСохранять информацию об аудио

Форматы вывода

ПолеТипПо умолчаниюВозможные значенияОписание
InlineImageFormatstringnonenone, markdown, html, placeholderФормат встроенных изображений
InlineLinkFormatstringnonenone, markdown, htmlФормат встроенных ссылок
TableFormatstringmarkdownmarkdown, htmlФормат таблиц
Encodingstring""-Указание кодировки (пустое значение — автоопределение)

Извлечение ссылок

ПолеТипПо умолчаниюОписание
ResolveRelativeURLsbooltrueРазрешение относительных URL, необходимо задать BaseURL
BaseURLstring""Базовый URL (для разрешения относительных путей)
IncludeImagesbooltrueВключить ссылки на изображения
IncludeVideosbooltrueВключить ссылки на видео
IncludeAudiosbooltrueВключить ссылки на аудио
IncludeCSSbooltrueВключить ссылки на CSS
IncludeJSbooltrueВключить ссылки на JS
IncludeContentLinksbooltrueВключить контентные ссылки
IncludeExternalLinksbooltrueВключить внешние ссылки
IncludeIconsbooltrueВключить ссылки на иконки

Расширения

ПолеТипПо умолчаниюОписание
ScorerScorernilПользовательский скорер контента, при пустом значении используется скорер по умолчанию

Предустановки конфигурации

DefaultConfig

Сбалансированная конфигурация для общих сценариев.

go
cfg := html.DefaultConfig()

TextOnlyConfig

Извлечение только текста, отключено сохранение всех медиа и ссылок (PreserveImages, PreserveLinks, PreserveVideos, PreserveAudios установлены в false).

go
cfg := html.TextOnlyConfig()

MarkdownConfig

Оптимизация вывода в Markdown, встроенные изображения и ссылки используют формат Markdown.

go
cfg := html.MarkdownConfig()

HighSecurityConfig

Конфигурация высокой безопасности: ужесточённые ограничения, более короткие тайм-ауты, полный аудит.

go
cfg := html.HighSecurityConfig()

Значения, переопределяющие DefaultConfig():

ПолеПо умолчаниюВысокая безопасность
MaxInputSize52428800 (50 МБ)10485760 (10 МБ)
MaxCacheEntries2000500
CacheTTL30м
CacheCleanup
WorkerPoolSize42
ProcessingTimeout30с10с
MaxDepth500100
AuditDefaultAuditConfig()HighSecurityAuditConfig()

Validate

Проверка валидности конфигурации.

go
func (c Config) Validate() error
go
cfg := html.DefaultConfig()
cfg.MaxInputSize = -1
err := cfg.Validate() // Возвращает ConfigError

Ограничения валидации

Validate() применяет следующие диапазоны значений к числовым полям (при нарушении возвращается ConfigError, который можно проверить через errors.Is(err, html.ErrInvalidConfig)):

ПолеОграничениеНедопустимый пример
MaxInputSizeПоложительное и ≤ 52428800 (50 МБ)0, -1, 100000000
MaxCacheEntries0 и ≤ 100000-1, 200000
CacheTTL0-1 * time.Second
CacheCleanup0-1 * time.Minute
WorkerPoolSizeПоложительное и ≤ 2560, 512
MaxDepthПоложительное и ≤ 5000, 1000
ProcessingTimeout0-1 * time.Second
InlineImageFormatПусто / none / markdown / html / placeholder"pdf"
InlineLinkFormatПусто / none / markdown / html"pdf"
TableFormatПусто / markdown / html"csv"

Строки формата нечувствительны к регистру, а пустое значение воспринимается как значение по умолчанию (InlineImageFormat/InlineLinkFormatnone, TableFormatmarkdown). New() вызывает Validate() перед созданием Processor, поэтому недопустимая конфигурация никогда не создаёт пригодный к использованию Processor.