D2Sharp is a .NET wrapper for the D2 diagramming library, allowing you to create diagrams programmatically in your .NET applications.
You can install D2Sharp via NuGet Package Manager:
Install-Package D2Sharp
Or via .NET CLI:
dotnet add package D2Sharp
Here's a basic example of how to use D2Sharp:
using D2Sharp;
using Microsoft.Extensions.Logging;
// Create a logger (optional)
var loggerFactory = LoggerFactory.Create(builder => builder.AddConsole());
var logger = loggerFactory.CreateLogger<D2Wrapper>();
// Create an instance of D2Wrapper
var wrapper = new D2Wrapper(logger);
// Define your D2 script
var script = @"
direction: right
A -> B -> C
";
// Render the diagram
try
{
string svg = wrapper.RenderDiagram(script);
// Use the SVG string as needed (e.g., save to file, display in a web page)
}
catch (Exception ex)
{
Console.WriteLine($"Error rendering diagram: {ex.Message}");
}
The RenderDiagram
method now returns a RenderResult
object, which includes both the rendered SVG (if successful) and detailed error information (if rendering failed). Here's how you can use it:
var wrapper = new D2Wrapper();
string script = @"
A -> B
B -> // This line has an error
C -> D
";
var result = wrapper.RenderDiagram(script);
if (result.IsSuccess)
{
Console.WriteLine("Diagram rendered successfully:");
Console.WriteLine(result.Svg);
}
else
{
Console.WriteLine("Error rendering diagram:");
Console.WriteLine($"Message: {result.Error.Message}");
if (result.Error.LineNumber.HasValue)
{
Console.WriteLine($"Line {result.Error.LineNumber}: {result.Error.LineContent}");
}
}
- Render D2 diagrams as SVG
- Cross-platform support (Windows, macOS, Linux)
- Integration with .NET logging
- .NET 8.0 or later
D2Sharp is built on top of the following open-source projects:
For issues, feature requests, or contributions, please visit the GitHub repository.