From 340fc50af3a33f5d3f2fc1928d6ce34baae0bd4e Mon Sep 17 00:00:00 2001 From: Linnea Gräf Date: Sun, 24 Mar 2024 16:15:13 +0100 Subject: Add freestanding star test --- src/main/kotlin/moe/nea/blog/md/MarkdownParser.kt | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) (limited to 'src/main') 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 { + 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)) } -- cgit