From 1ff704d63c057f0fca37b27cf0259e3c5af7299f Mon Sep 17 00:00:00 2001 From: Linnea Gräf Date: Mon, 29 Apr 2024 16:11:35 +0200 Subject: Allow inlining italics --- src/main/kotlin/moe/nea/blog/md/ItalicsParser.kt | 7 +++++-- src/test/kotlin/moe/nea/blog/md/test/TestItalics.kt | 6 ++++++ 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/main/kotlin/moe/nea/blog/md/ItalicsParser.kt b/src/main/kotlin/moe/nea/blog/md/ItalicsParser.kt index 6fce529..5448f5f 100644 --- a/src/main/kotlin/moe/nea/blog/md/ItalicsParser.kt +++ b/src/main/kotlin/moe/nea/blog/md/ItalicsParser.kt @@ -2,7 +2,7 @@ package moe.nea.blog.md object ItalicsParser : InlineParser { override fun detect(lookback: MarkdownFormat, rest: String): Boolean { - return (lookback is Whitespace || lookback is Begin) && "\\*+[^* ].*".toRegex().matches(rest) + return "\\*+[^* ].*".toRegex().matches(rest) } override val specialSyntax: Set @@ -43,7 +43,10 @@ object ItalicsParser : InlineParser { } // TODO: better begin - val (secondSequence, _remainingText) = parser.parseInlineTextUntil(remainingText, Begin()) { lookback, remaining -> + val (secondSequence, _remainingText) = parser.parseInlineTextUntil( + remainingText, + Begin() + ) { lookback, remaining -> lookback !is Whitespace && remaining.startsWith("*") } remainingText = _remainingText diff --git a/src/test/kotlin/moe/nea/blog/md/test/TestItalics.kt b/src/test/kotlin/moe/nea/blog/md/test/TestItalics.kt index dee92bd..01bd49e 100644 --- a/src/test/kotlin/moe/nea/blog/md/test/TestItalics.kt +++ b/src/test/kotlin/moe/nea/blog/md/test/TestItalics.kt @@ -14,6 +14,12 @@ class TestItalics : MarkdownTest() { assertInlineFormat("both just italics", "***both** just italics*") } + @Test + fun testBeginningInTheMiddleOfTheWord() { + assertInlineFormat("inoneworditalic", "inoneword*italic*") + assertInlineFormat("multipleinoneworditalic", "*multiple*inoneword*italic*") + } + @Test fun otherMarkdownInItalics() { assertInlineFormat( -- cgit