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/02/01 10:37:28 UTC
[maven-doxia] branch master updated: [DOXIA-691] emit multiple authors in separate tags (#142)
This is an automated email from the ASF dual-hosted git repository.
kwin pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/maven-doxia.git
The following commit(s) were added to refs/heads/master by this push:
new 97c01058 [DOXIA-691] emit multiple authors in separate tags (#142)
97c01058 is described below
commit 97c0105868230068ab053107ac7784f3f30cf053
Author: Konrad Windszus <kw...@apache.org>
AuthorDate: Wed Feb 1 11:37:23 2023 +0100
[DOXIA-691] emit multiple authors in separate tags (#142)
---
.../org/apache/maven/doxia/module/apt/AptParser.java | 9 +++++++--
.../org/apache/maven/doxia/module/apt/AptSink.java | 12 +++++++-----
.../apache/maven/doxia/module/apt/AptParserTest.java | 18 ++++++++++++++++++
.../src/test/resources/test/authors.apt | 6 ++++++
4 files changed, 38 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..9420f044 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,24 @@ 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