adoctra переносит asciidoctor-diagram 3.2.1: все 58 типов диаграмм в виде блоков, блочных и inline-макросов с теми же атрибутами.

Включение

Диаграммы включаются той же опцией, что и в Asciidoctor:

adoctra -r asciidoctor-diagram document.adoc

Диаграммы запускают внешние программы и отправляют исходный текст на сервер, поэтому включаются только явно.

[graphviz, flow, svg]
----
digraph { a -> b }
----

plantuml::diagrams/sequence.puml[svg]

Внутри текста работает inline-форма graphviz:icon.dot[svg].

Поддерживаемые типы

a2s, actdiag, blockdiag, bpmn, bytefield, d2, dbml, diagrams, ditaa, dpic, erd, gnuplot, goat, graphviz, graphviz_py, lilypond, meme, mermaid, msc, nomnoml, nwdiag, oxdraw, packetdiag, penrose, pikchr, pintora, plantuml, rackdiag, salt, seqdiag, shaape, smcat, structurizr, svgbob, symbolator, syntrax, tape (vhs), tikz, umlet, vega, vegalite, wavedrom и 16 типов штрихкодов: bookland, codabar, code25, code25iata, code25interleaved, code39, code93, code128, code128a, code128b, code128c, ean8, ean13, gs1_128, qrcode, upca.

Локальные инструменты

Каждый тип запускает свою программу, которая должна быть установлена:

Тип Инструмент

Graphviz

dot (или атрибут dot/graphvizdot)

PlantUML

plantuml-full/plantuml-headless (plantuml-native), JAR-файлы из DIAGRAM_PLANTUML_CLASSPATH или plantuml в PATH

Mermaid

mermaid-cli mmdc (или атрибут mmdc)

D2, svgbob, pikchr, …

программа с тем же именем

ditaa, JSyntrax, Structurizr

JAR-файлы из DIAGRAM_DITAA_CLASSPATH, DIAGRAM_JSYNTRAX_CLASSPATH, DIAGRAM_STRUCTURIZR_CLASSPATH

Штрихкоды, QR-коды

ничего: встроены

Изображения и кэш записываются в imagesoutdir и .asciidoctor/diagram, как в Asciidoctor.

Серверы Kroki и PlantUML

Без локальных инструментов любые диаграммы можно рисовать через Kroki, собственный экземпляр Kroki или сервер PlantUML:

adoctra -r asciidoctor-diagram \
  -a diagram-server-url=https://kroki.io -a diagram-server-type=kroki_io \
  document.adoc

diagram-server-type — kroki_io или plantuml. Атрибуты можно задать и в заголовке документа или у отдельной диаграммы.

В браузере

WASM-привязки рисуют диаграммы только через сервер: браузер не может запускать программы. См. WASM: диаграммы. Диаграммам PlantUML там нужен preprocess=false.