Skip to main content

mkdocs-bpmn-js

mkdocs-bpmn-js is a simple MkDocs plugin that enables you to embed BPMN diagrams directly into your documentation using bpmn-js. Diagrams are embedded just like images, using Markdown syntax.

Installation

Install via pip:

pip install mkdocs-bpmn-js

Then enable the plugin in your mkdocs.yml:

plugins:
  - bpmn-js

Plugin Options

You can configure the plugin by adding options under bpmn-js in mkdocs.yml.

plugins:
  - bpmn-js:
      viewer_js: "https://unpkg.com/bpmn-js@18/dist/bpmn-navigated-viewer.production.min.js"
      viewer_css: "https://unpkg.com/bpmn-js@18/dist/assets/bpmn-js.css"
      class: "mk-bpmn-js"
Option Description Default Value
render Specify the render mode (none, image, viewer). viewer
class CSS class applied to each diagram container. mk-bpmn-js
viewer_js URL to the BPMN viewer JavaScript file. https://unpkg.com/bpmn-js@18/dist/bpmn-navigated-viewer.production.min.js
viewer_css URL to the BPMN viewer CSS file. https://unpkg.com/bpmn-js@18/dist/assets/bpmn-js.css
viewer_initialize Append a script to load the diagrams. True
image_command Command to call when render is set to image. bpmn-to-image --no-title --no-footer $input:$output

Local viewer assets

If you prefer not to load assets from a CDN, you can host the required BPMN viewer files yourself.

mkdir -p theme/js theme/css
curl -L https://unpkg.com/bpmn-js@18/dist/bpmn-navigated-viewer.production.min.js > theme/js/bpmn.js
curl -L https://unpkg.com/bpmn-js@18/dist/assets/bpmn-js.css > theme/css/bpmn.css

Override the default theme to include your local assets by creating a custom theme/main.html template. Refer to the MkDocs guide on customizing themes for more details.

{% extends "base.html" %} {% block styles %} {{ super() }}
<link rel="stylesheet" href="{{ base_url }}/css/bpmn.css" />
{% endblock %} {% block libs %} {{ super() }}
<script src="{{ base_url }}/js/bpmn.js"></script>
{% endblock %}

Finally, disable the default CDN links by setting the plugin options to empty strings in mkdocs.yml:

plugins:
  - bpmn-js:
      viewer_js: ""
      viewer_css: ""

Image rendering

To render an image instead of an interactive viewer, set the render config to image. We recommend using bpmn-to-image, but you can use any script you prefer. During rendering, the plugin will call the image_command and replace $input with the absolute path to the BPMN diagram and $output with a temporary cache file.

For example, with the default image_command:

image_command: "bpmn-to-image --no-title --no-footer $input:$output"

Have a look at the example to see how bpmn-to-image can be configured and used.

Usage

Add .bpmn files using standard Markdown image syntax:

<!-- Relative path to the current Markdown file -->

![Hello World](hello-world.bpmn)

<!-- Absolute path from the site root -->

![Hello World](/diagrams/hello-world.bpmn)

<!-- No alternative text -->

![](hello-world.bpmn)

<!-- With diagram options (see below for more details) -->

![](hello-world.bpmn?id=hello-world&height=400px)

The alternative text is optional and will be rendered as a link to the diagram file within a noscript element.

Diagram Options

You can customize individual diagrams using query parameters in the image URL.

![Custom Diagram](my-diagram.bpmn?id=my-diagram&height=500px&width=100%25)
Parameter Description Example
id Sets the HTML id of the viewer canvas. Useful for linking. id=my-diagram
width Sets the diagram width. Accepts any valid CSS width value. width=100%25
height Sets the diagram height. Accepts any valid CSS height value. height=300px

Acknowledgments

  • Inspired by mkdocs-drawio, which served as a helpful reference for embedding diagrams in MkDocs.
  • Also check out mkdocs-bpmn, an alternative implementation. Depending on your needs, it might be a better fit.

Download files

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

Source Distribution

mkdocs_bpmn_js-0.2.0.tar.gz (39.3 kB view details)

Uploaded Source

Built Distribution

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

mkdocs_bpmn_js-0.2.0-py3-none-any.whl (6.8 kB view details)

Uploaded Python 3

File details

Details for the file mkdocs_bpmn_js-0.2.0.tar.gz.

File metadata

  • Download URL: mkdocs_bpmn_js-0.2.0.tar.gz
  • Upload date:
  • Size: 39.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for mkdocs_bpmn_js-0.2.0.tar.gz
Algorithm Hash digest
SHA256 5c9b7ece2b96cd136af9400adc79eac71e0d048857d44e38fdaffe7111dbda64
MD5 8bbfd32985f827eafc76cea73e9f3056
BLAKE2b-256 ddcac2cd59c782dcd456f023aec1ccf97e42219ed142241df75102c25697b5b2

See more details on using hashes here.

Provenance

The following attestation bundles were made for mkdocs_bpmn_js-0.2.0.tar.gz:

Publisher: publish.yml on madebyherzblut/mkdocs-bpmn-js

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

File details

Details for the file mkdocs_bpmn_js-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: mkdocs_bpmn_js-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 6.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for mkdocs_bpmn_js-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4b4cff329cbdba0aba853463f3e10f4f7316874bda56b6abbca0d5cdc049d534
MD5 6c64071cb67faa5b133a3a254dae3aa4
BLAKE2b-256 a0d99a20109923779da7733ce871707063a13134e29884592dac45dd422f8f6d

See more details on using hashes here.

Provenance

The following attestation bundles were made for mkdocs_bpmn_js-0.2.0-py3-none-any.whl:

Publisher: publish.yml on madebyherzblut/mkdocs-bpmn-js

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

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 files

0.1.0

2 files

Supported by

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