Как использовать asciidoctorj-диаграмму с Java или Groovy?

PlantUML - отличное расширение для Asciidoc, но я не могу понять, как использовать его из моего отличного кода.

Насколько я вижу, asciidoctorj-diaram модуль должен быть частью текущего asciidoctorj-Пожалуйста, так что я думаю, мне не нужна дополнительная зависимость. Но мой код, который хорошо отображает asciidoc, не отображает диаграммы PlantUML. Это говорит:

invalid style for open block: plantuml

Есть идеи, что может быть не так? asciidoctorj-diagram все примеры, которые я нахожу в сети, используют gradle-plugin:-|

1 ответ

Решение

Даже если библиотека является частью проекта AsciidoctorJ, существует отдельная библиотека Java, которая называется: asciidoctorj-diagram (Java-версия asciidoctor-diagram)

Вы уверены, что у вас есть asciidoctorj-diagram на вашем пути к классам? Здесь координаты maven:

<dependency>
    <groupId>org.asciidoctor</groupId>
    <artifactId>asciidoctorj-diagram</artifactId>
    <version>1.3.1</version>
</dependency>

Вы также должны сказать Asciidoctor, что asciidoctor-diagram необходимо. Смотрите линию <1> в следующем простом примере Java:

public static void main(String[] args) {
    org.asciidoctor.Asciidoctor asciidoctor =
             org.asciidoctor.Asciidoctor.Factory.create();

    asciidoctor.requireLibrary("asciidoctor-diagram"); // <1>

    StringBuilder sb = new StringBuilder();
    sb.append("== Diagrams\n");
    sb.append("\n");
    sb.append("[plantuml,auth-protocol]\n");
    sb.append("....\n");
    sb.append("Alice -> Bob: Authentication Request\n");
    sb.append("Bob --> Alice: Authentication Response\n");
    sb.append("\n");
    sb.append("Alice -> Bob: Another authentication Request\n");
    sb.append("Alice <-- Bob: another authentication Response\n");
    sb.append("....\n");

    String html = asciidoctor.convert(sb.toString(), 
             new java.util.HashMap<String, Object>());
    System.out.println(html);
}

Кстати, есть и пример maven: пример asciidoctor -gram-example. Но этот пример требует asciidoctor-maven-plugin который похож на плагин Gradle.

Другие вопросы по тегам