FoggyBalrog.MermaidDotNet
0.5.0
See the version list below for details.
dotnet add package FoggyBalrog.MermaidDotNet --version 0.5.0
NuGet\Install-Package FoggyBalrog.MermaidDotNet -Version 0.5.0
<PackageReference Include="FoggyBalrog.MermaidDotNet" Version="0.5.0" />
paket add FoggyBalrog.MermaidDotNet --version 0.5.0
#r "nuget: FoggyBalrog.MermaidDotNet, 0.5.0"
// Install FoggyBalrog.MermaidDotNet as a Cake Addin #addin nuget:?package=FoggyBalrog.MermaidDotNet&version=0.5.0 // Install FoggyBalrog.MermaidDotNet as a Cake Tool #tool nuget:?package=FoggyBalrog.MermaidDotNet&version=0.5.0
MermaidDotNet
<img src="https://raw.githubusercontent.com/FoggyBalrog/MermaidDotNet/main/mermaid.png" alt="Mermaid icon" width="100"/>
A .NET library to generate Mermaid diagrams code.
[!WARNING]
Still under development. Not ready for production.
Compatibility
The library targets .NET Standard 2.1, that is notably compatible with .NET Core 3.0 and later, .NET 5.0 and later, and Mono 6.4 and later.
See details on the package frameworks tab on nuget.org or on Microsoft Learn.
Quick Start
The following code samples show how to create a simple Mermaid diagram of each implemented diagram type.
Flowchart
string diagram = Mermaid
.Flowchart()
.AddNode("N1", out var n1)
.AddNode("N2", out var n2)
.AddNode("N3", out var n3)
.AddLink(n1, n2, "some text")
.AddLink(n2, n3)
.Build();
Read more at docs/flowchart.md.
Sequence diagram
string diagram = Mermaid
.SequenceDiagram()
.AddParticipant("Alice", out var a)
.AddParticipant("Bob", out var b)
.SendMessage(a, b, $"Hello {b.Name}!")
.SendMessage(b, a, $"Hello {a.Name}!")
.Build();
Read more at docs/sequence-diagram.md.
Class diagram
var diagram = Mermaid
.ClassDiagram()
.AddClass("Animal", out var animal)
.AddClass("Dog", out var dog)
.AddProperty(animal, "int", "Age")
.AddMethod(animal, null, "Breathe")
.AddMethod(animal, "void", "Eat", parameters:
[
("Food", "food")
])
.AddMethod(dog, "Sound", "Bark", parameters:
[
("int", "times"),
("int", "volume")
])
.AddRelationship(animal, dog, RelationshipType.Inheritance, label: "A dog is an animal")
.Build();
Read more at docs/class-diagram.md.
State diagram
var diagram = Mermaid
.StateDiagram()
.AddState("State 1", out var s1)
.AddState("State 2", out var s2)
.AddTransitionFromStart(s1)
.AddStateTransition(s1, s2)
.AddTransitionToEnd(s2)
.Build();
Read more at docs/state-diagram.md.
Entity relationship diagram
string diagram = Mermaid
.EntityRelationshipDiagram()
.AddEntity("Customer", out var c)
.AddEntity("Order", out var o)
.AddEntity("Product", out var p)
.AddRelationship(Cardinality.ExactlyOne, c, Cardinality.ZeroOrMore, o, "places")
.AddRelationship(Cardinality.ExactlyOne, o, Cardinality.OneOrMore, p, "contains")
.Build();
Read more at docs/entity-relationship-diagram.md.
User journey diagram
var diagram = Mermaid
.UserJourneyDiagram()
.AddTask("Task 1", 1, "Actor 1", "Actor 2")
.AddTask("Task 2", 2)
.AddSection("Section 1")
.AddTask("Task 3", 3)
.AddTask("Task 4", 4, "Actor 3")
.AddSection("Section 2")
.AddTask("Task 5", 5, "Actor 1", "Actor 3")
.AddTask("Task 6", 6, "Actor 2")
.Build();
Read more at docs/user-journey-diagram.md.
Gantt diagram
string diagram = Mermaid
.GanttDiagram()
.AddTask("Foo", Date("2024-05-01"), Date("2024-05-05"), out _)
.AddTask("Bar", Date("2024-05-08"), Date("2024-05-12"), out _)
.Build();
Read more at docs/gantt-diagram.md.
Pie chart
var pieChart = Mermaid
.PieChart()
.AddDataSet("Label1", 42.7)
.AddDataSet("Label2", 57.3)
.Build();
Read more at docs/pie-chart.md.
Timeline diagram
string diagram = Mermaid
.TimelineDiagram("Some title")
.AddEvents("2021", "Event 1", "Event 2")
.AddEvents("2022", "Event 3")
.AddEvents("2023", "Event 4", "Event 5", "Event 6")
.Build();
Read more at docs/timeline-diagram.md.
License
This project is licensed under the MIT License. See the LICENSE file for details.
Credits
Mermaid icon created by Smashicons on Flaticon.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
.NET Core | netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.1 is compatible. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.1
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
0.14.0 | 72 | 11/5/2024 |
0.13.0 | 441 | 9/20/2024 |
0.12.0 | 130 | 8/13/2024 |
0.11.0 | 394 | 7/23/2024 |
0.10.0 | 83 | 7/8/2024 |
0.9.0 | 104 | 6/14/2024 |
0.8.0 | 93 | 6/13/2024 |
0.7.0 | 359 | 5/23/2024 |
0.6.0 | 78 | 5/13/2024 |
0.5.0 | 213 | 5/2/2024 |
0.4.0 | 115 | 4/29/2024 |
0.3.0 | 115 | 4/26/2024 |
0.2.0 | 153 | 4/16/2024 |
0.1.0 | 117 | 4/16/2024 |