Skip to content

設定

Config 構造体

Config は HTML ライブラリの統一設定構造体で、リソース管理、セキュリティ、コンテンツ抽出、出力フォーマット、リンクフィルタリングを網羅しています。

リソース管理

フィールドデフォルト値説明
MaxInputSizeint52428800 (50MB)最大入力サイズ(バイト)
MaxCacheEntriesint2000キャッシュ最大エントリ数
CacheTTLtime.Duration1hキャッシュ有効期限
CacheCleanuptime.Duration5mキャッシュクリーンアップ間隔
WorkerPoolSizeint4ワーカープールサイズ
ProcessingTimeouttime.Duration30s処理タイムアウト時間

ヒント

MaxCacheEntriesCacheCleanupProcessingTimeout0 に設定することはエラーではなく、明確な意味を持ちます(それぞれキャッシュ無効化、バックグラウンドクリーンアップ無効化、タイムアウトなしを意味します)。一方、MaxInputSizeWorkerPoolSizeMaxDepthは正の数でなければならず、そうでない場合は 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音声リンクを含める
IncludeCSSbooltrueCSS リンクを含める
IncludeJSbooltrueJS リンクを含める
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 は生成されません。