Skip to main content

Mermaid extension for Python-Markdown using mermaid-cli.

Project description

markdown-mermaid-cli

PyPI version License Python versions

Mermaid extension for Python-Markdown using Mermaid-CLI.

This extension converts Mermaid diagram code blocks into Base64 encoded data: URI. This enables PDF generation with tools like MkDocs to PDF/WeasyPrint without requiring client-side JavaScript.

Install

pip install markdown-mermaid-cli

Requirements

Mermaid CLI

Chrome or Chromium is required to run Mermaid-CLI.

npm install @mermaid-js/mermaid-cli

or

npm install --global @mermaid-js/mermaid-cli

Usage

  • code block start with ```mermaid
  • code block end with ```

options:

formant=[svg|png] {img attribute}="value" {cli option}="value"`
  • format (optional): Output image format (defaults to svg)
  • img attribute (optional): alt, width, height, class, id, style, title
  • cli option (optional): theme, width, height, backgroundColor, svgId, scale (refer to mmdc -h)

MkDocs Integration

# mkdocs.yml
markdown_extensions:
  - markdown_mermaid_cli

or with options:

# mkdocs.yml
markdown_extensions:
  - markdown_mermaid_cli:
      default_format: png     # svg or png, default svg

Pelican Integration

# pelicanconf.py
MARKDOWN = {
    'extension_configs': {
        'markdown.extensions.codehilite': {'css_class': 'highlight'},
        'markdown.extensions.extra': {},
        'markdown_mermaid_cli': {},             # Add this
    },
    'output_format': 'html5',
}

Python code

import markdown
from markdown_mermaid_cli import MermaidExtension

markdown_text = """```mermaid
sequenceDiagram
    participant Alice
    participant Bob
    Bob->>Alice: Hi Alice
    Alice->>Bob: Hi Bob
```"""

html_output = markdown.markdown(
    markdown_text, extensions=[MermaidExtension()]
)

print(html_output)
<p><img src="data:image/svg+xml;base64,PHN2ZyBhcmlhLXJvbGVkZXNjcmlwdGlvbj0ic2VxdWVuY2UiIHJvbGU
9ImdyYXBoaWNzLWRvY3VtZW50IGRvY3VtZW50IiB2aWV3Qm94PSItNTAgLTEwIDc1MCA1NzQiIHN0eWxlPSJtYXgtd2lkd
Gg6IDc1MHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsiIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk
...
...
...
IHgxPSIyNzYiLz48L3N2Zz4=" ></p>

Process flow

sequenceDiagram
    participant application as Application<br/>(eg MkDocs)
    participant markdown as Python Markdown
    participant extension as MermaidDataURIExtension
    participant engine as Mermaid CLI

    application->>markdown: Markdown + Mermaid
    markdown->>extension: Preprocessor
    extension->>engine: Mermaid
    engine-->>engine: Convert
    engine-->>extension: Image Data
    extension-->>extension: Base64 encode
    extension-->>markdown: Markdown + data URI image
    markdown-->>application: HTML + data URI image

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

markdown_mermaid_cli-0.3.0.tar.gz (74.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

markdown_mermaid_cli-0.3.0-py3-none-any.whl (6.4 kB view details)

Uploaded Python 3

File details

Details for the file markdown_mermaid_cli-0.3.0.tar.gz.

File metadata

  • Download URL: markdown_mermaid_cli-0.3.0.tar.gz
  • Upload date:
  • Size: 74.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for markdown_mermaid_cli-0.3.0.tar.gz
Algorithm Hash digest
SHA256 d9aff7d73f2fcd7c5beb17b506454dea894514ff54d0dff4d45ba0de88ad375b
MD5 c76ac41afa3f0d18197a424113d96c1d
BLAKE2b-256 16ebc6ed5bec00c9b4449a78e586c14f6fa1ae7414141bebfde0fe4d38a58b00

See more details on using hashes here.

Provenance

The following attestation bundles were made for markdown_mermaid_cli-0.3.0.tar.gz:

Publisher: publish-to-pypi.yml on hkato/markdown-mermaid-cli

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file markdown_mermaid_cli-0.3.0-py3-none-any.whl.

File metadata

File hashes

Hashes for markdown_mermaid_cli-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6ffd897fe2b0340a2ad6b03155615691594e3a733bf0198ed6a00d726717f5ae
MD5 e9c2b2019cc8680419e8ade07a2ee6a3
BLAKE2b-256 174c1d062f5193cfcb1431079375c169ee101c6cbdb947debda9103a98f42cf3

See more details on using hashes here.

Provenance

The following attestation bundles were made for markdown_mermaid_cli-0.3.0-py3-none-any.whl:

Publisher: publish-to-pypi.yml on hkato/markdown-mermaid-cli

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page