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:53:08 +01:00
parent fd4d383c52
commit 22d99dbda6
2 changed files with 7 additions and 4 deletions

View File

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

View File

@@ -16,6 +16,7 @@ fun markdown(text: String): List<MarkdownPart> {
var language = ""
var type = MarkdownType.PARAGRAPH
var listIndex = 1
var checkboxLine = 0
var index = 0
val buffer = StringBuilder()
@@ -51,15 +52,16 @@ fun markdown(text: String): List<MarkdownPart> {
type == MarkdownType.CHECKBOX_LIST -> {
if (line.isBlank()) {
if (buffer.isNotBlank()) {
addCheckbox(checkboxList, index, buffer)
addCheckbox(checkboxList, checkboxLine, buffer)
}
parts.add(MarkdownPart.CheckboxList(checkboxList))
parseBuffer()
continue
} else if (line.startsWith("- [ ]") || line.startsWith("- [x]")) {
if (buffer.isNotBlank()) {
addCheckbox(checkboxList, index, buffer)
addCheckbox(checkboxList, checkboxLine, buffer)
}
checkboxLine = index
buffer.append(line)
} else {
buffer.append(" ")
@@ -132,6 +134,7 @@ fun markdown(text: String): List<MarkdownPart> {
line.startsWith("- [ ]") || line.startsWith("- [x]") -> {
parseBuffer()
type = MarkdownType.CHECKBOX_LIST
checkboxLine = index
buffer.append(line)
}
@@ -183,7 +186,7 @@ fun markdown(text: String): List<MarkdownPart> {
if (type == MarkdownType.CHECKBOX_LIST) {
if (buffer.isNotBlank()) {
addCheckbox(checkboxList, index, buffer)
addCheckbox(checkboxList, checkboxLine, buffer)
}
parts.add(MarkdownPart.CheckboxList(checkboxList))
} else {