Skip to content

TheEightBot/Mauimaid

Repository files navigation

MermaidNet

A cross-platform .NET library for rendering Mermaid diagrams natively — no JavaScript, no WebView.

flowchart LR
    A[MermaidNet.Core] --> B[MermaidNet.Rendering.Maui]
    A --> C[MermaidNet.Rendering.Blazor]
    B --> D[MAUI App - SkiaSharp]
    C --> E[Blazor App - SVG]

Packages

Package Description NuGet
MermaidNet.Core Platform-agnostic parser, layout engine, and rendering contracts (coming soon)
MermaidNet.Rendering.Maui SkiaSharp-based renderer for .NET MAUI (coming soon)
MermaidNet.Rendering.Blazor SVG-based renderer for Blazor (Server & WASM) (coming soon)

Supported Diagram Types

All 23+ Mermaid diagram types are supported:

  • Flowchart / Graph
  • Sequence Diagram
  • Class Diagram
  • State Diagram (v1 & v2)
  • Entity Relationship Diagram
  • User Journey
  • Gantt Chart
  • Pie Chart
  • Quadrant Chart
  • Requirement Diagram
  • GitGraph
  • C4 Diagrams (Context, Container, Component, Dynamic, Deployment)
  • Mindmap
  • Timeline
  • ZenUML
  • Sankey
  • XY Chart
  • Block Diagram
  • Packet Diagram
  • Kanban
  • Architecture Diagram (beta)
  • Radar Chart (beta)
  • Treemap (beta)

Quick Start — MAUI

<!-- NuGet -->
<PackageReference Include="MermaidNet.Rendering.Maui" Version="*" />
// MauiProgram.cs
builder.UseMermaidNet();
<!-- XAML -->
<mermaid:MermaidSKView Source="flowchart TD&#x0A;A[Start] --&gt; B[End]" />

Quick Start — Blazor

<!-- NuGet -->
<PackageReference Include="MermaidNet.Rendering.Blazor" Version="*" />
// Program.cs
builder.Services.AddMermaidNet();
<!-- Component -->
<MermaidDiagram Source="@diagram" />

Architecture

MermaidNet.Core          (netstandard2.0; net8.0)
  ├── Parsing            Lexer + Pidgin parser combinators for all diagram types
  ├── Models             AST/model types for all diagram types
  ├── Layout             Platform-agnostic layout engines (Sugiyama, radial, etc.)
  └── Rendering          IRenderContext abstraction + IDiagramRenderer implementations

MermaidNet.Rendering.Maui   (net8.0-android/ios/maccatalyst/windows)
  ├── SkiaRenderContext   IRenderContext → SkiaSharp SKCanvas
  ├── MermaidSKView       SKCanvasView subclass with pan/zoom/tap
  └── MermaidGLView       SKGLView variant for GPU rendering

MermaidNet.Rendering.Blazor (net8.0, Razor Class Library)
  ├── SvgRenderContext    IRenderContext → SVG string builder
  └── MermaidDiagram      Blazor component with @((MarkupString)svg)

License

MIT — see LICENSE

About

Mermaid Diagrams for .NET Platforms

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors