Skip to main content

A PlantUML plugin for Markdown

Project description

Build Status

PlantUML Extension for Python-Markdown

This plugin implements a block extension which can be used to specify a PlantUML diagram which will be converted into an image and inserted in the document.

Syntax:

    ::uml:: [format="png|svg|txt"] [classes="class1 class2 ..."] [alt="text for alt"] [title="Text for title"] width="300px" height="300px"
      PlantUML script diagram
    ::end-uml::

Example:

    ::uml:: format="png" classes="uml myDiagram" alt="My super diagram placeholder" title="My super diagram" width="300px" height="300px"
      Goofy ->  MickeyMouse: calls
      Goofy <-- MickeyMouse: responds
    ::end-uml::

The GitLab/GitHub block syntax is also recognized. Example:

```plantuml format="png" classes="uml myDiagram" alt="My super diagram placeholder" title="My super diagram" width="300px" height="300px"
  Goofy ->  MickeyMouse: calls
  Goofy <-- MickeyMouse: responds
```

Options are optional (otherwise the wouldn't be options), but if present must be specified in the order format, classes, alt, title, width, height. The option value may be enclosed in single or double quotes.

Supported values for format parameter are:

  • png: HTML img tag with embedded png image
  • svg: HTML img tag with embedded svg image (links are not navigable)
  • svg_object: HTML object tag with embedded svg image (links are navigable)
  • svg_inline: HTML5 svg tag with inline svg image source (links are navigable, can be manipulated with CSS rules)
  • txt: plain text diagrams.

The width and height options must include a CSS unit.

Installation

You need to install PlantUML (see the site for details) and Graphviz 2.26.3 or later. The plugin expects a program plantuml in the classpath. If not installed by your package manager, you can create a shell script and place it somewhere in the classpath. For example, save te following into /usr/local/bin/plantuml (supposing PlantUML installed into /opt/plantuml):

    #!/bin/bash
    java -jar /opt/plantuml/plantuml.jar ${@}

On Windows can be used the following plantuml.bat (many thanks to henn1001):

    @echo off
    set mypath=%~dp0

    setlocal
    set GRAPHVIZ_DOT=%mypath%\Graphviz\bin\dot.exe

    java -jar %mypath%\plantuml.jar %*

Make sure the plantuml.bat is on the path.

For Gentoo Linux there is an ebuild at http://gpo.zugaina.org/dev-util/plantuml/RDep: you can download the ebuild and the files subfolder or you can add the zugaina repository with layman (recommended).

To use the plugin with Python-Markdown you have three choices:

  • do a simple pip install plantuml-markdown, and the plugin should be ready to be used

  • copy the file plantuml.py in the extensions folder of Python-Markdown. For example, for Python 2.7 you must do:

    $ sudo cp plantuml.py /usr/lib/python27/site-packages/markdown/extensions/
    
  • copy the file somewhere in your home. A good choice may be the user-site path, for example (bash syntax):

    $ export INSTALLPATH="`python -m site --user-site`/plantuml-markdown"
    $ mkdir -p "$INSTALLPATH"
    $ cp plantuml.py "$INSTALLPATH/mdx_plantuml.py"
    $ export PYTHONPATH="$INSTALLPATH"
    

    You must export PYTHONPATH before running markdown_py, or you can put the definition in ~/.bashrc.

After installed, you can use this plugin by activating it in the markdown_py command. For example:

markdown_py -x plantuml mydoc.md > out.html

Running tests

The test execution requires a specific version of PlantUML (the image generated can be different with different PlantUML versions).

To run the tests, execute the following command:

PATH="$PATH:$PWD/test" python -m unittest discover -v -s test

This command uses a custom version of the plantuml command which will download the expected version of PlantUML for tests execution without clobbering the system.

Project details


Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

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

plantuml_markdown-1.4.0-py3-none-any.whl (6.7 kB view details)

Uploaded Python 3

plantuml_markdown-1.4.0-py2-none-any.whl (7.6 kB view details)

Uploaded Python 2

File details

Details for the file plantuml_markdown-1.4.0-py3-none-any.whl.

File metadata

  • Download URL: plantuml_markdown-1.4.0-py3-none-any.whl
  • Upload date:
  • Size: 6.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.19.1 setuptools/40.2.0 requests-toolbelt/0.8.0 tqdm/4.25.0 CPython/3.5.5

File hashes

Hashes for plantuml_markdown-1.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d6aafe59477f1cbb2ad7756b706c929e9530200b88a00482351932b7d5d6f0f6
MD5 fa1f4d771082cbb281f2e58c3c127913
BLAKE2b-256 e9c9a80df2c6bb6f06fbab3dd90fae3f5d305fae63536b75516f49819ef58d32

See more details on using hashes here.

File details

Details for the file plantuml_markdown-1.4.0-py2-none-any.whl.

File metadata

  • Download URL: plantuml_markdown-1.4.0-py2-none-any.whl
  • Upload date:
  • Size: 7.6 kB
  • Tags: Python 2
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.19.1 setuptools/40.2.0 requests-toolbelt/0.8.0 tqdm/4.25.0 CPython/3.5.5

File hashes

Hashes for plantuml_markdown-1.4.0-py2-none-any.whl
Algorithm Hash digest
SHA256 581546c5b73957f951667d191d259d387c35c5e316d5624fd3aa4b04bc854005
MD5 19659b2bd5712ccea199c80c42c54f09
BLAKE2b-256 3b0529bdbebb376fa1bd2e7897816bb9baa520a39d49a609bab405488e2a62fa

See more details on using hashes here.

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