2016-01-19 55 views
3

PlantUML是Asciidoc的一個很好的擴展,但我無法弄清楚如何使用我的groovy代碼。如何在Java或Groovy中使用asciidoctorj-diagram?

據我所見,asciidoctorj-diaram模塊應該是當前的asciidoctorj-Release的一部分,所以我想我不需要額外的依賴。但是我的代碼使得asciidoc很好,並沒有渲染PlantUML圖。它說:

invalid style for open block: plantuml 

任何想法什麼可能是錯的?我在網上找到的asciidoctorj-diagram例子都使用gradle-plugin: - |

回答

1

即使圖書館是AsciidoctorJ項目的一部分,有一個叫單獨的Java庫:asciidoctorj-diagram(的asciidoctor-diagram Java版本)

你確定你有你的類路徑asciidoctorj-diagram?在這裏,Maven的座標:

<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); 
} 

順便提一下,也有一個行家例如:asciidoctor-diagram-example。但是這個例子需要asciidoctor-maven-plugin,它與gradle插件類似。

+0

thanx的詳細答案。依賴和'requireLibrary'在哪裏缺少的成分...現在我必須弄清楚爲什麼它找不到GraphViz「點」工具... – rdmueller

+0

Btw:是的,graphviz已安裝。我想知道爲什麼asciidocfx只是工作,我確實有這些問題... – rdmueller

+0

明白了:'dot'必須在環境路徑上... – rdmueller

相關問題