Skip to content

配置

Config 结构体

Config 是 HTML 库的统一配置结构体,涵盖资源管理、安全、内容提取、输出格式和链接过滤。

资源管理

字段类型默认值说明
MaxInputSizeint52428800 (50MB)最大输入大小(字节),取值范围 152428800
MaxCacheEntriesint2000缓存最大条目数,设为 0 禁用缓存(上限 100000
CacheTTLtime.Duration1h缓存过期时间,不能为负
CacheCleanuptime.Duration5m过期缓存的后台清理间隔,设为 0 禁用后台清理
WorkerPoolSizeint4批量处理的工作池大小,取值范围 1256
ProcessingTimeouttime.Duration30s单文档处理超时,设为 0 表示不限时

零值语义

MaxCacheEntriesCacheCleanupProcessingTimeout 设为 0 不是错误,而是有明确语义(分别表示禁用缓存、禁用后台清理、不限时)。MaxInputSizeWorkerPoolSizeMaxDepth 则必须为正数,否则触发 ConfigError

安全

字段类型默认值说明
EnableSanitizationbooltrue启用内容清洗,仅对可信输入可禁用
MaxDepthint500最大 DOM 深度,取值范围 1500
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

仅提取纯文本,禁用所有媒体和链接保留(PreserveImagesPreserveLinksPreserveVideosPreserveAudios 均设为 false)。

go
cfg := html.TextOnlyConfig()

MarkdownConfig

优化 Markdown 输出,内联图片和链接使用 Markdown 格式。

go
cfg := html.MarkdownConfig()

HighSecurityConfig

高安全配置:缩减限制、更短超时、完整审计。

go
cfg := html.HighSecurityConfig()

相比 DefaultConfig() 的覆盖值:

字段默认值高安全值
MaxInputSize52428800 (50MB)10485760 (10MB)
MaxCacheEntries2000500
CacheTTL1h30m
CacheCleanup5m1m
WorkerPoolSize42
ProcessingTimeout30s10s
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(50MB)0-1100000000
MaxCacheEntries0 且 ≤ 100000-1200000
CacheTTL0-1 * time.Second
CacheCleanup0-1 * time.Minute
WorkerPoolSize正数且 ≤ 2560512
MaxDepth正数且 ≤ 50001000
ProcessingTimeout0-1 * time.Second
InlineImageFormat空 / none / markdown / html / placeholder"pdf"
InlineLinkFormat空 / none / markdown / html"pdf"
TableFormat空 / markdown / html"csv"

格式字符串大小写不敏感且空值视为默认(InlineImageFormat/InlineLinkFormatnoneTableFormatmarkdown)。New() 在创建 Processor 前会先调用 Validate(),因此无效配置不会产出可用的 Processor。