@aj-archipelago/merval

中文文档
1.0.7发布于 2025/11/17MITTypeScriptES Module零依赖近 30 天下载 7817

世界首个零依赖性美人鱼图验证器. 即时语法验证,不使用CLI调用或重依赖.

中文使用文档
文档目录16 节
  1. 为什么是Merval?
  2. 支持的图表类型
  3. * 安装
  4. QQ 快速启动
  5. 美人鱼版本相容性
  6. 版本信息
  7. 版本- 软件验证
  8. 更新美人鱼版本兼容性
  9. API 密码
  10. 错误格式
  11. 为什么是Merval?
  12. 传统美人鱼鉴定问题
  13. Merval解决方案
  14. 执行战略
  15. 建筑
  16. 许可证

* 默瓦尔

世界上第一个 零依赖性 美人鱼图验证器。 即时语法验证,不使用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

此脚本将 :

  1. 更新 package.json 带有新版本信息
  2. 更新 src/version.ts 新版本常数
  3. 构建工程
  4. 运行所有测试
  5. 为完全兼容性测试提供下一步

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
  • 类型脚本支持 - 完全类型的安全出盒子

执行战略

  1. 语法分析: 将投入输入有意义的组件
  2. 语法分析: 构建 AST 并验证结构
  3. 语义验证: 检查关系和参考文献
  4. 图解规则: 每种类型都有独特的验证

建筑

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许可证相容


由图迷为图迷所建.

版本与发布记录

@aj-archipelago/merval 共发布 7 个版本,首次发布于 2025/10/16;过去 12 个月发布了 4 个版本。

版本发布日期距今
1.0.7latest2025/11/1711 个月前
1.0.62025/11/1711 个月前
1.0.52025/11/1711 个月前
1.0.42025/11/1211 个月前
1.0.32025/11/031 年前
1.0.22025/10/221 年前

关于 @aj-archipelago/merval 的常见问题

@aj-archipelago/merval 是什么?

世界首个零依赖性美人鱼图验证器. 即时语法验证,不使用CLI调用或重依赖.

如何安装 @aj-archipelago/merval?

在项目目录运行 npm install @aj-archipelago/merval,或使用 pnpm add / yarn add / bun add。

@aj-archipelago/merval 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@aj-archipelago/merval 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@aj-archipelago/merval 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=18.0.0。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@aj-archipelago/merval 可以商用吗?

@aj-archipelago/merval 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@aj-archipelago/merval 的下载量有多少?

根据 npm 官方下载统计,@aj-archipelago/merval 在 2026/10/05 – 2026/11/03 这 30 天内被下载 7,817 次,日均约 261 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@aj-archipelago/merval 还在维护吗?

最新版本 1.0.7 发布于 2025/11/17(11 个月前);至今共发布 7 个版本,其中过去 12 个月发布了 4 个;首次发布于 2025/10/16。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。