unified
/unified 不加载默认解析器,也不加载 React。它把处理管线拆成三个 unified 插件,适合已经有处理器、需要在中间插入自定义转换的场景。
Warning
raw 模式不会自动补上安全阶段,也不会替你安排插件顺序。需要固定的安全顺序时,优先使用 prepareWikitext。
典型处理器
wikitextParse
- 把源码解析为
WikitextDocument,写入 VFile。 - 返回一份独立的工作树;同一个 VFile 再次解析会重置库字段,不清空调用方其他
data。 - 必须显式提供解析器;
/unified不会隐式加载wikiparser-node。
wikitextRehype
- 读取 VFile 中的解析结果,使用处理器实际传入的树,而不是缓存的旧树。
- 校验工作树结构与预算、重新分配 id、转换为 HAST。
- 保存尚未执行安全阶段的准备上下文。
- 选项只包含准备设置(解析函数、
policy、labels、headingIdStrategy与handlers)。 - 不执行
wikitextPlugins/rehypePlugins;显式传入这两个字段(包括空数组)会抛PREPARE_FAILED。插件应通过外层处理器的.use(...)注册。
wikitextFinalize
- 必须在所有 rehype 插件之后调用。
- 完成清洗与最终整理,并把
wikitextRenderDocument写入 VFile。 - 显式
headingIdStrategy优先于准备设置,并同时用于最终标题与快照 meta。 - 之后不能再插入内容;跳过它的 HAST 不能作为渲染文档。
错误与前置条件
- 缺少
wikitextParse时,wikitextRehype抛WikitextPrepareError("INVALID_DOCUMENT"),stage为prepare。 - 缺少
wikitextRehype时,wikitextFinalize抛WikitextPrepareError("PREPARE_FAILED")。 - 这些错误不会自动修复插件顺序;请检查处理器链。