This is an automated email from the ASF dual-hosted git repository.

kwin pushed a commit to branch bugfix/prevent-too-many-newlines-in-markdown-sink
in repository https://gitbox.apache.org/repos/asf/maven-doxia.git

commit e21972b1ab20a3cf92c2e9a7f5ac8529c9a8058f
Author: Konrad Windszus <[email protected]>
AuthorDate: Mon Mar 9 20:16:49 2026 +0100

    Only emit markupLineBreak if writer is not already in blank line.
---
 .../apache/maven/doxia/module/markdown/MarkdownSink.java    |  4 +++-
 .../maven/doxia/module/markdown/MarkdownSinkTest.java       | 13 +++++++++++++
 2 files changed, 16 insertions(+), 1 deletion(-)

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 fbc1d166..3a71b571 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
@@ -1300,7 +1300,9 @@ public class MarkdownSink extends Xhtml5BaseSink 
implements MarkdownMarkup {
     public void markupLineBreak(int indentLevel) {
         // not allowed in all contexts
         if (elementContextStack.element().isAllowsMarkupLinebreaks()) {
-            super.markupLineBreak(indentLevel);
+            if (!lineAwareWriter.isWriterAfterBlankLine()) {
+                super.markupLineBreak(indentLevel);
+            }
         }
     }
 
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 d161f327..ce9904d6 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
@@ -631,6 +631,18 @@ class MarkdownSinkTest extends AbstractSinkTest {
         assertEquals(expected, getSinkContent(), "Wrong metadata section");
     }
 
+    @Test
+    void insignificantWhitespaceAfterBlockElement() {
+        try (Sink sink = getSink()) {
+            sink.paragraph();
+            sink.text("paragraph");
+            sink.paragraph_();
+            sink.markupLineBreak(4); // this should be ignored as paragraph_() 
in markdown is already followed by a blank line
+            sink.text("text after insignificant whitespace");
+        }
+        String expected = "paragraph" + EOL + EOL + "text after insignificant 
whitespace";
+        assertEquals(expected, getSinkContent());
+    }
     @Test
     void listItemsContainingInsignificantWhitespace() {
         try (Sink sink = getSink()) {
@@ -676,4 +688,5 @@ class MarkdownSinkTest extends AbstractSinkTest {
                 + EOL + EOL;
         assertEquals(expected, getSinkContent());
     }
+
 }

Reply via email to