A jinja2 block to render a mermaid diagram
Project description
jinja2-mermaid-extension
A jinja2 block to render a mermaid diagram.
- The diagram is rendered using the
mermaid-cli
tool in aDocker
container. - The diagram is saved to the current directory or
mermaid_output_root
(if defined). - The block is then replaced with a configurable string (markdown, etc).
Setup
Docker
must be installed to run themermaid
command line tool.- The extension should be installed in your
Python
environment.
pip install jinja2-mermaid-extension
- The extension should be added to the
jinja2
environment.
from jinja2 import Environment
from jinja2_mermaid_extension import MermaidExtension
env = Environment(extensions=[MermaidExtension])
- You should pass the
mermaid_output_root
to the render method.
out_path = Path().cwd() / "example.md"
template = env.get_template("example.md.jinja2")
rendered = template.render(mermaid_output_root=out_path.parent)
out_path.write_text(rendered)
Usage
The following jinaj2
block will render a mermaid diagram.
{% mermaid -%}
ext: .png
mode: myst
scale: 3
width: 75
align: center
caption: |
An example mermaid diagram!
diagram: |
graph TD
A --> B
B --> C
A --> C
{% endmermaid %}
The following arguments are available:
| Argument | Kind | Description | Default |
| ------------------------ | ------------------ | -------------------------------------------------------------------------- | ---------------------- | --- |
| diagram or inp | Input | The raw mermaid diagram code or the path to an mmd
file. | None
| |
| ext | Output | The file extension of the generated diagram. | ".png"
|
| mode | Replacement Option | How to render the output after processing. | "path"
|
| theme | Mermaid CLI Option | The theme to use for the diagram. | "default"
|
| scale | Mermaid CLI Option | A scaling factor for the diagram. | 3
|
| width | Mermaid CLI Option | The width of the diagram in pixels. | 800
|
| height | Mermaid CLI Option | The height of the diagram in pixels. | None
|
| background | Mermaid CLI Option | The background color of the generated diagram. | "white"
|
| alt_text | Replacement Option | The alt text of the diagram. | None
|
| align | Replacement Option | The alignment of the diagram only valid for MyST output) | "center"
|
| caption | Replacement Option | A caption to add to the diagram only valid for MyST output). | None
|
| just_name | Replacement Option | Whether to only output the name of the generated diagram. | False
|
| relative_to | Replacement Option | The directory to make the path of the generated diagram relative to. | None
|
| use_cached | Processing Option | Whether to use a cached version of the diagram. | True
|
| parallel | Processing Option | Whether to render the diagram in parallel. | True
|
| temp_dir | Processing Option | A temporary directory to use for intermediate files. | None
|
| delete_temp_dir | Processing Option | Whether to delete the temporary directory after execution. | True
|
| mermaid_docker_image | Processing Option | The docker image containing the mermaid-cli tool. | "minlag/mermaid-cli"
|
| mermaid_volume_mount | Processing Option | The directory in the docker container to mount the temporary directory to. | "/data"
|
The block will be replaced by a string based on the mode
argument.
"path"
: Output the path to the generated image."markdown"
: Output a simple markdown image link."restructured"
: Output a restructured text image link."myst_markdown"
: Output a MyST formatted markdown image.
- Github repository: https://github.com/AdamGagorik/jinja2-mermaid-extension/
- Documentation https://AdamGagorik.github.io/jinja2-mermaid-extension/
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for jinja2_mermaid_extension-1.1.3.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3839ecbdb8c14133bc7c48ef4f2d7e760333362e9dbf9cac47eaa2c00ebda492 |
|
MD5 | cffab1e7628a4acde3f510b6b3805111 |
|
BLAKE2b-256 | 847727b82088c4163bd15a4b26f4fb66aaa06d9e623a2dfdf55490f687128c1c |
Hashes for jinja2_mermaid_extension-1.1.3-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 11a4b87f971ad982440275451fecd5e11ede55aa781347e939c88f995e8ec133 |
|
MD5 | 0fd137899a35e423724ed99a2540890b |
|
BLAKE2b-256 | 4c3a988776f0c8ca21d406934d8d383f4970a0a05d91b51211e620a657b5fe18 |