A MoonBit project that converts UML strings to SVG, aiming to align with PlantUML's behavior, including its layout.
See compatibility notes for the documented upstream differences, deferred peripheral features, verification scope, and explicitly deferred formula embedding.
| Sequence | Class |
|---|---|
| Mindmap | JSON |
|---|---|
Every image above is a snapshot of an executable example in the
library README. Run moon test -p moonbit-community/uml --update
from the uml/ directory to update uml/__snapshot__/
using the local implementation. See the library README for the full gallery
and API walkthrough.
Two families are supported: the standard UML diagrams (OMG UML 2.5) and the
diagrams that only exist in PlantUML or in this project. Diagram types that
render a picture match PlantUML's DiagramType; toml and mbti are
extensions not present in PlantUML.
PlantUML has dedicated syntax for 11 of the 14 standard UML diagram types.
| Diagram | Kind | Status |
|---|---|---|
| Class | structure | done |
| Object | structure | done |
| Component | structure | done |
| Deployment | structure | done |
| Package | structure | done (class grammar) |
| Use Case | behavior | done |
| Activity | behavior | done |
| State Machine | behavior | done |
| Sequence | interaction | done |
| Timing | interaction | main SVG pipeline implemented |
| Diagram | Status |
|---|---|
| TOML | done |
| MBTI | done |
| Diagram | Status |
|---|---|
| Mindmap | done |
| WBS | main SVG pipeline implemented |
| JSON | done |
| YAML | done |
| DOT | done |
| BPMN | planned |
| Gantt | planned |
| Nwdiag family (nwdiag, seqdiag, actdiag, blockdiag, rackdiag) | planned |
| Salt / Wire | planned |
| Packet | planned |
| Chart | planned |
| Chen / IE entity-relationship | planned |
| Chronology | planned |
| Composite (legacy) | planned |
| EBNF | planned |
| Regex | planned |
| Git | planned |
| Files | planned |
| Board | planned |
| HCL | planned |
| Flow | planned |
| Ditaa | planned |
| JCCKit | planned |
WBS sources use @startwbs / @endwbs and render through
moonbit-community/uml/api.render_svg. The main SVG pipeline includes the root fork,
left/right subtrees, boxed and boxless nodes, pseudo nodes, multiline labels,
sibling auto width, cross links, and document text. Its layout follows
PlantUML's Fork, ITFComposed, and ITFLeaf; this status does not claim full
PlantUML syntax or style compatibility. Runnable sources are in
live/public/examples/wbs/.
Timing diagrams render through the same API using @startuml with robust,
concise, rectangle, binary, clock, or analog player declarations.
The main SVG pipeline follows PlantUML's TimingRuler, player frames, and
individual panel algorithms, including constraints, message projections,
notes, highlights, compact mode, and manual/hidden time axes. This status
does not claim full PlantUML syntax or style compatibility. Sources are in
live/public/examples/timing/.