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" group = "nl.astraeus"
version = "1.0.7" version = "1.0.8"
repositories { repositories {
mavenCentral() mavenCentral()

View File

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