asciidoctorj: asciidoc mit Java transformieren

http://asciidoctor.org/ ist laut Webseite “an open source Ruby processor for converting AsciiDoc markup into HTML 5, DocBook 4.5 and other formats”. Die Software ist in Ruby implementiert und so plattformunabhängig programmiert, dass auch eine Ausführung mit JRuby möglich ist. https://github.com/asciidoctor/asciidoctorj kapselt das in einem netten Projekt, sodass eine Konvertierung direkt mit einer Java-API möglich ist:

import static org.asciidoctor.Asciidoctor.Factory.create;
import org.asciidoctor.Asciidoctor;
...
Asciidoctor asciidoctor = create();

...

String rendered = asciidoctor.render("*This* is it.", Collections.EMPTY_MAP); System.out.println(rendered);

...
String rendered = asciidoctor.renderFile(new File("target/test-classes/rendersample.asciidoc"), Collections.EMPTY_MAP);
System.out.println(rendered);
...

Mit Optionen:

Map<String, Object> attributes = new HashMap<>();
attributes.put("backend", "docbook");

Map<String, Object> options = new HashMap<>();
options.put("in_place", true);
options.put("attributes", attributes);

String render = asciidoctor.renderFile("target/test-classes/rendersample.asciidoc", options);

Ähnliche Beiträge

2 Gedanken zu “asciidoctorj: asciidoc mit Java transformieren

  1. Hallo,
    der Beitrag ist jetzt schon einige Zeit her… dennoch: habt ihr den hier vorgestellten Code selbst laufen gesehen? Auch aus „normalem“ stand-alone Java-Code heraus (sprich: kein Maven&Co.)?
    Ich bekomme es nicht hin ;(
    Grüße. Andrew

  2. https://github.com/asciidoctor/asciidoctorj
    (die Abhängigkeiten kann man in der pom Datei, die auch zum Download bereitliegt, nachlesen)
    https://mvnrepository.com/artifact/org.jruby/jruby-complete/9.1.17.0
    https://mvnrepository.com/artifact/com.beust/jcommander/1.35

    Test.java:
    import static org.asciidoctor.Asciidoctor.Factory.create;
    import org.asciidoctor.Asciidoctor;
    import java.util.*;

    public class Test{

    public static void main (String[] args) {
    Asciidoctor asciidoctor = create();
    String rendered = asciidoctor.render(„*This* is it.“, Collections.EMPTY_MAP);
    System.out.println(rendered);
    }
    }

    dann kommt bei mir für den ersten Block (classpath nicht vergessen):

    This is it.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert