基于 others/mermaid-develop 中的 mermaid.js 源码分析,对比当前 Go 实现的完整性。
Flowchart - 流程图
pkg/parser/flowchart.go, pkg/renderer/flowchart.gomermaid-develop/packages/mermaid/src/diagrams/flowchart/parser/flow.jisonSequence Diagram - 序列图
pkg/parser/sequence.go, pkg/renderer/sequence.gomermaid-develop/packages/mermaid/src/diagrams/sequence/parser/sequenceDiagram.jisonClass Diagram - 类图
pkg/parser/class.go, pkg/renderer/class.gomermaid-develop/packages/mermaid/src/diagrams/class/parser/classDiagram.jisonState Diagram - 状态图
pkg/parser/state.go, pkg/renderer/state.gomermaid-develop/packages/mermaid/src/diagrams/state/parser/stateDiagram.jisonER Diagram - 实体关系图
diagrams/er/parser/erDiagram.jisonerDb.js, erDetector.ts, erDiagram.ts, erRenderer.tserDiagramGantt Chart - 甘特图
diagrams/gantt/parser/gantt.jisonganttDb.js, ganttDetector.ts, ganttDiagram.ts, ganttRenderer.tsganttPie Chart - 饼图
diagrams/pie/ (使用简单解析器)pieDb.ts, pieDetector.ts, pieDiagram.ts, pieRenderer.tspieTimeline - 时间线图
diagrams/timeline/parser/timeline.jisontimelineDb.ts, timelineDetector.ts, timelineDiagram.ts, timelineRenderer.tstimelineUser Journey - 用户旅程图
diagrams/user-journey/parser/journey.jisonjourneyDb.js, journeyDetector.ts, journeyDiagram.ts, journeyRenderer.tsjourneyRequirement Diagram - 需求图
diagrams/requirement/parser/requirementDiagram.jisonrequirementDb.js, requirementDetector.ts, requirementDiagram.ts, requirementRenderer.tsrequirementDiagramQuadrant Chart - 象限图
diagrams/quadrant-chart/parser/quadrant.jisonquadrantDb.ts, quadrantDetector.ts, quadrantDiagram.ts, quadrantRenderer.tsquadrantChartBlock Diagram - 块图
diagrams/block/parser/block.jisonblockDB.ts, blockDetector.ts, blockDiagram.ts, blockRenderer.tsblockC4 Diagram - C4 架构图
diagrams/c4/parser/c4Diagram.jisonc4Db.js, c4Detector.ts, c4Diagram.ts, c4Renderer.jsC4Context, C4Container, C4Component, C4Dynamic, C4DeploymentMindmap - 思维导图
diagrams/mindmap/parser/mindmap.jisonmindmapDb.ts, mindmapDetector.ts, mindmapDiagram.ts, mindmapRenderer.tsmindmapKanban - 看板图
diagrams/kanban/parser/kanban.jisonkanbanDb.ts, kanbanDetector.ts, kanbanDiagram.ts, kanbanRenderer.tskanbanSankey Diagram - 桑基图
diagrams/sankey/parser/sankey.jisonsankeyDb.ts, sankeyDetector.ts, sankeyDiagram.ts, sankeyRenderer.tssankeyXY Chart - XY 图表
diagrams/xychart/parser/xychart.jisonxychartDb.ts, xychartDetector.ts, xychartDiagram.ts, xychartRenderer.tsxychartGit Graph - Git 图
diagrams/git/gitGraphDb.js, gitGraphDetector.ts, gitGraphDiagram.ts, gitGraphRenderer.tsgitGraphArchitecture Diagram - 架构图
diagrams/architecture/architectureDb.ts, architectureDetector.ts, architectureDiagram.ts, architectureRenderer.tsarchitectureInfo - 信息图
diagrams/info/infoDb.ts, infoDetector.ts, infoDiagram.ts, infoRenderer.tsinfoPacket - 数据包图
diagrams/packet/db.ts, parser.ts, packetDetector.ts, packetDiagram.ts, packetRenderer.tspacketRadar Chart - 雷达图
diagrams/radar/db.ts, parser.ts, radarDetector.ts, radarDiagram.ts, radarRenderer.tsradarTreemap - 树图
diagrams/treemap/db.ts, parser.ts, treemapDetector.ts, treemapDiagram.ts, treemapRenderer.tstreemap当前已在 pkg/ast/other_diagrams.go 中定义了部分 AST 结构:
需要新增的 AST 结构:
当前在 pkg/renderer/mermaid.go 中为未实现的类型提供了占位符渲染器。需要完整实现这些渲染器。
为每个新图表类型创建:
pkg/ast/{diagram_name}.go - AST 结构定义
pkg/parser/{diagram_name}.go - 解析器实现
pkg/renderer/{diagram_name}.go - 渲染器实现
cmd/demo-{diagram_name}/main.go - 演示程序
others/mermaid-develop/packages/mermaid/src/diagrams/*/parser/*.jison*Db.ts 或 *db.js*Renderer.ts 或 *renderer.js*Types.ts总计: mermaid.js 支持 19+ 种主要图表类型,当前 Go 实现仅覆盖了 21%。