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 7553e5a6 [DOXIA-746] Sink API: add method for comment ending with a
line break (#236)
7553e5a6 is described below
commit 7553e5a6438e00c4bee6679c02e23ec939430474
Author: Konrad Windszus <[email protected]>
AuthorDate: Sun Oct 20 17:14:07 2024 +0200
[DOXIA-746] Sink API: add method for comment ending with a line break (#236)
Update to version 2.1.0-SNAPSHOT
---
doxia-core/pom.xml | 2 +-
.../apache/maven/doxia/sink/impl/SinkWrapper.java | 5 ++
.../maven/doxia/sink/impl/Xhtml5BaseSink.java | 46 ++++++++++-------
.../maven/doxia/sink/impl/AbstractSinkTest.java | 57 ++++++++++++++++++++++
.../doxia/sink/impl/SinkEventTestingSink.java | 5 ++
doxia-modules/doxia-module-apt/pom.xml | 2 +-
.../apache/maven/doxia/module/apt/AptParser.java | 2 +-
.../org/apache/maven/doxia/module/apt/AptSink.java | 10 ++--
.../maven/doxia/module/apt/AptParserTest.java | 26 ++++++++++
.../apache/maven/doxia/module/apt/AptSinkTest.java | 19 +++++++-
.../src/test/resources/test/comments2.apt | 6 +++
doxia-modules/doxia-module-fml/pom.xml | 2 +-
doxia-modules/doxia-module-markdown/pom.xml | 2 +-
.../maven/doxia/module/markdown/MarkdownSink.java | 16 ++++--
.../doxia/module/markdown/MarkdownSinkTest.java | 9 +++-
doxia-modules/doxia-module-xdoc/pom.xml | 2 +-
.../maven/doxia/module/xdoc/XdocSinkTest.java | 7 ++-
doxia-modules/doxia-module-xhtml5/pom.xml | 2 +-
.../maven/doxia/module/xhtml5/Xhtml5SinkTest.java | 7 ++-
doxia-modules/pom.xml | 2 +-
doxia-sink-api/pom.xml | 2 +-
.../java/org/apache/maven/doxia/sink/Sink.java | 13 +++++
doxia-test-docs/pom.xml | 2 +-
pom.xml | 4 +-
24 files changed, 206 insertions(+), 44 deletions(-)
diff --git a/doxia-core/pom.xml b/doxia-core/pom.xml
index b944cfb2..2ad545bb 100644
--- a/doxia-core/pom.xml
+++ b/doxia-core/pom.xml
@@ -23,7 +23,7 @@ under the License.
<parent>
<groupId>org.apache.maven.doxia</groupId>
<artifactId>doxia</artifactId>
- <version>2.0.1-SNAPSHOT</version>
+ <version>2.1.0-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
diff --git
a/doxia-core/src/main/java/org/apache/maven/doxia/sink/impl/SinkWrapper.java
b/doxia-core/src/main/java/org/apache/maven/doxia/sink/impl/SinkWrapper.java
index fcf5728f..b8c9fff7 100644
--- a/doxia-core/src/main/java/org/apache/maven/doxia/sink/impl/SinkWrapper.java
+++ b/doxia-core/src/main/java/org/apache/maven/doxia/sink/impl/SinkWrapper.java
@@ -513,6 +513,11 @@ public class SinkWrapper extends AbstractSink {
delegate.comment(comment);
}
+ @Override
+ public void comment(String comment, boolean endsWithLineBreak) {
+ delegate.comment(comment, endsWithLineBreak);
+ }
+
@Override
public void unknown(String name, Object[] requiredParams,
SinkEventAttributes attributes) {
delegate.unknown(name, requiredParams, attributes);
diff --git
a/doxia-core/src/main/java/org/apache/maven/doxia/sink/impl/Xhtml5BaseSink.java
b/doxia-core/src/main/java/org/apache/maven/doxia/sink/impl/Xhtml5BaseSink.java
index bbe3107e..f32aba42 100644
---
a/doxia-core/src/main/java/org/apache/maven/doxia/sink/impl/Xhtml5BaseSink.java
+++
b/doxia-core/src/main/java/org/apache/maven/doxia/sink/impl/Xhtml5BaseSink.java
@@ -1444,34 +1444,44 @@ public class Xhtml5BaseSink extends AbstractXmlSink
implements HtmlMarkup {
}
}
- /** {@inheritDoc} */
@Override
public void comment(String comment) {
+ comment(comment, false);
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public void comment(String comment, boolean endsWithLineBreak) {
if (comment != null) {
- final String originalComment = comment;
+ write(encodeAsHtmlComment(comment, endsWithLineBreak,
getLocationLogPrefix()));
+ }
+ }
- // http://www.w3.org/TR/2000/REC-xml-20001006#sec-comments
- while (comment.contains("--")) {
- comment = comment.replace("--", "- -");
- }
+ public static String encodeAsHtmlComment(String comment, boolean
endsWithLineBreak, String locationLogPrefix) {
+ final String originalComment = comment;
- if (comment.endsWith("-")) {
- comment += " ";
- }
+ // http://www.w3.org/TR/2000/REC-xml-20001006#sec-comments
+ while (comment.contains("--")) {
+ comment = comment.replace("--", "- -");
+ }
- if (!originalComment.equals(comment)) {
- LOGGER.warn(
- "{}Modified invalid comment '{}' to '{}'",
getLocationLogPrefix(), originalComment, comment);
- }
+ if (comment.endsWith("-")) {
+ comment += " ";
+ }
- final StringBuilder buffer = new StringBuilder(comment.length() +
7);
+ if (!originalComment.equals(comment)) {
+ LOGGER.warn("{}Modified invalid comment '{}' to '{}'",
locationLogPrefix, originalComment, comment);
+ }
- buffer.append(LESS_THAN).append(BANG).append(MINUS).append(MINUS);
- buffer.append(comment);
- buffer.append(MINUS).append(MINUS).append(GREATER_THAN);
+ final StringBuilder buffer = new StringBuilder(comment.length() + 7);
- write(buffer.toString());
+ buffer.append(LESS_THAN).append(BANG).append(MINUS).append(MINUS);
+ buffer.append(comment);
+ buffer.append(MINUS).append(MINUS).append(GREATER_THAN);
+ if (endsWithLineBreak) {
+ buffer.append(EOL);
}
+ return buffer.toString();
}
/**
diff --git
a/doxia-core/src/test/java/org/apache/maven/doxia/sink/impl/AbstractSinkTest.java
b/doxia-core/src/test/java/org/apache/maven/doxia/sink/impl/AbstractSinkTest.java
index e109bad1..5cd096d2 100644
---
a/doxia-core/src/test/java/org/apache/maven/doxia/sink/impl/AbstractSinkTest.java
+++
b/doxia-core/src/test/java/org/apache/maven/doxia/sink/impl/AbstractSinkTest.java
@@ -1142,6 +1142,54 @@ public abstract class AbstractSinkTest extends
AbstractModuleTest {
assertEquals(expected, actual, "Wrong comment!");
}
+ /**
+ * Checks the line separator between two consecutive comments.
+ */
+ @Test
+ public void testTwoConsecutiveInlineComments() {
+ String comment = "Simple comment";
+ sink.comment(comment);
+ sink.comment(comment);
+ sink.flush();
+ sink.close();
+ assertEquals(getCommentBlock(comment) + getCommentBlock(comment),
testWriter.toString(), "Wrong comment!");
+ }
+
+ /**
+ * Checks the line separator between two consecutive comments.
+ */
+ @Test
+ public void testTwoConsecutiveBlockComments() {
+ String comment = "Simple comment";
+ sink.comment(comment, true);
+ sink.comment(comment, true);
+ sink.flush();
+ sink.close();
+ assertEquals(
+ getCommentBlock(comment) + EOL + getCommentBlock(comment) +
EOL,
+ testWriter.toString(),
+ "Wrong comment!");
+ }
+
+ /**
+ * Checks the line separator between comment and paragraph (in most markup
languages a block element which needs to start in the new line)
+ */
+ @Test
+ public void testCommentFollowedByParagraph() {
+ String comment = "Simple comment";
+ sink.comment(comment);
+ sink.paragraph();
+ sink.text("Paragraph");
+ sink.paragraph_();
+ sink.flush();
+ sink.close();
+
+ String actual = testWriter.toString();
+ String expected = getCommentBlockFollowedByParagraph(comment,
"Paragraph");
+
+ assertEquals(expected, actual, "Wrong comment!");
+ }
+
// ----------------------------------------------------------------------
// Utility methods
// ----------------------------------------------------------------------
@@ -1545,6 +1593,15 @@ public abstract class AbstractSinkTest extends
AbstractModuleTest {
*/
protected abstract String getCommentBlock(String text);
+ /**
+ * Returns a comment block generated by this sink followed by a paragraph
block
+ * @param text The text to use.
+ * @return The result of invoking a comment block followed by a paragraph
block on the current sink.
+ * @see #testCommentFollowedByParagraph()
+ * @since 2.1.0
+ */
+ protected abstract String getCommentBlockFollowedByParagraph(String
comment, String paragraph);
+
protected final void verifyValignSup(String text) {
sink.text("ValignSup", new
SinkEventAttributeSet(SinkEventAttributes.VALIGN, "sup"));
sink.flush();
diff --git
a/doxia-core/src/test/java/org/apache/maven/doxia/sink/impl/SinkEventTestingSink.java
b/doxia-core/src/test/java/org/apache/maven/doxia/sink/impl/SinkEventTestingSink.java
index 528568ed..17bd4884 100644
---
a/doxia-core/src/test/java/org/apache/maven/doxia/sink/impl/SinkEventTestingSink.java
+++
b/doxia-core/src/test/java/org/apache/maven/doxia/sink/impl/SinkEventTestingSink.java
@@ -287,6 +287,11 @@ public class SinkEventTestingSink extends AbstractSink {
addEvent("rawText", new Object[] {text});
}
+ @Override
+ public void comment(String comment, boolean endsWithLineBreak) {
+ addEvent("comment", new Object[] {comment, endsWithLineBreak});
+ }
+
@Override
public void comment(String comment) {
addEvent("comment", new Object[] {comment});
diff --git a/doxia-modules/doxia-module-apt/pom.xml
b/doxia-modules/doxia-module-apt/pom.xml
index 7d0be7f0..2e76006e 100644
--- a/doxia-modules/doxia-module-apt/pom.xml
+++ b/doxia-modules/doxia-module-apt/pom.xml
@@ -23,7 +23,7 @@ under the License.
<parent>
<groupId>org.apache.maven.doxia</groupId>
<artifactId>doxia-modules</artifactId>
- <version>2.0.1-SNAPSHOT</version>
+ <version>2.1.0-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
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 52e8ec5a..2d9c8eb8 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
@@ -1855,7 +1855,7 @@ public class AptParser extends AbstractTextParser
implements AptMarkup {
/** {@inheritDoc} */
public void traverse() throws AptParseException {
if (isEmitComments()) {
- AptParser.this.sink.comment(text);
+ AptParser.this.sink.comment(text, true);
}
}
}
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 656f1efc..87a248f3 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
@@ -209,9 +209,6 @@ public class AptSink extends AbstractTextSink implements
AptMarkup {
public void head_() {
headerFlag = false;
- if (!startFlag) {
- write(EOL);
- }
write(HEADER_START_MARKUP + EOL);
if (title != null) {
write(" " + title + EOL);
@@ -839,7 +836,12 @@ public class AptSink extends AbstractTextSink implements
AptMarkup {
/** {@inheritDoc} */
public void comment(String comment) {
- rawText((startFlag ? "" : EOL) + COMMENT + COMMENT + comment);
+ comment(comment, false);
+ }
+
+ @Override
+ public void comment(String comment, boolean endsWithLineBreak) {
+ rawText("" + COMMENT + COMMENT + comment + EOL); // comments always
end with a line break in APT
}
/**
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 c6a6a501..f79d61cc 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
@@ -85,6 +85,32 @@ public class AptParserTest extends AbstractParserTest {
+ " -----" + EOL + " Test DOXIA-379"));
}
+ @Test
+ public void testCommentsAfterParagraph() throws Exception {
+ SinkEventTestingSink sink = new SinkEventTestingSink();
+ try (Reader reader = getTestReader("test/comments2")) {
+ createParser().parse(reader, sink);
+ }
+
+ Iterator<SinkEventElement> it = sink.getEventList().iterator();
+
+ assertSinkStartsWith(
+ it,
+ "head",
+ "head_",
+ "body",
+ "section1",
+ "sectionTitle1",
+ "text",
+ "sectionTitle1_",
+ "paragraph",
+ "text",
+ "paragraph_");
+ assertSinkEquals(it.next(), "comment", "some comment", Boolean.TRUE);
+ assertSinkEquals(it.next(), "comment", "another comment",
Boolean.TRUE);
+ assertSinkEquals(it, "paragraph", "text", "paragraph_", "section1_",
"body_");
+ }
+
@Test
public void testSnippet() throws Exception {
// DOXIA-259
diff --git
a/doxia-modules/doxia-module-apt/src/test/java/org/apache/maven/doxia/module/apt/AptSinkTest.java
b/doxia-modules/doxia-module-apt/src/test/java/org/apache/maven/doxia/module/apt/AptSinkTest.java
index 3e23c073..f27e23d8 100644
---
a/doxia-modules/doxia-module-apt/src/test/java/org/apache/maven/doxia/module/apt/AptSinkTest.java
+++
b/doxia-modules/doxia-module-apt/src/test/java/org/apache/maven/doxia/module/apt/AptSinkTest.java
@@ -355,7 +355,24 @@ public class AptSinkTest extends AbstractSinkTest {
/** {@inheritDoc} */
protected String getCommentBlock(String text) {
- return "~~" + text;
+ return "~~" + text + EOL;
+ }
+
+ @Override
+ protected String getCommentBlockFollowedByParagraph(String comment, String
paragraph) {
+ return getCommentBlock(comment) + getParagraphBlock(paragraph);
+ }
+
+ /* Overwrite the test from AbstractSinkTest as EOLs are part of
getCommentBlock(...) */
+ @Test
+ public void testTwoConsecutiveBlockComments() {
+ final Sink sink = getSink();
+ String comment = "Simple comment";
+ sink.comment(comment, true);
+ sink.comment(comment, true);
+ sink.flush();
+ sink.close();
+ assertEquals(getCommentBlock(comment) + getCommentBlock(comment),
getSinkContent(), "Wrong comment!");
}
/**
diff --git
a/doxia-modules/doxia-module-apt/src/test/resources/test/comments2.apt
b/doxia-modules/doxia-module-apt/src/test/resources/test/comments2.apt
new file mode 100644
index 00000000..5f4434bb
--- /dev/null
+++ b/doxia-modules/doxia-module-apt/src/test/resources/test/comments2.apt
@@ -0,0 +1,6 @@
+Section Title
+
+ paragraph
+~~some comment
+~~another comment
+ text
diff --git a/doxia-modules/doxia-module-fml/pom.xml
b/doxia-modules/doxia-module-fml/pom.xml
index ea6228bf..31e62efb 100644
--- a/doxia-modules/doxia-module-fml/pom.xml
+++ b/doxia-modules/doxia-module-fml/pom.xml
@@ -23,7 +23,7 @@ under the License.
<parent>
<groupId>org.apache.maven.doxia</groupId>
<artifactId>doxia-modules</artifactId>
- <version>2.0.1-SNAPSHOT</version>
+ <version>2.1.0-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
diff --git a/doxia-modules/doxia-module-markdown/pom.xml
b/doxia-modules/doxia-module-markdown/pom.xml
index 24203181..6799e15c 100644
--- a/doxia-modules/doxia-module-markdown/pom.xml
+++ b/doxia-modules/doxia-module-markdown/pom.xml
@@ -23,7 +23,7 @@ under the License.
<parent>
<groupId>org.apache.maven.doxia</groupId>
<artifactId>doxia-modules</artifactId>
- <version>2.0.1-SNAPSHOT</version>
+ <version>2.1.0-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
diff --git
a/doxia-modules/doxia-module-markdown/src/main/java/org/apache/maven/doxia/module/markdown/MarkdownSink.java
b/doxia-modules/doxia-module-markdown/src/main/java/org/apache/maven/doxia/module/markdown/MarkdownSink.java
index 51c7bf1f..9d95224a 100644
---
a/doxia-modules/doxia-module-markdown/src/main/java/org/apache/maven/doxia/module/markdown/MarkdownSink.java
+++
b/doxia-modules/doxia-module-markdown/src/main/java/org/apache/maven/doxia/module/markdown/MarkdownSink.java
@@ -35,6 +35,7 @@ import org.apache.maven.doxia.sink.Sink;
import org.apache.maven.doxia.sink.SinkEventAttributes;
import org.apache.maven.doxia.sink.impl.AbstractTextSink;
import org.apache.maven.doxia.sink.impl.SinkEventAttributeSet;
+import org.apache.maven.doxia.sink.impl.Xhtml5BaseSink;
import org.apache.maven.doxia.util.HtmlTools;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -93,13 +94,13 @@ public class MarkdownSink extends AbstractTextSink
implements MarkdownMarkup {
private String figureSrc;
- /** Most important contextual metadata (of the surrounding element) */
+ /** Most important contextual metadata (of elements). This contains
information about necessary escaping rules, potential prefixes and newlines */
enum ElementContext {
HEAD("head", Type.GENERIC_CONTAINER, null, true),
BODY("body", Type.GENERIC_CONTAINER, MarkdownSink::escapeMarkdown),
// only the elements, which affect rendering of children and are
different from BODY or HEAD are listed here
FIGURE("", Type.INLINE, MarkdownSink::escapeMarkdown, true),
- CODE_BLOCK("code block", Type.LEAF_BLOCK, null, false),
+ CODE_BLOCK("code block", Type.LEAF_BLOCK, null),
CODE_SPAN("code span", Type.INLINE, null),
TABLE_CAPTION("table caption", Type.INLINE,
MarkdownSink::escapeMarkdown),
TABLE_CELL(
@@ -270,8 +271,8 @@ public class MarkdownSink extends AbstractTextSink
implements MarkdownMarkup {
}
/**
- * Ensures that the {@link #writer} is either at the beginning or preceded
by a blank line.
- * Optionally writes a blank line to ensure that.
+ * Ensures that the {@link #writer} is preceded by a blank line.
+ * Optionally writes a blank line or just line delimiter to ensure that.
*/
private void ensureBlankLine() {
// prevent duplicate blank lines
@@ -900,7 +901,12 @@ public class MarkdownSink extends AbstractTextSink
implements MarkdownMarkup {
@Override
public void comment(String comment) {
- rawText(COMMENT_START + comment + COMMENT_END);
+ comment(comment, false);
+ }
+
+ @Override
+ public void comment(String comment, boolean endsWithLineBreak) {
+ rawText(Xhtml5BaseSink.encodeAsHtmlComment(comment, endsWithLineBreak,
getLocationLogPrefix()));
}
/**
diff --git
a/doxia-modules/doxia-module-markdown/src/test/java/org/apache/maven/doxia/module/markdown/MarkdownSinkTest.java
b/doxia-modules/doxia-module-markdown/src/test/java/org/apache/maven/doxia/module/markdown/MarkdownSinkTest.java
index 99c81f1a..d9d29345 100644
---
a/doxia-modules/doxia-module-markdown/src/test/java/org/apache/maven/doxia/module/markdown/MarkdownSinkTest.java
+++
b/doxia-modules/doxia-module-markdown/src/test/java/org/apache/maven/doxia/module/markdown/MarkdownSinkTest.java
@@ -332,9 +332,14 @@ public class MarkdownSinkTest extends AbstractSinkTest {
return
text.replaceAll("\\\\|\\`|\\*|_|\\{|\\}|\\[|\\]|\\(|\\)|#|\\+|\\-|\\.|\\!",
"\\\\$0");
}
- /** {@inheritDoc} */
+ @Override
protected String getCommentBlock(String text) {
- return "<!-- " + text + " -->";
+ return "<!--" + toXmlComment(text) + "-->";
+ }
+
+ @Override
+ protected String getCommentBlockFollowedByParagraph(String comment, String
paragraph) {
+ return getCommentBlock(comment) + EOL + EOL +
getParagraphBlock(paragraph); // paragraph separated by blank line
}
@Test
diff --git a/doxia-modules/doxia-module-xdoc/pom.xml
b/doxia-modules/doxia-module-xdoc/pom.xml
index 345b83cf..59e16d97 100644
--- a/doxia-modules/doxia-module-xdoc/pom.xml
+++ b/doxia-modules/doxia-module-xdoc/pom.xml
@@ -23,7 +23,7 @@ under the License.
<parent>
<groupId>org.apache.maven.doxia</groupId>
<artifactId>doxia-modules</artifactId>
- <version>2.0.1-SNAPSHOT</version>
+ <version>2.1.0-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
diff --git
a/doxia-modules/doxia-module-xdoc/src/test/java/org/apache/maven/doxia/module/xdoc/XdocSinkTest.java
b/doxia-modules/doxia-module-xdoc/src/test/java/org/apache/maven/doxia/module/xdoc/XdocSinkTest.java
index de16c6af..3f0315c4 100644
---
a/doxia-modules/doxia-module-xdoc/src/test/java/org/apache/maven/doxia/module/xdoc/XdocSinkTest.java
+++
b/doxia-modules/doxia-module-xdoc/src/test/java/org/apache/maven/doxia/module/xdoc/XdocSinkTest.java
@@ -373,8 +373,13 @@ public class XdocSinkTest extends AbstractSinkTest {
assertEquals("<a href=\"name\"></a><a target=\"nirvana\"
href=\"name\"></a>", writer.toString());
}
- /** {@inheritDoc} */
+ @Override
protected String getCommentBlock(String text) {
return "<!--" + toXmlComment(text) + "-->";
}
+
+ @Override
+ protected String getCommentBlockFollowedByParagraph(String comment, String
paragraph) {
+ return getCommentBlock(comment) + getParagraphBlock(paragraph); // no
line break in between
+ }
}
diff --git a/doxia-modules/doxia-module-xhtml5/pom.xml
b/doxia-modules/doxia-module-xhtml5/pom.xml
index a60d6d19..3fe71906 100644
--- a/doxia-modules/doxia-module-xhtml5/pom.xml
+++ b/doxia-modules/doxia-module-xhtml5/pom.xml
@@ -23,7 +23,7 @@ under the License.
<parent>
<groupId>org.apache.maven.doxia</groupId>
<artifactId>doxia-modules</artifactId>
- <version>2.0.1-SNAPSHOT</version>
+ <version>2.1.0-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
diff --git
a/doxia-modules/doxia-module-xhtml5/src/test/java/org/apache/maven/doxia/module/xhtml5/Xhtml5SinkTest.java
b/doxia-modules/doxia-module-xhtml5/src/test/java/org/apache/maven/doxia/module/xhtml5/Xhtml5SinkTest.java
index 875c246a..c125ee11 100644
---
a/doxia-modules/doxia-module-xhtml5/src/test/java/org/apache/maven/doxia/module/xhtml5/Xhtml5SinkTest.java
+++
b/doxia-modules/doxia-module-xhtml5/src/test/java/org/apache/maven/doxia/module/xhtml5/Xhtml5SinkTest.java
@@ -404,8 +404,13 @@ public class Xhtml5SinkTest extends AbstractSinkTest {
assertTrue(actual.contains(expected), actual);
}
- /** {@inheritDoc} */
+ @Override
protected String getCommentBlock(String text) {
return "<!--" + toXmlComment(text) + "-->";
}
+
+ @Override
+ protected String getCommentBlockFollowedByParagraph(String comment, String
paragraph) {
+ return getCommentBlock(comment) + getParagraphBlock(paragraph); // no
line break in between
+ }
}
diff --git a/doxia-modules/pom.xml b/doxia-modules/pom.xml
index a1e118e7..83bed694 100644
--- a/doxia-modules/pom.xml
+++ b/doxia-modules/pom.xml
@@ -23,7 +23,7 @@ under the License.
<parent>
<groupId>org.apache.maven.doxia</groupId>
<artifactId>doxia</artifactId>
- <version>2.0.1-SNAPSHOT</version>
+ <version>2.1.0-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
diff --git a/doxia-sink-api/pom.xml b/doxia-sink-api/pom.xml
index 577beb29..82265c11 100644
--- a/doxia-sink-api/pom.xml
+++ b/doxia-sink-api/pom.xml
@@ -23,7 +23,7 @@ under the License.
<parent>
<groupId>org.apache.maven.doxia</groupId>
<artifactId>doxia</artifactId>
- <version>2.0.1-SNAPSHOT</version>
+ <version>2.1.0-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
diff --git a/doxia-sink-api/src/main/java/org/apache/maven/doxia/sink/Sink.java
b/doxia-sink-api/src/main/java/org/apache/maven/doxia/sink/Sink.java
index ec4d2833..4e86588d 100644
--- a/doxia-sink-api/src/main/java/org/apache/maven/doxia/sink/Sink.java
+++ b/doxia-sink-api/src/main/java/org/apache/maven/doxia/sink/Sink.java
@@ -1718,12 +1718,25 @@ public interface Sink extends AutoCloseable {
/**
* Add a comment.
+ * Semantically the same as {@link #comment(String, boolean)} with second
argument being {@code false}.
*
* @param comment The comment to write.
* @since 1.1
+ * @see #comment(String, boolean)
*/
void comment(String comment);
+ /**
+ * Add a comment. The default implementation will just call {@link
#comment(String)}.
+ *
+ * @param comment The comment to write.
+ * @param endsWithLineBreak If {@code true} comment ends with a line
break, i.e. nothing else should follow on the same line
+ * @since 2.1.0
+ */
+ default void comment(String comment, boolean endsWithLineBreak) {
+ comment(comment);
+ }
+
/**
* Add an unknown event. This may be used by parsers to notify a general
Sink about
* an event that doesn't fit into any event defined by the Sink API.
diff --git a/doxia-test-docs/pom.xml b/doxia-test-docs/pom.xml
index 3843cf1a..168389c8 100644
--- a/doxia-test-docs/pom.xml
+++ b/doxia-test-docs/pom.xml
@@ -23,7 +23,7 @@ under the License.
<parent>
<groupId>org.apache.maven.doxia</groupId>
<artifactId>doxia</artifactId>
- <version>2.0.1-SNAPSHOT</version>
+ <version>2.1.0-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
diff --git a/pom.xml b/pom.xml
index 73efb278..c7ae47c6 100644
--- a/pom.xml
+++ b/pom.xml
@@ -29,7 +29,7 @@ under the License.
<groupId>org.apache.maven.doxia</groupId>
<artifactId>doxia</artifactId>
- <version>2.0.1-SNAPSHOT</version>
+ <version>2.1.0-SNAPSHOT</version>
<packaging>pom</packaging>
<name>Doxia</name>
@@ -84,7 +84,7 @@ under the License.
<javaVersion>8</javaVersion>
<maven.site.path>doxia-archives/doxia-LATEST</maven.site.path>
<checkstyle.violation.ignore>RedundantThrows,NewlineAtEndOfFile,ParameterNumber,MethodLength,FileLength,MethodName,InnerAssignment,MagicNumber</checkstyle.violation.ignore>
-
<project.build.outputTimestamp>2024-09-28T17:58:29Z</project.build.outputTimestamp>
+
<project.build.outputTimestamp>2024-10-20T15:01:56Z</project.build.outputTimestamp>
<slf4jVersion>1.7.36</slf4jVersion>
<xmlunitVersion>2.10.0</xmlunitVersion>
</properties>