* 默瓦尔
世界上第一个 零依赖性 美人鱼图验证器。 即时语法验证,不使用CLI调用或重依赖.
为什么是Merval?
厌倦安装 @mermaid-js/mermaid-cli 及其400+依赖性(Puppeter, Chromium等)只是为了验证一个简单的图表? 马华 以零依赖性提供即时美人鱼语法验证.
- ⚡ 即时: 没有 CLI 呼叫, 没有外部进程
- 🪶 无依赖: 纯 JavaScript, 无 Puppeteer, 无铬
- 🎯 100%兼容:针对美人鱼CLI v11.12.0进行测试
- 🚀 闪电快: 直接解析, 不进行高端渲染
- 🛡️ 类型安全: 以 TypeScript 为强固验证而建
支持的图表类型
- 流程图(图/流程图)
- 序列图
- 类图
- 状态图
- 实体关系图
- 用户行程
- 甘特图
- 派图
- 图形
- 思维图
- 时间线
- xychart-beta (栏/行图)
- 块-β(块图)
* 安装
# Using npm
npm install @aj-archipelago/merval
# Using yarn
yarn add @aj-archipelago/merval
# Using pnpm
pnpm add @aj-archipelago/merval
QQ 快速启动
import { validateMermaid } from '@aj-archipelago/merval';
// Instant validation - no CLI, no dependencies!
const result = validateMermaid(`
graph TD
A[Start] --> B{Decision}
B -->|Yes| C[Process A]
B -->|No| D[Process B]
C --> E[End]
D --> E[End]
`);
console.log(result.isValid); // true/false
console.log(result.diagramType); // 'flowchart'
console.log(result.errors); // [] or array of error objects
美人鱼版本相容性
此校验符是针对 美人鱼 CLI v11.12.0 确保100%的兼容性。 它被验证的版本的库音轨可以警告潜在的相容性问题.
版本信息
import { getMermaidVersionInfo, isMermaidVersionSupported } from '@aj-archipelago/merval';
// Get version compatibility info
const versionInfo = getMermaidVersionInfo();
console.log(versionInfo);
// {
// validatedAgainst: "11.12.0",
// lastValidated: "2024-10-15",
// cliVersion: "@mermaid-js/[email protected]"
// }
// Check if a specific version is supported
console.log(isMermaidVersionSupported("11.12.0")); // true
console.log(isMermaidVersionSupported("12.0.0")); // false
版本- 软件验证
import { validateMermaid } from '@aj-archipelago/merval';
// Basic validation (no version check)
const result = validateMermaid(mermaidCode);
// Validate with version compatibility check
const result = validateMermaid(mermaidCode, "12.0.0");
if (!result.isValid && result.errors.some(e => e.code === 'VERSION_MISMATCH')) {
console.log('Warning: This validator was not tested against Mermaid 12.0.0');
}
更新美人鱼版本兼容性
当更新此验证符以使用新的美人鱼版本时, 请使用所提供的脚本 :
# Update to a new Mermaid version
npm run update-version 12.0.0 2024-11-01
# Or manually run the script
node scripts/update-version.js 12.0.0 2024-11-01
此脚本将 :
- 更新
package.json带有新版本信息 - 更新
src/version.ts新版本常数 - 构建工程
- 运行所有测试
- 为完全兼容性测试提供下一步
API 密码
import { validateMermaid, isValidMermaid, getDiagramType } from '@aj-archipelago/merval';
// Basic validation
const result = validateMermaid(`
graph TD
A[Start] --> B{Decision}
B -->|Yes| C[Process A]
B -->|No| D[Process B]
C --> E[End]
D --> E[End]
`);
console.log(result.isValid); // true/false
console.log(result.diagramType); // 'flowchart'
console.log(result.errors); // [] or array of error objects
// Simple boolean validation
const isValid = isValidMermaid(mermaidCode); // true/false
// Get diagram type only
const diagramType = getDiagramType(mermaidCode); // 'flowchart', 'sequence', etc.
// Validation with version compatibility check
const result = validateMermaid(mermaidCode, "12.0.0");
if (!result.isValid && result.errors.some(e => e.code === 'VERSION_MISMATCH')) {
console.log('Version compatibility warning');
}
错误格式
{
isValid: false,
diagramType: 'flowchart',
errors: [
{
line: 2,
column: 15,
message: "Missing arrow between nodes",
code: "MISSING_ARROW",
suggestion: "Add '-->' to connect nodes"
}
]
}
为什么是Merval?
传统美人鱼鉴定问题
# Traditional approach - heavy dependencies
npm install @mermaid-js/mermaid-cli
# Installs 400+ packages including:
# - puppeteer (Chromium browser)
# - canvas, cairo, pango, etc.
# - Native dependencies requiring compilation
Merval解决方案
# Merval - zero dependencies
npm install merval
# Installs only merval - that's it!
马华 给予你与美人鱼CLI相同的验证精度,但:
- 零依赖关系 - 没有Puppeteer,没有铬,没有本土汇编
- 即时验证 - 没有CLI进程产卵,没有文件 I/ 欧
- 同样准确 - 100%符合人鱼CLI v11.12.0
- 类型脚本支持 - 完全类型的安全出盒子
执行战略
- 语法分析: 将投入输入有意义的组件
- 语法分析: 构建 AST 并验证结构
- 语义验证: 检查关系和参考文献
- 图解规则: 每种类型都有独特的验证
建筑
src/
├── lexer.js # Tokenize input
├── parser.js # Parse tokens into AST
├── validators/
│ ├── flowchart.js # Flowchart-specific validation
│ ├── sequence.js # Sequence diagram validation
│ ├── xychart.js # xychart-beta validation
│ └── ...
├── ast/ # AST node definitions
└── index.js # Main API
许可证
MIT - 与美人鱼.js MIT许可证相容