UNPKG

html-content-processor

Version:

A professional library for processing, cleaning, filtering, and converting HTML content to Markdown. Features advanced customization options, presets, plugin support, fluent API, and TypeScript integration for reliable content extraction.

144 lines (143 loc) 3.72 kB
import { Plugin, PluginContext } from './types'; /** * Global plugin registry */ declare class PluginRegistry { private plugins; private initializationOrder; /** * Register a new plugin * @param plugin Plugin to register */ register(plugin: Plugin): void; /** * Unregister a plugin * @param name Plugin name to unregister */ unregister(name: string): void; /** * Get a registered plugin * @param name Plugin name * @returns Plugin instance or undefined */ get(name: string): Plugin | undefined; /** * Check if a plugin is registered * @param name Plugin name * @returns True if plugin is registered */ has(name: string): boolean; /** * Get all registered plugins * @returns Array of all plugins */ getAll(): Plugin[]; /** * Get all plugin names in registration order * @returns Array of plugin names */ getNames(): string[]; /** * Apply filter plugins to HTML content * @param html HTML content to process * @param context Plugin context * @returns Processed HTML content */ applyFilterPlugins(html: string, context: PluginContext): string; /** * Apply conversion plugins to Markdown content * @param markdown Markdown content to process * @param context Plugin context * @returns Processed Markdown content */ applyConvertPlugins(markdown: string, context: PluginContext): string; /** * Clear all plugins */ clear(): void; /** * Get registry statistics * @returns Registry statistics */ getStats(): { total: number; withFilter: number; withConvert: number; withInit: number; withDestroy: number; }; } declare const globalRegistry: PluginRegistry; /** * Register a plugin globally * @param plugin Plugin to register */ export declare function usePlugin(plugin: Plugin): void; /** * Unregister a plugin globally * @param name Plugin name to unregister */ export declare function removePlugin(name: string): void; /** * Get a registered plugin * @param name Plugin name * @returns Plugin instance or undefined */ export declare function getPlugin(name: string): Plugin | undefined; /** * Check if a plugin is registered * @param name Plugin name * @returns True if plugin is registered */ export declare function hasPlugin(name: string): boolean; /** * Get all registered plugins * @returns Array of all plugins */ export declare function getAllPlugins(): Plugin[]; /** * Get all plugin names * @returns Array of plugin names */ export declare function getPluginNames(): string[]; /** * Clear all plugins */ export declare function clearPlugins(): void; /** * Get plugin registry statistics * @returns Registry statistics */ export declare function getPluginStats(): { total: number; withFilter: number; withConvert: number; withInit: number; withDestroy: number; }; /** * Export the registry for internal use * @internal */ export { globalRegistry as pluginRegistry }; /** * Built-in plugins for common use cases */ export declare const builtinPlugins: { /** * Plugin to remove advertisement elements */ adRemover: Plugin; /** * Plugin to remove social media widgets */ socialRemover: Plugin; /** * Plugin to clean up Markdown formatting */ markdownCleaner: Plugin; }; /** * Register all built-in plugins */ export declare function useBuiltinPlugins(): void;