From 5c0d09e38fbee96507b2c6c4bfe48125094de5ab Mon Sep 17 00:00:00 2001 From: rnentjes Date: Sat, 31 Jan 2026 15:18:32 +0100 Subject: [PATCH] Add test for ordered list parsing with multi-line items, update parser to increment list index correctly, and bump version to 2.0.1. --- .../markdown_parser_js_1_0_10_SNAPSHOT.xml | 8 +++++++ .../markdown_parser_js_1_0_11_SNAPSHOT.xml | 8 +++++++ .../markdown_parser_js_1_0_6_SNAPSHOT.xml | 8 +++++++ .idea/artifacts/markdown_parser_js_1_1_0.xml | 8 +++++++ .../markdown_parser_jvm_1_0_10_SNAPSHOT.xml | 8 +++++++ .../markdown_parser_jvm_1_0_11_SNAPSHOT.xml | 8 +++++++ .../markdown_parser_jvm_1_0_6_SNAPSHOT.xml | 8 +++++++ .idea/artifacts/markdown_parser_jvm_1_1_0.xml | 8 +++++++ .idea/checkstyle-idea.xml | 15 +++++++++++++ build.gradle.kts | 2 +- .../nl/astraeus/markdown/parser/Parser.kt | 3 ++- .../nl/astraeus/markdown/parser/ParseTest.kt | 22 +++++++++++++++++++ 12 files changed, 104 insertions(+), 2 deletions(-) create mode 100644 .idea/artifacts/markdown_parser_js_1_0_10_SNAPSHOT.xml create mode 100644 .idea/artifacts/markdown_parser_js_1_0_11_SNAPSHOT.xml create mode 100644 .idea/artifacts/markdown_parser_js_1_0_6_SNAPSHOT.xml create mode 100644 .idea/artifacts/markdown_parser_js_1_1_0.xml create mode 100644 .idea/artifacts/markdown_parser_jvm_1_0_10_SNAPSHOT.xml create mode 100644 .idea/artifacts/markdown_parser_jvm_1_0_11_SNAPSHOT.xml create mode 100644 .idea/artifacts/markdown_parser_jvm_1_0_6_SNAPSHOT.xml create mode 100644 .idea/artifacts/markdown_parser_jvm_1_1_0.xml create mode 100644 .idea/checkstyle-idea.xml diff --git a/.idea/artifacts/markdown_parser_js_1_0_10_SNAPSHOT.xml b/.idea/artifacts/markdown_parser_js_1_0_10_SNAPSHOT.xml new file mode 100644 index 0000000..37cce42 --- /dev/null +++ b/.idea/artifacts/markdown_parser_js_1_0_10_SNAPSHOT.xml @@ -0,0 +1,8 @@ + + + $PROJECT_DIR$/build/libs + + + + + \ No newline at end of file diff --git a/.idea/artifacts/markdown_parser_js_1_0_11_SNAPSHOT.xml b/.idea/artifacts/markdown_parser_js_1_0_11_SNAPSHOT.xml new file mode 100644 index 0000000..68c6acc --- /dev/null +++ b/.idea/artifacts/markdown_parser_js_1_0_11_SNAPSHOT.xml @@ -0,0 +1,8 @@ + + + $PROJECT_DIR$/build/libs + + + + + \ No newline at end of file diff --git a/.idea/artifacts/markdown_parser_js_1_0_6_SNAPSHOT.xml b/.idea/artifacts/markdown_parser_js_1_0_6_SNAPSHOT.xml new file mode 100644 index 0000000..3e8eb08 --- /dev/null +++ b/.idea/artifacts/markdown_parser_js_1_0_6_SNAPSHOT.xml @@ -0,0 +1,8 @@ + + + $PROJECT_DIR$/build/libs + + + + + \ No newline at end of file diff --git a/.idea/artifacts/markdown_parser_js_1_1_0.xml b/.idea/artifacts/markdown_parser_js_1_1_0.xml new file mode 100644 index 0000000..cacd420 --- /dev/null +++ b/.idea/artifacts/markdown_parser_js_1_1_0.xml @@ -0,0 +1,8 @@ + + + $PROJECT_DIR$/build/libs + + + + + \ No newline at end of file diff --git a/.idea/artifacts/markdown_parser_jvm_1_0_10_SNAPSHOT.xml b/.idea/artifacts/markdown_parser_jvm_1_0_10_SNAPSHOT.xml new file mode 100644 index 0000000..2a4581b --- /dev/null +++ b/.idea/artifacts/markdown_parser_jvm_1_0_10_SNAPSHOT.xml @@ -0,0 +1,8 @@ + + + $PROJECT_DIR$/build/libs + + + + + \ No newline at end of file diff --git a/.idea/artifacts/markdown_parser_jvm_1_0_11_SNAPSHOT.xml b/.idea/artifacts/markdown_parser_jvm_1_0_11_SNAPSHOT.xml new file mode 100644 index 0000000..249e232 --- /dev/null +++ b/.idea/artifacts/markdown_parser_jvm_1_0_11_SNAPSHOT.xml @@ -0,0 +1,8 @@ + + + $PROJECT_DIR$/build/libs + + + + + \ No newline at end of file diff --git a/.idea/artifacts/markdown_parser_jvm_1_0_6_SNAPSHOT.xml b/.idea/artifacts/markdown_parser_jvm_1_0_6_SNAPSHOT.xml new file mode 100644 index 0000000..dafe6a2 --- /dev/null +++ b/.idea/artifacts/markdown_parser_jvm_1_0_6_SNAPSHOT.xml @@ -0,0 +1,8 @@ + + + $PROJECT_DIR$/build/libs + + + + + \ No newline at end of file diff --git a/.idea/artifacts/markdown_parser_jvm_1_1_0.xml b/.idea/artifacts/markdown_parser_jvm_1_1_0.xml new file mode 100644 index 0000000..9ffd2c0 --- /dev/null +++ b/.idea/artifacts/markdown_parser_jvm_1_1_0.xml @@ -0,0 +1,8 @@ + + + $PROJECT_DIR$/build/libs + + + + + \ No newline at end of file diff --git a/.idea/checkstyle-idea.xml b/.idea/checkstyle-idea.xml new file mode 100644 index 0000000..689cd44 --- /dev/null +++ b/.idea/checkstyle-idea.xml @@ -0,0 +1,15 @@ + + + + 13.0.0 + JavaOnly + + + \ No newline at end of file diff --git a/build.gradle.kts b/build.gradle.kts index 58a523b..13f3806 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -8,7 +8,7 @@ plugins { } group = "nl.astraeus" -version = "2.0.0" +version = "2.0.1" 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 804932f..33d847a 100644 --- a/src/commonMain/kotlin/nl/astraeus/markdown/parser/Parser.kt +++ b/src/commonMain/kotlin/nl/astraeus/markdown/parser/Parser.kt @@ -46,10 +46,11 @@ fun markdown(text: String): List { parseBuffer() continue } else if ( - line.startsWith("${listIndex++}.") + line.startsWith("${listIndex}.") || line.startsWith("-.") || line.startsWith("#.") ) { + listIndex++ buffer.append("\n") buffer.append(rawLine) } else { diff --git a/src/commonTest/kotlin/nl/astraeus/markdown/parser/ParseTest.kt b/src/commonTest/kotlin/nl/astraeus/markdown/parser/ParseTest.kt index fce3160..7f34cf8 100644 --- a/src/commonTest/kotlin/nl/astraeus/markdown/parser/ParseTest.kt +++ b/src/commonTest/kotlin/nl/astraeus/markdown/parser/ParseTest.kt @@ -225,6 +225,28 @@ class ParseTest { assertEquals("Second More text", list.lines[1].text) } + @Test + fun testOrderedListNumbers() { + val input = """ + Dit is een text + + 1. Item 1. + Long notes can span multiple lines in edit mode. + 2. Item 2 + 3. Item 3 + + Another paragraph + """.trimIndent() + + val md = markdown(input) + + assertEquals(3, md.size) + val list = md[1] as MarkdownPart.OrderedList + assertEquals(3, list.lines.size) + assertEquals("Item 1. Long notes can span multiple lines in edit mode.", list.lines[0].text) + assertEquals("Item 2", list.lines[1].text) + } + @Test fun testCheckboxList() { val input = """