diff --git a/commonmark/src/main/java/org/commonmark/renderer/markdown/CoreMarkdownNodeRenderer.java b/commonmark/src/main/java/org/commonmark/renderer/markdown/CoreMarkdownNodeRenderer.java index c583e657962c51379ec78a5831ffb803b4a3967e..28461c870e51b6d1f63794e33a53592345aa86bf 100644 --- a/commonmark/src/main/java/org/commonmark/renderer/markdown/CoreMarkdownNodeRenderer.java +++ b/commonmark/src/main/java/org/commonmark/renderer/markdown/CoreMarkdownNodeRenderer.java @@ -241,7 +241,12 @@ public class CoreMarkdownNodeRenderer extends AbstractVisitor implements NodeRen writer.pushPrefix(repeat(" ", contentIndent)); pushedPrefix = true; } - visitChildren(listItem); + if (listItem.getFirstChild() == null) { + // Empty list item + writer.block(); + } else { + visitChildren(listItem); + } if (pushedPrefix) { writer.popPrefix(); } diff --git a/commonmark/src/test/java/org/commonmark/renderer/markdown/MarkdownRendererTest.java b/commonmark/src/test/java/org/commonmark/renderer/markdown/MarkdownRendererTest.java index 5b3148a2dd02980ed05b7c8fc0e5b39e098e98b8..06ad79c25a211b6dd36ef1eaead180ffc4bcf4fe 100644 --- a/commonmark/src/test/java/org/commonmark/renderer/markdown/MarkdownRendererTest.java +++ b/commonmark/src/test/java/org/commonmark/renderer/markdown/MarkdownRendererTest.java @@ -90,6 +90,9 @@ public class MarkdownRendererTest { // a paragraph in the list item! So it is important for the renderer to preserve the content indent of the list // item. assertRoundTrip(" - one\n\n two\n"); + + // Empty list + assertRoundTrip("- \n\nFoo\n"); } @Test diff --git a/commonmark/src/test/java/org/commonmark/renderer/markdown/SpecMarkdownRendererTest.java b/commonmark/src/test/java/org/commonmark/renderer/markdown/SpecMarkdownRendererTest.java index fbd3bc1a6f54067d6043528a0e50abebe6717b3e..682fee9d853e84a9a57a3e6dae82f31c17ae1ab3 100644 --- a/commonmark/src/test/java/org/commonmark/renderer/markdown/SpecMarkdownRendererTest.java +++ b/commonmark/src/test/java/org/commonmark/renderer/markdown/SpecMarkdownRendererTest.java @@ -52,7 +52,7 @@ public class SpecMarkdownRendererTest { System.out.println("Failed examples by section (total " + fails.size() + "):"); printCountsBySection(fails); - int expectedPassed = 613; + int expectedPassed = 618; assertTrue("Expected at least " + expectedPassed + " examples to pass but was " + passes.size(), passes.size() >= expectedPassed); }