Plantuml¶
PlantUML Diagrams Preprocessor for Foliant¶
PlantUML is a tool to generate diagrams from plain text. This preprocessor finds PlantUML diagrams definitions in the source and converts them into images on the fly during project build.
Installation¶
$ pip install foliantcontrib.plantuml
Config¶
To enable the preprocessor, add plantuml to preprocessors section in the project config:
preprocessors:
- plantuml
The preprocessor has a number of options:
preprocessors:
- plantuml:
cache_dir: !path .diagramscache
plantuml_path: plantuml
format: png
params:
...
parse_raw: true
as_image: true
cache_dir-
Path to the directory with the generated diagrams. It can be a path relative to the project root or a global one; you can use
~/shortcut.Note
To save time during build, only new and modified diagrams are rendered. The generated images are cached and reused in future builds.
plantuml_path- Path to PlantUML launcher. By default, it is assumed that you have the command
plantumlin yourPATH, but if PlantUML uses another command to launch, or if theplantumllauncher is installed in a custom place, you can define it here. format- Diagram format, list of supported formats. Default:
png.
Another way to specify format is to use
t<format>option inparams.
params-
Params passed to the image generation command:
preprocessors: - plantuml: params: config: !path plantuml.cfgTo see the full list of params, run the command that launches PlantUML, with
-hcommand line option. parse_raw- If this flag is
true, the preprocessor will also process all PlantUML diagrams which are not wrapped in<plantuml>...</plantuml>tags. Default value isfalse. as_image- If
true— inserts scheme into document as md-image. Iffalse— inserts the file generated by PlantUML directly into the document (only forsvgformat). Default:true
Usage¶
To insert a diagram definition in your Markdown source, enclose it between <plantuml>...</plantuml> tags (indentation inside tags is optional):
Here’s a diagram:
<plantuml>
@startuml
...
@enduml
</plantuml>
To set a caption, use caption option:
Diagram with a caption:
<plantuml caption="Sample diagram from the official site">
@startuml
...
@enduml
</plantuml>
You can override values from the preprocessor config for each diagram.
By default, diagrams are in PNG. But this diagram is in EPS:
<plantuml caption="Vector diagram" format="eps">
@startuml
...
@enduml
</plantuml>
Sometimes it can be necessary to process auto-generated documents that contain multiple PlantUML diagrams definitions without using Foliant-specific tags syntax. Use the parse_raw option in these cases.