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

kwin pushed a commit to branch bugfix/nested-lists-are-always-loose
in repository https://gitbox.apache.org/repos/asf/maven-doxia.git

commit f0a40a215f5c420ee73c70b6fd445fe28f05c198
Author: Konrad Windszus <k...@apache.org>
AuthorDate: Tue Oct 22 13:24:31 2024 +0200

    [DOXIA-753] Do not end lists with a blank line
    
    Otherwise every nested list is implicitly "loose" instead of "tight"
---
 .../maven/doxia/module/markdown/MarkdownSink.java  |  4 +--
 .../doxia/module/markdown/MarkdownSinkTest.java    | 39 +++++++++++++++++++---
 2 files changed, 37 insertions(+), 6 deletions(-)

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 5cdb78b5..4463a63e 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
@@ -448,7 +448,7 @@ public class MarkdownSink extends AbstractTextSink 
implements MarkdownMarkup {
 
     @Override
     public void list_() {
-        ensureBlankLine();
+        ensureBeginningOfLine();
     }
 
     @Override
@@ -476,7 +476,7 @@ public class MarkdownSink extends AbstractTextSink 
implements MarkdownMarkup {
 
     @Override
     public void numberedList_() {
-        writeUnescaped(EOL);
+        ensureBeginningOfLine();
     }
 
     @Override
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 cda8c930..73e62516 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
@@ -157,12 +157,12 @@ public class MarkdownSinkTest extends AbstractSinkTest {
 
     /** {@inheritDoc} */
     protected String getListBlock(String item) {
-        return MarkdownMarkup.LIST_UNORDERED_ITEM_START_MARKUP + 
getEscapedText(item) + EOL + EOL;
+        return MarkdownMarkup.LIST_UNORDERED_ITEM_START_MARKUP + 
getEscapedText(item) + EOL;
     }
 
     /** {@inheritDoc} */
     protected String getNumberedListBlock(String item) {
-        return MarkdownMarkup.LIST_ORDERED_ITEM_START_MARKUP + 
getEscapedText(item) + EOL + EOL;
+        return MarkdownMarkup.LIST_ORDERED_ITEM_START_MARKUP + 
getEscapedText(item) + EOL;
     }
 
     /** {@inheritDoc} */
@@ -486,7 +486,6 @@ public class MarkdownSinkTest extends AbstractSinkTest {
 
         String expected = "- item1" + EOL
                 + "    - item1a" + EOL
-                + EOL
                 + "- " + EOL + EOL
                 + "    > blockquote" + EOL + EOL
                 + "- item3" + EOL
@@ -548,7 +547,7 @@ public class MarkdownSinkTest extends AbstractSinkTest {
 
         String expected = "- Before" + EOL + EOL + MarkdownMarkup.INDENT + 
MarkdownMarkup.VERBATIM_START_MARKUP + EOL
                 + MarkdownMarkup.INDENT + "codeline1" + EOL + 
MarkdownMarkup.INDENT + "codeline2" + EOL
-                + MarkdownMarkup.INDENT + MarkdownMarkup.VERBATIM_END_MARKUP + 
EOL + EOL + "After" + EOL + EOL;
+                + MarkdownMarkup.INDENT + MarkdownMarkup.VERBATIM_END_MARKUP + 
EOL + EOL + "After" + EOL;
         assertEquals(expected, getSinkContent(), "Wrong verbatim!");
     }
 
@@ -570,4 +569,36 @@ public class MarkdownSinkTest extends AbstractSinkTest {
                 + "<dd>prefix 
<code>code</code><em>suffix&lt;a&gt;test&lt;/a&gt;</em></dd>" + EOL + "</dl>" + 
EOL + EOL;
         assertEquals(expected, getSinkContent(), "Wrong heading after inline 
element!");
     }
+
+    @Test
+    public void testNestedListBeingTight() {
+        try (final Sink sink = getSink()) {
+            sink.list();
+            sink.listItem();
+            sink.text("item 1");
+            sink.listItem_();
+            sink.listItem();
+            sink.text("item 2");
+            sink.list();
+            sink.listItem();
+            sink.text("item 2 a");
+            sink.listItem_();
+            sink.listItem();
+            sink.text("item 2 b");
+            sink.listItem_();
+            sink.list_();
+            sink.listItem_();
+            sink.list_();
+            sink.listItem();
+            sink.text("item 3");
+            sink.listItem_();
+            sink.list();
+        }
+        String expected = "- item 1" + EOL
+                + "- item 2" + EOL
+                + "    - item 2 a" + EOL
+                + "    - item 2 b" + EOL
+                + "- item 3" + EOL;
+        assertEquals(expected, getSinkContent());
+    }
 }

Reply via email to