解析 /parse
/parse 加载默认解析器(wikiparser-node@1.48.1 浏览器包),不加载 React。解析是同步的。
parseWikitext
使用默认配置的共享解析器,适合一次性解析或简单场景。
createWikiparser
- 默认配置为
MEDIAWIKI_CONFIG,来源是wikiparser-node@1.48.1的站点配置快照。 - 配置在工厂创建时深拷贝并归一化;之后修改原对象不会影响解析器。
- 更换配置需要创建新的解析器。
- 库不导出最小配置;需要自定义时以默认配置为基础复制并调整字段。
解析选项
有效预算按“单次解析选项 → 创建时 defaults → 共享默认值”合并。解析前统一把 CRLF / CR 归一化为 LF,预算在归一化后检查。
retainSyntax 会显著增加内存与构建成本,只在需要源码坐标或 playground 语法树时开启。
返回的文档
meta 包含:
parser/parserVersion。pageName。astSchemaVersion与可选的syntaxSchemaVersion。sourceNormalized、originalLength、retainSyntax。
同一份源码使用不同配置或 pageName 时,可能得到不同的 AST;它们属于解析输入,不属于渲染选项。
自定义适配器
createWikitextParser 不加载默认 IIFE,适合接入其他解析器:
- 适配器只把输入转换为源码语法树;归一化、预算合并、语义 AST 构建、诊断与 meta 由工厂完成。
context.limits提供有效的maxSyntaxNodes与maxDepth,适配器可以据此提前停止。- 适配器返回后,工厂仍会校验结构、源码范围与预算。
- 适配器的
name/version会写入文档 meta。
错误
节点数与深度上限属于内部防护阈值,只在触发错误时在 error.message 中给出实际生效值,不作为常量导出。