Skip to content

Commit 971aaa9

Browse files
committed
MarkdownRenderer: Fix ordered list with long start number (fixes #382)
1 parent 32c9290 commit 971aaa9

File tree

3 files changed

+10
-1
lines changed

3 files changed

+10
-1
lines changed

CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@ with the exception that 0.x versions can break between minor versions.
1515
### Fixed
1616
- `MarkdownRenderer`: Fix precedence for `nodeRendererFactory`: Factories passed
1717
to the builder can now override rendering for core node types.
18+
- `MarkdownRenderer`: Fix exception with ordered lists with a long first number
19+
followed by a shorter one (#382)
1820
- Fix warning in Eclipse about "missing 'requires transitive'"
1921
- Fix Android incompatibility with `requireNonNullElseGet`
2022

commonmark/src/main/java/org/commonmark/renderer/markdown/CoreMarkdownNodeRenderer.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -257,7 +257,7 @@ public void visit(ListItem listItem) {
257257
throw new IllegalStateException("Unknown list holder type: " + listHolder);
258258
}
259259
Integer contentIndent = listItem.getContentIndent();
260-
String spaces = contentIndent != null ? repeat(" ", contentIndent - marker.length()) : " ";
260+
String spaces = contentIndent != null ? repeat(" ", Math.max(contentIndent - marker.length(), 1)) : " ";
261261
writer.writePrefix(marker);
262262
writer.writePrefix(spaces);
263263
writer.pushPrefix(repeat(" ", marker.length() + spaces.length()));

commonmark/src/test/java/org/commonmark/renderer/markdown/MarkdownRendererTest.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -176,6 +176,13 @@ public void testOrderedListItemsFromAst() {
176176
assertRendering("", "2) Test\n", render(doc));
177177
}
178178

179+
@Test
180+
public void testOrderedListItemsWithStartNumberLongerThanLaterNumber() {
181+
var source = "10001.\n20.\n";
182+
var doc = parse(source);
183+
assertRendering(source, "10001. \n10002. \n", render(doc));
184+
}
185+
179186
// Inlines
180187

181188
@Test

0 commit comments

Comments
 (0)