generated from rnentjes/kotlin-server-web-empty
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:
@@ -8,7 +8,7 @@ plugins {
|
|||||||
}
|
}
|
||||||
|
|
||||||
group = "nl.astraeus"
|
group = "nl.astraeus"
|
||||||
version = "1.0.7"
|
version = "1.0.8"
|
||||||
|
|
||||||
repositories {
|
repositories {
|
||||||
mavenCentral()
|
mavenCentral()
|
||||||
|
|||||||
@@ -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 {
|
||||||
|
|||||||
Reference in New Issue
Block a user