{"_id":"@dayinxisheng/check-mermaid","_rev":"5-a63d11bd316bad284b2a5c5d57f6ff5d","name":"@dayinxisheng/check-mermaid","dist-tags":{"latest":"0.2.1"},"versions":{"0.1.0":{"name":"@dayinxisheng/check-mermaid","version":"0.1.0","keywords":["mermaid","markdown","linter","validator"],"author":{"name":"dayinxisheng"},"license":"MIT","_id":"@dayinxisheng/check-mermaid@0.1.0","maintainers":[{"name":"dayinxisheng","email":"daxing_fujian@163.com"}],"bin":{"check-mermaid":"dist/index.js"},"dist":{"shasum":"506ace26d5b6c41bb572b761b02deda05e5fab95","tarball":"https://registry.npmjs.org/@dayinxisheng/check-mermaid/-/check-mermaid-0.1.0.tgz","fileCount":25,"integrity":"sha512-x7ZUlJR8VzkjMfH3Szc4Z8V499nbwyHAjO7C3BmLlGkYImOAZ9AipefJAEYqM2O+FNqMuZNq0EcPbWXiB6VAzQ==","signatures":[{"sig":"MEUCIDeZuJYUAjCbqhHDSaqSqKhoBP3bilBPczmnUxM0aw0qAiEA/+Fo93rS53a5dG6psS0PENWkKmSnuLBCBlT90B5kExU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":22478},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"190d53e008e98cb996131f0444bbd8516d2078a4","scripts":{"test":"vitest run","build":"tsc","verify":"node dist/index.js \"D:\\typescript_project\\open-claude-code\\.zread\\wiki\"","test:watch":"vitest"},"_npmUser":{"name":"dayinxisheng","email":"daxing_fujian@163.com"},"_npmVersion":"10.8.2","description":"检查 Markdown 文件中的 Mermaid 代码块语法","directories":{},"_nodeVersion":"20.19.2","dependencies":{"jsdom":"^29.0.1","mermaid":"^11.14.0","commander":"^12.0.0","dompurify":"^3.3.3","@types/jsdom":"^28.0.1","@types/dompurify":"^3.0.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^1.0.0","typescript":"^5.0.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/check-mermaid_0.1.0_1775295744011_0.6284746002107096","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@dayinxisheng/check-mermaid","version":"0.1.1","keywords":["mermaid","markdown","linter","validator"],"author":{"name":"dayinxisheng"},"license":"MIT","_id":"@dayinxisheng/check-mermaid@0.1.1","maintainers":[{"name":"dayinxisheng","email":"daxing_fujian@163.com"}],"bin":{"check-mermaid":"dist/index.js"},"dist":{"shasum":"65afc033fcba478a4cb3a4aaa969e3fc9b8a2fb9","tarball":"https://registry.npmjs.org/@dayinxisheng/check-mermaid/-/check-mermaid-0.1.1.tgz","fileCount":26,"integrity":"sha512-W4KjS+KGzmHUWv92UGThbXWQMdY5+Z7735wh6erbWi3TNHupxvdrjBH88RPmDtvTOBmxCcUCunBs9osu+Yo9fA==","signatures":[{"sig":"MEQCIBs7/L7rEOfd1AyjM9f4caRR4UQmqEEK2DxnrjZTPgQeAiBGE7RX6DDs7YL51dHGHRVfqhs1B4IsMoabtA1OCey02Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":24077},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"fff988d1e3f8aa6fc7da12d9678654e2cf849622","scripts":{"test":"vitest run","build":"tsc","verify":"node dist/index.js \"D:\\typescript_project\\open-claude-code\\.zread\\wiki\"","test:watch":"vitest"},"_npmUser":{"name":"dayinxisheng","email":"daxing_fujian@163.com"},"_npmVersion":"10.8.2","description":"检查 Markdown 文件中的 Mermaid 代码块语法","directories":{},"_nodeVersion":"20.19.2","dependencies":{"jsdom":"^29.0.1","mermaid":"^11.14.0","commander":"^12.0.0","dompurify":"^3.3.3","@types/jsdom":"^28.0.1","@types/dompurify":"^3.0.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^1.0.0","typescript":"^5.0.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/check-mermaid_0.1.1_1775296047075_0.09802822385908105","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@dayinxisheng/check-mermaid","version":"0.1.2","keywords":["mermaid","markdown","linter","validator"],"author":{"name":"dayinxisheng"},"license":"MIT","_id":"@dayinxisheng/check-mermaid@0.1.2","maintainers":[{"name":"dayinxisheng","email":"daxing_fujian@163.com"}],"bin":{"check-mermaid":"dist/index.js"},"dist":{"shasum":"f60410795954e445162717cbbeb988450fd0e16c","tarball":"https://registry.npmjs.org/@dayinxisheng/check-mermaid/-/check-mermaid-0.1.2.tgz","fileCount":26,"integrity":"sha512-9eODyGRLwFpxcc/31xsniYq6DSESlcg+5glOpRmv2AUC+zLiAp1gib000h1a28qQ8U6WLjBNetuEPrRYwsAGkg==","signatures":[{"sig":"MEUCIQDlC54HGETBTP9qsCI+ZZAsTAt29SOo9pXmDym9qGos9wIgFXfASDFCnhaHgYh8jLbcvP0lQa13/zpPhg7/Kw6r5HI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":24485},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"e995ebd937c96a325ed9cedc159ccfaee29061e2","scripts":{"test":"vitest run","build":"tsc","verify":"node dist/index.js \"D:\\typescript_project\\open-claude-code\\.zread\\wiki\"","test:watch":"vitest"},"_npmUser":{"name":"dayinxisheng","email":"daxing_fujian@163.com"},"_npmVersion":"11.11.0","description":"检查 Markdown 文件中的 Mermaid 代码块语法","directories":{},"_nodeVersion":"24.14.1","dependencies":{"jsdom":"^29.0.1","mermaid":"^11.14.0","commander":"^12.0.0","dompurify":"^3.3.3","@types/jsdom":"^28.0.1","@types/dompurify":"^3.0.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^1.0.0","typescript":"^5.0.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/check-mermaid_0.1.2_1775298165905_0.1622433768158862","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@dayinxisheng/check-mermaid","version":"0.2.0","keywords":["mermaid","markdown","linter","validator"],"author":{"name":"dayinxisheng"},"license":"MIT","_id":"@dayinxisheng/check-mermaid@0.2.0","maintainers":[{"name":"dayinxisheng","email":"daxing_fujian@163.com"}],"bin":{"check-mermaid":"dist/index.js"},"dist":{"shasum":"7f9c7c19c5c29fec194e95751bdfebc5a5ff4822","tarball":"https://registry.npmjs.org/@dayinxisheng/check-mermaid/-/check-mermaid-0.2.0.tgz","fileCount":16,"integrity":"sha512-Tuw21i5rrDuKEJNMNGzoITOyYlu8rsCzYuz0PH8h84q8Mb0v3/DlBfjnxUO5bN/RC/c8W/oHSh0Di1CtV0436w==","signatures":[{"sig":"MEQCIF8F9Laius0MmmomQy8W/aMlxPzn37uiA67YdSdAeVUgAiASz/db6A+O/ap2WXBiZJ+zTJUfGn5TWEFrrXUYJHRRlQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":20633},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"e995ebd937c96a325ed9cedc159ccfaee29061e2","scripts":{"test":"vitest run","build":"tsc","verify":"node dist/index.js \"D:\\typescript_project\\open-claude-code\\.zread\\wiki\"","test:watch":"vitest"},"_npmUser":{"name":"dayinxisheng","email":"daxing_fujian@163.com"},"_npmVersion":"11.11.0","description":"检查 Markdown 文件中的 Mermaid 代码块语法","directories":{},"_nodeVersion":"24.14.1","dependencies":{"jsdom":"^29.0.1","mermaid":"^11.14.0","commander":"^12.0.0","dompurify":"^3.3.3","@types/jsdom":"^28.0.1","@types/dompurify":"^3.0.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^1.0.0","typescript":"^5.0.0","@types/node":"^20.0.0","playwright-core":"^1.59.1"},"_npmOperationalInternal":{"tmp":"tmp/check-mermaid_0.2.0_1775708237089_0.7082223673045662","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"_id":"@dayinxisheng/check-mermaid@0.2.1","bin":{"check-mermaid":"dist/index.js"},"dist":{"shasum":"f775bda29eec2a2871d0e889c69ca31a8260fe1a","tarball":"https://registry.npmjs.org/@dayinxisheng/check-mermaid/-/check-mermaid-0.2.1.tgz","fileCount":16,"integrity":"sha512-9VD23tNzH04cRuSZMffLKWFySoko3zzBv8vTCycPFKJN1wjiXmP9IHZL9RjISJa0zHnFTL3995p8Yo8GlggGnw==","signatures":[{"sig":"MEUCIDxWb5/CDjo1AQILEYfX38FLLwMJK75wcpI/T9fxuTGKAiEA8q7czMcUlxOdP7LXrhj4mlqXqjSq6Wx/ZqOO1FVm7ao=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDzL9xXqfJOdR5NxWcRdZ/nfwELRXYWwBzL82SmjeyxGgIhAKTJYHpn+5dwbU24AggtaevJqZBnqxYCn0EhERrUINTK"}],"unpackedSize":21864},"main":"dist/index.js","name":"@dayinxisheng/check-mermaid","type":"module","types":"dist/index.d.ts","author":{"name":"dayinxisheng"},"gitHead":"59de7fda4801c024e7996a85b112699c08381491","license":"MIT","scripts":{"test":"vitest run","build":"tsc","verify":"node dist/index.js \"D:\\typescript_project\\open-claude-code\\.zread\\wiki\"","test:watch":"vitest"},"version":"0.2.1","_npmUser":{"name":"dayinxisheng","email":"daxing_fujian@163.com"},"keywords":["mermaid","markdown","linter","validator"],"_npmVersion":"11.11.0","description":"检查 Markdown 文件中的 Mermaid 代码块语法","directories":{},"maintainers":[{"name":"dayinxisheng","email":"daxing_fujian@163.com"}],"_nodeVersion":"24.14.1","dependencies":{"jsdom":"^29.0.1","mermaid":"^11.14.0","commander":"^12.0.0","dompurify":"^3.3.3","@types/jsdom":"^28.0.1","@types/dompurify":"^3.0.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^1.0.0","typescript":"^5.0.0","@types/node":"^20.0.0","playwright-core":"^1.59.1"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/check-mermaid_0.2.1_1788506504541_0.5526084815994701"}}},"time":{"created":"2026-04-04T09:42:23.920Z","modified":"2026-09-04T07:21:44.789Z","0.1.0":"2026-04-04T09:42:24.160Z","0.1.1":"2026-04-04T09:47:27.213Z","0.1.2":"2026-04-04T10:22:46.074Z","0.2.0":"2026-04-09T04:17:17.228Z","0.2.1":"2026-09-04T07:21:44.627Z"},"author":{"name":"dayinxisheng"},"license":"MIT","keywords":["mermaid","markdown","linter","validator"],"description":"检查 Markdown 文件中的 Mermaid 代码块语法","maintainers":[{"name":"dayinxisheng","email":"daxing_fujian@163.com"}],"readme":"# @dayinxisheng/check-mermaid\n\n检查 Markdown 文件中的 Mermaid 代码块语法。\n\n## 安装\n\n```bash\nnpm install -g @dayinxisheng/check-mermaid\n```\n\n或使用 npx：\n\n```bash\nnpx @dayinxisheng/check-mermaid <dir>\n```\n\n## 更新\n\n```bash\nnpm update -g @dayinxisheng/check-mermaid\n```\n\n或重新安装：\n\n```bash\nnpm install -g @dayinxisheng/check-mermaid@latest\n```\n\n## 使用\n\n```bash\ncheck-mermaid <dir> [options]\n```\n\n### 参数\n\n| 参数 | 说明 |\n|------|------|\n| `<dir>` | 要扫描的目录路径 |\n\n### 选项\n\n| 选项 | 说明 |\n|------|------|\n| `-v, --version` | 显示版本号 |\n| `-o, --output <file>` | 输出报告到 Markdown 文件 |\n\n### 示例\n\n```bash\n# 检查 docs 目录中的 Markdown 文件\ncheck-mermaid ./docs\n\n# 检查并输出报告到文件\ncheck-mermaid ./docs -o report.md\n\n# 使用 npx\nnpx @dayinxisheng/check-mermaid ./docs\n```\n\n## 输出示例\n\n### 控制台输出\n\n全部通过时：\n\n```\n✓ 检查完成：扫描了 12 个 Markdown 文件，共 35 个 mermaid 代码块，全部验证通过！\n```\n\n发现错误时：\n\n```\nFile: docs/example.md\n  Lines: 10-15\n  Error: Parse error on line 3:\n  expecting 'SEMI', got '}'\n```\n\n### Markdown 报告\n\n```markdown\n# Mermaid 检查报告\n\n共发现 2 个错误，分布在 1 个文件中。\n\n## docs/example.md\n\n| 行号 | 错误信息 |\n|------|----------|\n| 10-15 | Parse error on line 3... |\n```\n\n## 退出码\n\n| 退出码 | 说明 |\n|--------|------|\n| 0 | 未发现错误 |\n| 1 | 发现错误或参数无效 |\n\n## API\n\n也可以作为模块使用：\n\n```typescript\nimport { scanMarkdownFiles, parseFile, validateBlocks } from '@dayinxisheng/check-mermaid'\n\n// 扫描目录中的 Markdown 文件\nconst files = scanMarkdownFiles('./docs')\n\n// 解析文件中的 mermaid 代码块\nconst blocks = parseFile('./docs/example.md')\n\n// 验证代码块\nconst errors = await validateBlocks(blocks)\n```\n\n### 浏览器渲染验证（高级）\n\n除了基于 jsdom 的语法检查，还提供基于真实浏览器渲染的验证，能捕获渲染阶段的错误（如 subgraph 与节点同名导致的 cycle 错误）：\n\n```typescript\nimport { browserValidateBlock, browserValidateBlocks, closeBrowser } from '@dayinxisheng/check-mermaid'\n\n// 验证单个代码块（使用系统 Chrome 渲染）\nconst error = await browserValidateBlock(block)\n\n// 批量验证\nconst errors = await browserValidateBlocks(blocks)\n\n// 使用完毕后关闭浏览器\nawait closeBrowser()\n```\n\n> 需要系统已安装 Chrome 浏览器，并安装 `playwright-core` 依赖。\n\n## License\n\nMIT\n","readmeFilename":"README.md"}