Extend list parsing to handle multi-line items, improve checkbox list parsing with edge case handling, add unordered/ordered list tests, and update version to 1.0.6.

This commit is contained in:
2026-01-10 12:45:33 +01:00
parent 7f48f5d5cd
commit fd4d383c52
3 changed files with 20 additions and 1 deletions

View File

@@ -8,7 +8,7 @@ plugins {
} }
group = "nl.astraeus" group = "nl.astraeus"
version = "1.0.6" version = "1.0.7"
repositories { repositories {
mavenCentral() mavenCentral()

View File

@@ -182,6 +182,9 @@ fun markdown(text: String): List<MarkdownPart> {
} }
if (type == MarkdownType.CHECKBOX_LIST) { if (type == MarkdownType.CHECKBOX_LIST) {
if (buffer.isNotBlank()) {
addCheckbox(checkboxList, index, buffer)
}
parts.add(MarkdownPart.CheckboxList(checkboxList)) parts.add(MarkdownPart.CheckboxList(checkboxList))
} else { } else {
parseBuffer() parseBuffer()

View File

@@ -105,6 +105,22 @@ class ParseTest {
printMarkdownParts(md) printMarkdownParts(md)
} }
@Test
fun testCheckboxList2() {
val input = """
# Todo
- [ ] Handle multi line lists correctly;
as long as there is no empty line the text is appended to last item in the list
- [x] Autolinks, text between < > will be parsed as a generic link. It's up
to the using application what to do with it.""".trimIndent()
val md = markdown(input)
printMarkdownParts(md)
}
@Test @Test
fun testCheckboxListError() { fun testCheckboxListError() {
val input = """ val input = """