import { Root, RootContent } from 'mdast'; import { C as ContainerConfig, B as BlockStatus, P as ParsedBlock } from '../../index-CWuosVAK.js'; import { I as IAstBuilder, E as EngineParserOptions } from '../../types-B7GTGJc2.js'; export { b as IncremarkPlugin, c as MicromarkEngineExtension } from '../../types-B7GTGJc2.js'; import 'micromark-util-types'; import 'mdast-util-from-markdown'; import 'marked'; /** * Micromark AST 构建器(稳定模式) * * 基于 micromark + mdast-util-from-markdown * 特点: * - 更稳定可靠 * - 支持 div 内嵌 markdown * - 丰富的扩展生态 */ /** * Micromark AST 构建器 * * 使用 micromark + mdast-util-from-markdown 解析 Markdown * 适用于需要稳定性和高级特性的场景 */ declare class MicromarkAstBuilder implements IAstBuilder { private readonly options; readonly containerConfig: ContainerConfig | undefined; private readonly htmlTreeConfig; /** 缓存的扩展实例,避免每次 parse 都重新创建 */ private readonly cachedExtensions; private readonly cachedMdastExtensions; constructor(options?: EngineParserOptions); /** * 初始化并缓存扩展实例 */ private initExtensions; /** * 计算容器配置 */ private computeContainerConfig; /** * 计算 HTML 树配置 */ private computeHtmlTreeConfig; /** * 解析文本为 AST * * @param text Markdown 文本 * @returns AST */ parse(text: string): Root; /** * 将 HTML 节点转换为纯文本(当未启用 HTML 树转换时) * * @param ast AST * @returns 转换后的 AST */ private convertHtmlToText; /** * 处理块级节点 */ private processBlockChildren; /** * 处理内联节点 */ private processInlineChildren; /** * 将块级 HTML 节点转换为段落 */ private convertBlockHtmlToParagraph; /** * 将内联 HTML 节点转换为纯文本节点 */ private convertInlineHtmlToText; /** * 将 AST 节点转换为 ParsedBlock * * @param nodes AST 节点列表 * @param startOffset 起始偏移量 * @param rawText 原始文本 * @param status 块状态 * @param generateBlockId 生成块 ID 的函数(接收 startOffset 参数) * @returns ParsedBlock 列表 */ nodesToBlocks(nodes: RootContent[], startOffset: number, rawText: string, status: BlockStatus, generateBlockId: (startOffset: number) => string): ParsedBlock[]; /** * 更新配置选项 * * 注意:由于 micromark 的扩展是在 constructor 中缓存的, * 更新配置需要重新初始化扩展。 * * @param options 部分配置选项 */ updateOptions(options: Partial): void; } /** * Micromark 引擎入口(稳定模式) * * 单独导入此模块可以实现 tree-shaking,避免打包 marked 相关依赖 * * @example * ```ts * import { createMicromarkParser } from '@incremark/core/engines/micromark' * * const parser = createMicromarkParser({ gfm: true, math: true }) * ``` */ /** * 创建 Micromark 引擎的 AST 构建器 */ declare function createMicromarkBuilder(options?: EngineParserOptions): MicromarkAstBuilder; export { EngineParserOptions, IAstBuilder, MicromarkAstBuilder, createMicromarkBuilder };