Pele 是一款专门的渲染引擎,旨在将 Mermaid 图表(一种流行的基于 Markdown 的工具,用于创建流程图、时序图和甘特图)转换为 SVG(可缩放矢量图形)格式。与许多可能需要完整浏览器环境或复杂运行时依赖来计算布局的标准 Mermaid 实现不同,Pele 的设计目标是小型化、同步化且高度可移植。它旨在直接运行在不欢迎重型依赖的环境中,例如专门的文档工具或自动化工作流。
该图片作为宣传图,突出了 Pele 渲染引擎的高性能特性。
Pele 的核心机制集中在其独立于重型运行时以及使用 CSS 变量进行样式处理上。通过利用 CSS 变量,Pele 允许用户动态自定义颜色、字体和边框半径。由于这些样式是通过 CSS 处理而非硬编码到 SVG 生成过程中,因此图表可以在无需重新渲染底层几何结构的情况下立即适应主题变化。该工具支持 Mermaid 12.1.0 版本中内置的所有图表类型,并且其解析器通过差异模糊测试(differential fuzzing)针对 Mermaid 官方解析器规范进行了验证,以确保高度准确。
虽然 Pele 提供了显著的性能优势和易于集成的特性,但它在架构上存在特定的权衡。为了保持其小型足迹和同步特性,它使用自己的布局引擎和视觉样式,而不是镜像官方 Mermaid 库的精确渲染效果。这意味着虽然它与 Mermaid 语法兼容,但最终的视觉输出在美学上可能与标准的 MermaidJS 输出略有不同。此外,对于关注打包体积的开发者,Pele 提供了一种模块化架构,允许注册单个图表类型或进行懒加载,从而确保只有必要的组件被包含在最终的应用程序中。