The Diagram extension

The AsciidoctorJ engine supports Batik, Ditaa, JSyntrax, and PlantUml via a Diagram extension. This extension utilises asciidoctorj-diagram-url. When the org.asciidoctor.jvm is applied, this extension is registered automatically and named diagram. It is then up to the build script author to enable the specific components so that they can appear on the classpath.

import org.asciidoctor.gradle.model5.jvm.toolchains.AsciidoctorjToolchain
import org.asciidoctor.gradle.model5.jvm.extensions.AsciidoctorjDiagram

plugins {
    id 'org.asciidoctor.jvm.diagram' version '5.0.0-alpha.1'
}

asciidoc {
  toolchains {
    asciidoctorj(AsciidoctorjToolchain) {
      asciidocExtensions {
        diagram(AsciidoctorjDiagram) {
            useDiagram() (1)
            useDiagram('1.2.3') (2)
            useBatik() (3)
            useBatik('1.2.3') (4)
            useDitaa() (5)
            useDitaa('1.2.3') (6)
            useSyntrax() (7)
            useSyntrax('1.2.3') (8)
            usePlantUml() (9)
            usePlantUml('1.2.3') (10)
        }
      }
    }
  }
}
1 Activate diagram usage with support for items with no additional dependencies.
2 Activate diagram usage with a non-default version.
3 Use Batik. Implies `useDiagram().
4 Use Batik with a non-default version. Implies `useDiagram().
5 Use Ditaa. Implies `useDiagram().
6 Use Ditaa with a non-default version. Implies `useDiagram().
7 Use JSyntrax Implies `useDiagram().
8 Use JSyntrax with a non-default version. Implies `useDiagram().
9 Use PlantUML. Implies `useDiagram().
10 Use PlantUML with a non-default version. Implies `useDiagram().
It is not possible to apply both org.asciidoctor.jvm.diagram and org.asciidoctor.jvm.kroki to the same project.