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.1.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.1-py3-none-any.whl (6.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: markdown_mermaid_cli-0.3.1.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.1.tar.gz
Algorithm Hash digest
SHA256 03a729db97a5991e6e772dd0729b2097f7d573c2333b35c48fbc0468951bda7f
MD5 c74f2331b267a4f89b5f58c90e7bbb51
BLAKE2b-256 b66e4ce81e1cda16511325eea1ca999de1e1b9b56e194026a2c9a29cacca9fe9

See more details on using hashes here.

Provenance

The following attestation bundles were made for markdown_mermaid_cli-0.3.1.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.1-py3-none-any.whl.

File metadata

File hashes

Hashes for markdown_mermaid_cli-0.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 afff8a4c4886c88c3590cd8450b933a11a7a4163625a476521180663fa46e4a5
MD5 c015d38543f436e392cdbdaa19c9126d
BLAKE2b-256 85fa7cfc4a3847271401712399ff9828f67d58814b5374b200ddf46d06caa859

See more details on using hashes here.

Provenance

The following attestation bundles were made for markdown_mermaid_cli-0.3.1-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