vyasa/extensions_builtin/mermaid/
__init__.py
extension.py
render.py
static/mermaid.js
static/mermaid.css
from .extension import EXTENSION
from ...extensions import ExtensionMeta, VyasaExtensionBase
from .render import render_mermaid_block
class MermaidExtension(VyasaExtensionBase):
meta = ExtensionMeta(
id="mermaid",
category="render",
provides=("cap:markdown:fence:mermaid", "bundle:mermaid.runtime"),
requires=("cap:markdown_pipeline",),
)
def register(self, app):
app.assets.bundle(
"mermaid.runtime",
css=("static/mermaid.css",),
js=("static/mermaid.js",),
scope="document",
)
app.markdown.fence("mermaid", render_mermaid_block)
EXTENSION = MermaidExtension()
The renderer must live in render.py, not in Markdown.