From deb96c665e8c79be36d5439110d8284836881f28 Mon Sep 17 00:00:00 2001 From: rnentjes Date: Fri, 16 Jan 2026 09:46:58 +0100 Subject: [PATCH] Add new test for complex checkbox list parsing, update parser to reset `checkboxList` correctly, and bump version to 1.0.11 --- build.gradle.kts | 2 +- .../nl/astraeus/markdown/parser/Parser.kt | 4 +-- .../nl/astraeus/markdown/parser/ParseTest.kt | 28 +++++++++++++++++++ 3 files changed, 31 insertions(+), 3 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index f042616..b7b36c3 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -8,7 +8,7 @@ plugins { } group = "nl.astraeus" -version = "1.0.10" +version = "1.0.11" repositories { mavenCentral() diff --git a/src/commonMain/kotlin/nl/astraeus/markdown/parser/Parser.kt b/src/commonMain/kotlin/nl/astraeus/markdown/parser/Parser.kt index e2a2af7..a83989d 100644 --- a/src/commonMain/kotlin/nl/astraeus/markdown/parser/Parser.kt +++ b/src/commonMain/kotlin/nl/astraeus/markdown/parser/Parser.kt @@ -20,7 +20,7 @@ fun markdown(text: String): List { var index = 0 val buffer = StringBuilder() - val checkboxList = mutableListOf() + var checkboxList = mutableListOf() fun parseBuffer() { if (buffer.isNotBlank()) { @@ -59,7 +59,7 @@ fun markdown(text: String): List { addCheckbox(checkboxList, checkboxLine, buffer) } parts.add(MarkdownPart.CheckboxList(checkboxList)) - checkboxList.clear() + checkboxList = mutableListOf() parseBuffer() continue } else if (line.startsWith("- [ ]") || line.startsWith("- [x]")) { diff --git a/src/commonTest/kotlin/nl/astraeus/markdown/parser/ParseTest.kt b/src/commonTest/kotlin/nl/astraeus/markdown/parser/ParseTest.kt index 0822ae8..5e0b99d 100644 --- a/src/commonTest/kotlin/nl/astraeus/markdown/parser/ParseTest.kt +++ b/src/commonTest/kotlin/nl/astraeus/markdown/parser/ParseTest.kt @@ -156,6 +156,34 @@ class ParseTest { printMarkdownParts(md) } + @Test + fun testCheckboxList3() { + val input = """ + Dit is een text + + - [ ] Not checked, + with some more text here + - [x] Checked! + - [x] Checked, + text it! + + Nog 1: + + + - [ ] Not checked, + with some more text here + - [x] Checked! + - [x] Checked, + text it! + + Meer text + """.trimIndent() + + val md = markdown(input) + + printMarkdownParts(md) + } + @Test fun testCheckboxListError() {