summaryrefslogtreecommitdiff
path: root/src/main/kotlin/moe/nea/blog/md/MarkdownParser.kt
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/kotlin/moe/nea/blog/md/MarkdownParser.kt')
-rw-r--r--src/main/kotlin/moe/nea/blog/md/MarkdownParser.kt14
1 files changed, 9 insertions, 5 deletions
diff --git a/src/main/kotlin/moe/nea/blog/md/MarkdownParser.kt b/src/main/kotlin/moe/nea/blog/md/MarkdownParser.kt
index 19a4e99..40c4c30 100644
--- a/src/main/kotlin/moe/nea/blog/md/MarkdownParser.kt
+++ b/src/main/kotlin/moe/nea/blog/md/MarkdownParser.kt
@@ -70,17 +70,21 @@ class MarkdownParser(source: String) {
}
fun parseInlineTextOnce(lookback: MarkdownFormat, text: String): Pair<MarkdownFormat, String> {
+ require(text.isNotEmpty()) // TODO handle empty string
val parser = inlineParsers.find { it.detect(lookback, text) }
- if (parser != null)
+ if (parser != null) {
return parser.parse(this, text)
- require(!text.isEmpty()) // TODO handle empty string
- if (text[0] == ' ')
+ }
+ if (text[0] == ' ') {
return Pair(Whitespace(), text.substring(1))
+ }
val nextSpecial = text.indexOfFirst { it in inlineParsers.flatMap { it.specialSyntax } || it == ' ' }
- if (nextSpecial == 0)
+ if (nextSpecial == 0) {
return Pair(Word(text.substring(0, 1)), text.substring(1))
- if (nextSpecial == -1)
+ }
+ if (nextSpecial == -1) {
return Pair(Word(text), "")
+ }
return Pair(Word(text.substring(0, nextSpecial)), text.substring(nextSpecial))
}