The 40ants-plantuml Reference Manual

This is the 40ants-plantuml Reference Manual, version 0.2.0, generated automatically by Declt version 4.0 beta 2 "William Riker" on Sun Jul 13 21:34:12 2025 GMT+0.

Table of Contents


1 Introduction


2 Systems

The main system appears first, followed by any subsystem dependency.


2.1 40ants-plantuml

Wrapper around PlantUML jar library

Author

Alexander Artemenko <>

Home Page

https://40ants.com/plantuml

Source Control

(GIT https://github.com/40ants/plantuml)

Bug Tracker

https://github.com/40ants/plantuml/issues

License

Unlicense

Long Description

<a id="x-2840ANTS-PLANTUML-DOCS-2FINDEX-3A-40README-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29"></a>

# 40ants-plantuml - Wrapper around PlantUML jar library

<a id="40-ants-plantuml-asdf-system-details"></a>

## 40ANTS-PLANTUML ASDF System Details

* Description: Wrapper around Plant‘UML‘ jar library
* Licence: Unlicense
* Author: Alexander Artemenko <svetlyak.40wt@gmail.com>
* Homepage: [https://40ants.com/plantuml][577d]
* Bug tracker: [https://github.com/40ants/plantuml/issues][d36f]
* Source control: [GIT][aa24]
* Depends on: [alexandria][8236], [serapeum][c41d]

[![](https://github-actions.40ants.com/40ants/plantuml/matrix.svg?only=ci.run-tests)][727f]

![](http://quickdocs.org/badge/40ants-plantuml.svg)

<a id="x-2840ANTS-PLANTUML-DOCS-2FINDEX-3A-3A-40INSTALLATION-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29"></a>

## Installation

You can install this library from Quicklisp, but you want to receive updates quickly, then install it from Ultralisp.org:

“‘
(ql-dist:install-dist "http://dist.ultralisp.org/"
:prompt nil)
(ql:quickload :40ants-plantuml)
“‘
<a id="x-2840ANTS-PLANTUML-DOCS-2FINDEX-3A-3A-40USAGE-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29"></a>

## Usage

To make a diagram, first you need to download ‘JAR‘ file with
Java program ‘PlantUML‘ from official site https://plantuml.com/.

Then you’ll have to set a path to this ‘JAR‘ file like this:

“‘
CL-USER> (setf 40ants-plantuml:*path-to-jar*
"~/plantuml-mit-1.2024.8.jar")
“‘
And of cause you will need some Java implementation suitable
for running this ‘JAR‘ file.

Here is how to render a sequence diagram to ‘PNG‘ file:

“‘
CL-USER> (40ants-plantuml:render "
@startuml
CommoLisp -> PlantUML : render
activate PlantUML
return PNG file
@enduml
"

#P"/tmp/diagram.png")
; No values
“‘
It will render an image like this:

![](/home/runner/work/plantuml/plantuml/docs/images/diagram.png)

<a id="x-2840ANTS-PLANTUML-DOCS-2FINDEX-3A-3A-40API-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29"></a>

## API

<a id="x-2840ANTS-PLANTUML-DOCS-2FINDEX-3A-3A-4040ANTS-PLANTUML-3FPACKAGE-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29"></a>

### 40ANTS-PLANTUML

<a id="x-28-23A-28-2815-29-20BASE-CHAR-20-2E-20-2240ANTS-PLANTUML-22-29-20PACKAGE-29"></a>

#### [package](5fb9) ‘40ants-plantuml‘

<a id="x-2840ANTS-PLANTUML-DOCS-2FINDEX-3A-3A-7C-4040ANTS-PLANTUML-3FFunctions-SECTION-7C-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29"></a>

#### Functions

<a id="x-2840ANTS-PLANTUML-3ARENDER-20FUNCTION-29"></a>

##### [function](29dc) ‘40ants-plantuml:render‘ diagram-code output-filename

<a id="x-2840ANTS-PLANTUML-DOCS-2FINDEX-3A-3A-7C-4040ANTS-PLANTUML-3FVariables-SECTION-7C-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29"></a>

#### Variables

<a id="x-2840ANTS-PLANTUML-3A-2APATH-TO-GRAPHVIZ-2A-20-28VARIABLE-29-29"></a>

##### [variable](4912) ‘40ants-plantuml:*path-to-graphviz*‘ nil

If given, should be a path to ‘dot‘ binary of Graphviz. Will be passed as -graphvizdot option to the ‘PlantUML‘.

<a id="x-2840ANTS-PLANTUML-3A-2APATH-TO-JAR-2A-20-28VARIABLE-29-29"></a>

##### [variable](2c0c) ‘40ants-plantuml:*path-to-jar*‘ nil

Set this variable to a path to the plantuml.jar. Note, there are different builds of plantuml with different licensing.

If this variable is ‘NIL‘, then /usr/share/plantuml/plantuml.jar will be used if it is exists. On Ubuntu this file
is created when use do ‘apt install plantuml‘. Note, the version of the ‘PlantUML‘ in the Ubuntu package could be outdated
and missing some important features.

[577d]: https://40ants.com/plantuml
[aa24]: https://github.com/40ants/plantuml
[727f]: https://github.com/40ants/plantuml/actions
[5fb9]: https://github.com/40ants/plantuml/blob/edd9c276a09236d82a39c085ddd134d44dda349b/src/core.lisp#L1
[2c0c]: https://github.com/40ants/plantuml/blob/edd9c276a09236d82a39c085ddd134d44dda349b/src/core.lisp#L17
[4912]: https://github.com/40ants/plantuml/blob/edd9c276a09236d82a39c085ddd134d44dda349b/src/core.lisp#L26
[29dc]: https://github.com/40ants/plantuml/blob/edd9c276a09236d82a39c085ddd134d44dda349b/src/core.lisp#L50
[d36f]: https://github.com/40ants/plantuml/issues
[8236]: https://quickdocs.org/alexandria
[c41d]: https://quickdocs.org/serapeum

* * *
###### [generated by [40ANTS-DOC](https://40ants.com/doc/)]

Version

0.2.0

Defsystem Dependency

40ants-asdf-system (system).

Dependency

40ants-plantuml/core (system).

Source

40ants-plantuml.asd.


2.2 40ants-plantuml/core

Author

Alexander Artemenko <>

Home Page

https://40ants.com/plantuml

Source Control

(GIT https://github.com/40ants/plantuml)

Bug Tracker

https://github.com/40ants/plantuml/issues

License

Unlicense

Dependencies
  • serapeum (system).
  • alexandria (system).
Source

40ants-plantuml.asd.


3 Files

Files are sorted by type and then listed depth-first from the systems components trees.


3.1 Lisp


3.1.1 40ants-plantuml/40ants-plantuml.asd

Source

40ants-plantuml.asd.

Parent Component

40ants-plantuml (system).

ASDF Systems

3.1.2 40ants-plantuml/core/file-type.lisp

Source

40ants-plantuml.asd.

Parent Component

40ants-plantuml/core (system).

Packages

40ants-plantuml.

Public Interface
Internals

4 Packages

Packages are listed by definition order.


4.1 40ants-plantuml

Source

file-type.lisp.

Nickname

40ants-plantuml/core

Use List

common-lisp.

Public Interface
Internals

5 Definitions

Definitions are sorted by export status, category, package, and then by lexicographic order.


5.1 Public Interface


5.1.1 Special variables

Special Variable: *path-to-graphviz*

If given, should be a path to ‘dot‘ binary of Graphviz. Will be passed as -graphvizdot option to the ‘PlantUML‘.

Package

40ants-plantuml.

Source

file-type.lisp.

Special Variable: *path-to-jar*

Set this variable to a path to the plantuml.jar. Note, there are different builds of plantuml with different licensing.

If this variable is NIL, then /usr/share/plantuml/plantuml.jar will be used if it is exists. On Ubuntu this file
is created when use do ‘apt install plantuml‘. Note, the version of the ‘PlantUML‘ in the Ubuntu package could be outdated and missing some important features.

Package

40ants-plantuml.

Source

file-type.lisp.


5.1.2 Ordinary functions

Function: render (diagram-code output-filename)
Package

40ants-plantuml.

Source

file-type.lisp.


5.2 Internals


5.2.1 Generic functions

Generic Reader: plantuml-error-message (condition)
Package

40ants-plantuml.

Methods
Reader Method: plantuml-error-message ((condition plantuml-error))
Source

file-type.lisp.

Target Slot

error-message.

Generic Reader: plantuml-exit-code (condition)
Package

40ants-plantuml.

Methods
Reader Method: plantuml-exit-code ((condition plantuml-error))
Source

file-type.lisp.

Target Slot

exit-code.


5.2.2 Conditions

Condition: plantuml-error
Package

40ants-plantuml.

Source

file-type.lisp.

Direct superclasses

error.

Direct methods
Direct slots
Slot: exit-code
Initform

(quote (alexandria:required-argument "exit-code is required argument."))

Initargs

:exit-code

Readers

plantuml-exit-code.

Writers

This slot is read-only.

Slot: error-message
Initform

(quote (alexandria:required-argument "error-message is required argument."))

Initargs

:error-message

Readers

plantuml-error-message.

Writers

This slot is read-only.


Appendix A Indexes


A.1 Concepts