Enable with .UseDiagrams() (included in UseAdvancedExtensions()).
When a fenced code block uses a recognized diagram language as its info string, Markdig renders it as a plain HTML block (without the nested <code> element) so client-side diagram libraries can consume the raw text easily.
By default:
mermaid renders as a <pre class="mermaid">...</pre> blocknomnoml renders as a <div class="nomnoml">...</div> block| Language | Info string |
|---|---|
| Mermaid | mermaid |
| nomnoml | nomnoml |
```mermaid
graph LR
A[Parse] --> B[AST]
B --> C[Render]
C --> D[HTML]
```
This renders as:
graph LR
A[Parse] --> B[AST]
B --> C[Render]
C --> D[HTML]
To display the diagram in a browser, include the Mermaid JavaScript library:
<script src="https://cdn.jsdelivr.net/npm/mermaid/dist/mermaid.min.js"></script>
<script>mermaid.initialize({ startOnLoad: true });</script>
```nomnoml
[Markdown] -> [Parser]
[Parser] -> [AST]
[AST] -> [Renderer]
[Renderer] -> [HTML]
```
Instead of the usual code block rendering:
<pre><code class="language-mermaid">...</code></pre>
The diagrams extension produces a plain block for recognized languages, for example:
<pre class="mermaid">...</pre>
<div class="nomnoml">...</div>
This allows client-side diagram libraries to find and render the content.