PlantUML是Asciidoc的出色扩展,但我无法从常规代码中弄清楚如何使用。

据我所知,asciidoctorj-diaram模块应该是当前asciidoctorj -Release的一部分,所以我想我不需要其他依赖项。但是我的代码使asciidoc很好,但没有渲染PlantUML图。它说:

invalid style for open block: plantuml

知道有什么问题吗?我在网上找到的asciidoctorj-diagram示例全部使用gradle-plugin:-|

最佳答案

即使该库是AsciidoctorJ项目的一部分,还是有一个单独的Java库,称为:asciidoctorj-diagram(asciidoctor-diagram的Java版本)

您确定您的类路径上有asciidoctorj-diagram吗?这里的行家坐标:

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

您还需要告诉Asciidoctor,需要asciidoctor-diagram。请参见下面的简单Java示例中的<1>行:
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-diagram-example。但是这个例子需要asciidoctor-maven-plugin,它类似于gradle插件。

关于groovy - 如何在Java或Groovy中使用asciidoctorj-diagram?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34882425/

10-11 07:11