To provide a plugin to convert MermaidJS notations to diagrams during the build of a DocFX project.
This DocFX MermaidJS plugin is a wrapper around the mermaid NPM package. It is aimed at doing build time generation of the mermaid diagram so:
- The syntax can be validated at build time.
- The image is only built once.
- The image can be embedded in a pdf.
- https://dotnet.github.io/docfx/
- https://mermaid.js.org/
- https://github.com/mermaid-js/mermaid-cli
- https://github.com/mermaid-js/mermaid
- https://github.com/dpvreony/article-statiq-mermaid
- https://github.com/KevReed/DocFx.Plugins.PlantUml
var options = new BuildOptions
{
// Enable MermaidJS markdown extension
ConfigureMarkdig = pipeline => pipeline.UseMermaidJsExtension(new MarkdownContext())
};
await Docset.Build("docfx.json", options);
You can see an example of this in
- The sample console application in this repository (github.com/dpvreony/docfx-mermaidjs/tree/main/src/Dhgms.DocFx.MermaidJs.Sample.Cmd)
- The console application in my main documentation repository (github.com/dpvreony/documentation/tree/main/src/docfx_project)
NOTES:
- Only inline PNG is supported, this is due to a limitation in the plug in model and adding new files to the file cache on the fly. I may revisit this in future. The plug in itself exposes SVG data if you want to play with it.
You can adjust the settings by viewing the detailed documentation.
In your markdown files add a code block with a mermaid descriptor like so:
```mermaid
graph TD;
A-->B;
A-->C;
B-->D;
C-->D;
```
Then you can run the build and you should see the image output in place of the mermaid markdown syntax.
graph TD;
A-->B;
A-->C;
B-->D;
C-->D;
The documentation can be found at https://docs.dpvreony.com/projects/docfx-mermaidjs/
See the contribution guidelines.