You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by kw...@apache.org on 2023/01/24 19:54:50 UTC
[maven-doxia] branch bugfix/apt-multiple-authors created (now 9c6043c0)
This is an automated email from the ASF dual-hosted git repository.
kwin pushed a change to branch bugfix/apt-multiple-authors
in repository https://gitbox.apache.org/repos/asf/maven-doxia.git
at 9c6043c0 [DOXIA-691] emit multiple authors in separate tags
This branch includes the following new commits:
new 9c6043c0 [DOXIA-691] emit multiple authors in separate tags
The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
[maven-doxia] 01/01: [DOXIA-691] emit multiple authors in separate tags
Posted by kw...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
kwin pushed a commit to branch bugfix/apt-multiple-authors
in repository https://gitbox.apache.org/repos/asf/maven-doxia.git
commit 9c6043c04c0174735b1d07039daf4748c931c7e5
Author: Konrad Windszus <kw...@apache.org>
AuthorDate: Tue Jan 24 20:54:42 2023 +0100
[DOXIA-691] emit multiple authors in separate tags
---
.../org/apache/maven/doxia/module/apt/AptParser.java | 9 +++++++--
.../java/org/apache/maven/doxia/module/apt/AptSink.java | 12 +++++++-----
.../org/apache/maven/doxia/module/apt/AptParserTest.java | 16 ++++++++++++++++
.../doxia-module-apt/src/test/resources/test/authors.apt | 6 ++++++
4 files changed, 36 insertions(+), 7 deletions(-)
diff --git a/doxia-modules/doxia-module-apt/src/main/java/org/apache/maven/doxia/module/apt/AptParser.java b/doxia-modules/doxia-module-apt/src/main/java/org/apache/maven/doxia/module/apt/AptParser.java
index 9bbdef60..c020a8a6 100644
--- a/doxia-modules/doxia-module-apt/src/main/java/org/apache/maven/doxia/module/apt/AptParser.java
+++ b/doxia-modules/doxia-module-apt/src/main/java/org/apache/maven/doxia/module/apt/AptParser.java
@@ -1617,8 +1617,13 @@ public class AptParser extends AbstractTextParser implements AptMarkup {
break;
}
} else {
- // An implicit lineBreak separates title lines.
- AptParser.this.sink.lineBreak();
+ if (separator == 1) {
+ AptParser.this.sink.author_();
+ AptParser.this.sink.author();
+ } else {
+ // An implicit lineBreak separates title lines.
+ AptParser.this.sink.lineBreak();
+ }
}
AptParser.this.doTraverseText(line, 0, lineLength, AptParser.this.sink);
diff --git a/doxia-modules/doxia-module-apt/src/main/java/org/apache/maven/doxia/module/apt/AptSink.java b/doxia-modules/doxia-module-apt/src/main/java/org/apache/maven/doxia/module/apt/AptSink.java
index 0ce30749..0078723b 100644
--- a/doxia-modules/doxia-module-apt/src/main/java/org/apache/maven/doxia/module/apt/AptSink.java
+++ b/doxia-modules/doxia-module-apt/src/main/java/org/apache/maven/doxia/module/apt/AptSink.java
@@ -23,6 +23,8 @@ import javax.swing.text.MutableAttributeSet;
import java.io.PrintWriter;
import java.io.Writer;
import java.util.ArrayList;
+import java.util.Collection;
+import java.util.LinkedList;
import java.util.List;
import java.util.Stack;
@@ -55,8 +57,8 @@ public class AptSink extends AbstractTextSink implements AptMarkup {
/** A buffer that holds the table caption. */
private StringBuilder tableCaptionBuffer;
- /** author. */
- private String author;
+ /** authors. */
+ private Collection<String> authors;
/** title. */
private String title;
@@ -158,7 +160,7 @@ public class AptSink extends AbstractTextSink implements AptMarkup {
this.tableCaptionBuffer = new StringBuilder();
this.listNestingIndent = "";
- this.author = null;
+ this.authors = new LinkedList<>();
this.title = null;
this.date = null;
this.startFlag = true;
@@ -217,7 +219,7 @@ public class AptSink extends AbstractTextSink implements AptMarkup {
write(" " + title + EOL);
}
write(HEADER_START_MARKUP + EOL);
- if (author != null) {
+ for (String author : authors) {
write(" " + author + EOL);
}
write(HEADER_START_MARKUP + EOL);
@@ -242,7 +244,7 @@ public class AptSink extends AbstractTextSink implements AptMarkup {
*/
public void author_() {
if (buffer.length() > 0) {
- author = buffer.toString();
+ authors.add(buffer.toString());
resetBuffer();
}
}
diff --git a/doxia-modules/doxia-module-apt/src/test/java/org/apache/maven/doxia/module/apt/AptParserTest.java b/doxia-modules/doxia-module-apt/src/test/java/org/apache/maven/doxia/module/apt/AptParserTest.java
index ee736e66..6292976b 100644
--- a/doxia-modules/doxia-module-apt/src/test/java/org/apache/maven/doxia/module/apt/AptParserTest.java
+++ b/doxia-modules/doxia-module-apt/src/test/java/org/apache/maven/doxia/module/apt/AptParserTest.java
@@ -486,6 +486,22 @@ public class AptParserTest extends AbstractParserTest {
assertSinkEquals(it, "link_", "sectionTitle1_", "section1_", "body_");
}
+ @Test
+ public void testMultipleAuthors() throws Exception {
+ // DOXIA-691
+ String head = parseFileToAptSink("test/authors");
+
+ SinkEventTestingSink sink = new SinkEventTestingSink();
+
+ parser.parse(head, sink);
+
+ Iterator<SinkEventElement> it = sink.getEventList().iterator();
+
+ assertSinkEquals(it, "head", "title", "text", "title_", "author", "text", "author_", "author", "text", "author_", "head_", "body", "body_");
+ assertSinkEquals(sink.getEventList().get(5), "text", "Konrad Windszus");
+ assertSinkEquals(sink.getEventList().get(8), "text", "Another author");
+ }
+
protected String outputExtension() {
return "apt";
}
diff --git a/doxia-modules/doxia-module-apt/src/test/resources/test/authors.apt b/doxia-modules/doxia-module-apt/src/test/resources/test/authors.apt
new file mode 100644
index 00000000..00b7251a
--- /dev/null
+++ b/doxia-modules/doxia-module-apt/src/test/resources/test/authors.apt
@@ -0,0 +1,6 @@
+ -----
+ Test DOXIA-691
+ -----
+ Konrad Windszus
+ Another author
+ -----
\ No newline at end of file