Как использовать 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.