SuperAPI AI 工具集

mdx-sanitizer

通用与其它

查看项目

更新于 10-15 23:24

技能介绍

用途:MDX Sanitizer 是一个面向 Docusaurus 构建的 MDX 内容清理工具,用于避免 MDX 2.x 将未转义的 < 和 { 当作 JSX 语法而导致的构建失败。

主要能力:可检测并修复 TypeScript 泛型(如 Promise<T>、Array<string>、Map<K, V>)、比较表达式(<100ms、<=、>=)、箭头(-->、<--、->)、无效标签(正文中的 <link>、<tag> 占位符)以及空尖括号 <> 等模式。转义策略使用 HTML 实体,例如 < 转为 <、> 转为 >;代码块(``` 或 `)内的内容会自动保护,不会被转义。

使用方式:在 website 目录下运行 npm run sanitize:mdx 进行干跑检查,加 --verbose 查看详细输出;运行 npm run sanitize:mdx -- --fix 或 npm run fix:mdx 修复全部问题。也可通过编程接口使用:import { sanitizeForMdx, validateMdxSafety, isMdxSafe } from './lib/mdx-sanitizer';。

三层防护:同步时清理(syncSkillDocs.ts、syncSkillSubpages.ts、doc-generator.ts)、提交前校验(git pre-commit 钩子调用 validate-brackets.js)、构建时校验(prebuild 中运行 npm run validate:all)。

适用场景:从 .claude/skills/ 同步到 website/docs/ 的文档生成流程,以及包含技术文档、代码示例的 Docusaurus 站点。

限制与排查:若构建仍失败,可依次运行 npm run clear、npm run sanitize:mdx -- --fix、npm run build。若合法 JSX 组件被误转义,需确认其使用 PascalCase 且为有效 HTML5 元素;边缘情况可手动使用反引号、围栏代码块或 HTML 实体转义。具体收费、平台支持等信息暂未提供。