class Renderer
Extends the standard Markly HTML renderer to support mermaid diagrams.
Fenced code blocks with the mermaid language are rendered as
<div class="mermaid"> elements instead of <pre><code>, allowing
the mermaid.js library to pick them up and render diagrams client-side.
Definitions
def code_block(node)
Render a code block, converting mermaid blocks to diagram containers.
Signature
-
parameter
nodeMarkly::Node The code block node.
Implementation
def code_block(node)
language, _ = node.fence_info.split(/\s+/, 2)
if language == "mermaid"
block do
out(
"<mermaid-diagram#{source_position(node)}>",
escape_html(node.string_content),
"</mermaid-diagram>"
)
end
else
super
end
end