From 910b6de7f4ee09c796b1b792fa091ad26dfc790d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20Z=C3=B6llner?= Date: Fri, 8 Apr 2022 14:42:45 +0200 Subject: [PATCH 1/4] migrate to Java 17 --- pom.xml | 4 ++-- src/main/java/org/asciidoctor/ExportDoclet.java | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/pom.xml b/pom.xml index e1c20c0..f5a5315 100644 --- a/pom.xml +++ b/pom.xml @@ -51,8 +51,8 @@ maven-compiler-plugin 3.1 - 1.9 - 1.9 + 17 + 17 diff --git a/src/main/java/org/asciidoctor/ExportDoclet.java b/src/main/java/org/asciidoctor/ExportDoclet.java index 0215ba5..2341a6b 100644 --- a/src/main/java/org/asciidoctor/ExportDoclet.java +++ b/src/main/java/org/asciidoctor/ExportDoclet.java @@ -41,7 +41,7 @@ public String getName() { @Override public Set getSupportedOptions() { - return new StandardDoclet().getSupportedOptions(); + return Collections.emptySet(); } @Override From 31c6f0a31c649f4c1fdea45689c38d9ef837f772 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20Z=C3=B6llner?= Date: Fri, 8 Apr 2022 14:46:12 +0200 Subject: [PATCH 2/4] remove missing import --- src/main/java/org/asciidoctor/ExportRenderer.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/java/org/asciidoctor/ExportRenderer.java b/src/main/java/org/asciidoctor/ExportRenderer.java index cabde5a..032501d 100644 --- a/src/main/java/org/asciidoctor/ExportRenderer.java +++ b/src/main/java/org/asciidoctor/ExportRenderer.java @@ -15,7 +15,6 @@ */ package org.asciidoctor; -import com.sun.javadoc.*; import jdk.javadoc.doclet.*; import javax.lang.model.element.*; From f89e42b044b64504d2b7be4d4cd666bf88b05e09 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20Z=C3=B6llner?= Date: Fri, 8 Apr 2022 15:38:18 +0200 Subject: [PATCH 3/4] add include captions --- .../java/org/asciidoctor/ExportDoclet.java | 45 ++++++++++++++++++- .../java/org/asciidoctor/ExportRenderer.java | 9 ++++ 2 files changed, 52 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/asciidoctor/ExportDoclet.java b/src/main/java/org/asciidoctor/ExportDoclet.java index 2341a6b..c9ab71f 100644 --- a/src/main/java/org/asciidoctor/ExportDoclet.java +++ b/src/main/java/org/asciidoctor/ExportDoclet.java @@ -39,9 +39,50 @@ public String getName() { return "ExportDoclet"; } + private boolean includeCaptions = false; + @Override public Set getSupportedOptions() { - return Collections.emptySet(); + Option[] options = { + new Option() { + private final List someOption = Arrays.asList( + "-captions", + "-cp" + ); + + @Override + public int getArgumentCount() { + return 1; + } + + @Override + public String getDescription() { + return "include captions in output"; + } + + @Override + public Option.Kind getKind() { + return Kind.STANDARD; + } + + @Override + public List getNames() { + return someOption; + } + + @Override + public String getParameters() { + return "boolean"; + } + + @Override + public boolean process(String opt, List arguments) { + includeCaptions = arguments.get(0).equalsIgnoreCase("true"); + return true; + } + } + }; + return new HashSet<>(Arrays.asList(options)); } @Override @@ -51,6 +92,6 @@ public SourceVersion getSupportedSourceVersion() { @Override public boolean run(DocletEnvironment environment) { - return new ExportRenderer(environment).render(); + return new ExportRenderer(environment, includeCaptions).render(); } } diff --git a/src/main/java/org/asciidoctor/ExportRenderer.java b/src/main/java/org/asciidoctor/ExportRenderer.java index 032501d..1e02c66 100644 --- a/src/main/java/org/asciidoctor/ExportRenderer.java +++ b/src/main/java/org/asciidoctor/ExportRenderer.java @@ -39,9 +39,15 @@ public class ExportRenderer { * From this root all other program structure information can be extracted. */ private final DocletEnvironment rootDoc; + private final boolean includeCaptions; public ExportRenderer(DocletEnvironment rootDoc){ + this(rootDoc, false); + } + + public ExportRenderer(DocletEnvironment rootDoc, boolean includeCaptions){ this.rootDoc = rootDoc; + this.includeCaptions = includeCaptions; } /** @@ -125,6 +131,9 @@ private void outputText(Element element, PrintWriter writer) { */ private void outputText(String tag, String comment, PrintWriter writer) { writer.println("// tag::" + tag + "[]"); + if (includeCaptions) { + writer.println(String.format("== %s", tag)); + } writer.println(cleanJavadocInput(comment)); writer.println("// end::" + tag + "[]"); } From bef3ea5e7f64ae541cad695dd4f7089dd59e2a5b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20Z=C3=B6llner?= Date: Fri, 8 Apr 2022 16:17:56 +0200 Subject: [PATCH 4/4] add levels --- src/main/java/org/asciidoctor/ExportDoclet.java | 2 +- src/main/java/org/asciidoctor/ExportRenderer.java | 15 ++++++++------- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/src/main/java/org/asciidoctor/ExportDoclet.java b/src/main/java/org/asciidoctor/ExportDoclet.java index c9ab71f..04babd0 100644 --- a/src/main/java/org/asciidoctor/ExportDoclet.java +++ b/src/main/java/org/asciidoctor/ExportDoclet.java @@ -46,7 +46,7 @@ public Set getSupportedOptions() { Option[] options = { new Option() { private final List someOption = Arrays.asList( - "-captions", + "--captions", "-cp" ); diff --git a/src/main/java/org/asciidoctor/ExportRenderer.java b/src/main/java/org/asciidoctor/ExportRenderer.java index 1e02c66..3200a67 100644 --- a/src/main/java/org/asciidoctor/ExportRenderer.java +++ b/src/main/java/org/asciidoctor/ExportRenderer.java @@ -96,7 +96,7 @@ private void renderPackage(Element packageElement){ } private void renderEnclosedElements(Element rootElement, PrintWriter writer) { - outputText(rootElement, writer); + outputText(rootElement, writer, 1); renderRootElements(new HashSet<>(rootElement.getEnclosedElements())); @@ -105,7 +105,7 @@ private void renderEnclosedElements(Element rootElement, PrintWriter writer) { subElements.removeAll(ElementFilter.packagesIn(rootElement.getEnclosedElements())); for(Element subElement : subElements) { - outputText(subElement, writer); + outputText(subElement, writer, 2); } writer.flush(); @@ -113,12 +113,12 @@ private void renderEnclosedElements(Element rootElement, PrintWriter writer) { private void outputText(List elements, PrintWriter writer) { for (Element element : elements) { - outputText(element.getSimpleName().toString(), rootDoc.getElementUtils().getDocComment(element), writer); + outputText(element.getSimpleName().toString(), rootDoc.getElementUtils().getDocComment(element), writer, 2); } } - private void outputText(Element element, PrintWriter writer) { - outputText(element.getSimpleName().toString(), rootDoc.getElementUtils().getDocComment(element), writer); + private void outputText(Element element, PrintWriter writer, int level) { + outputText(element.getSimpleName().toString(), rootDoc.getElementUtils().getDocComment(element), writer, level); } /** @@ -129,13 +129,14 @@ private void outputText(Element element, PrintWriter writer) { * @param comment the javadoc comment to export * @param writer the link:PrintWriter[] to be used to export the javadoc comment to an AsciiDoc file */ - private void outputText(String tag, String comment, PrintWriter writer) { + private void outputText(String tag, String comment, PrintWriter writer, int level) { writer.println("// tag::" + tag + "[]"); if (includeCaptions) { - writer.println(String.format("== %s", tag)); + writer.println(String.format("%s %s", ("=".repeat(level)), tag)); } writer.println(cleanJavadocInput(comment)); writer.println("// end::" + tag + "[]"); + writer.println(); } private String cleanJavadocInput(String input) {