diff --git a/app/Factories/MarkdownFactory.php b/app/Factories/MarkdownFactory.php index 7005dafc15..f636973e06 100644 --- a/app/Factories/MarkdownFactory.php +++ b/app/Factories/MarkdownFactory.php @@ -41,6 +41,7 @@ use League\CommonMark\Renderer\Inline\TextRenderer; use League\CommonMark\Util\HtmlFilter; +use function rtrim; use function strip_tags; use function strtr; @@ -123,7 +124,7 @@ public function markdown(string $markdown, Tree|null $tree = null): string $html = $converter->convert($markdown)->getContent(); - // The markdown convert adds newlines, but not in a documented way. Safest to ignore them. - return strtr($html, ["\n" => '']); + // The markdown convert adds newlines, remove the last one. + return rtrim($html, "\n"); } } diff --git a/tests/Unit/Factories/MarkdownFactoryTest.php b/tests/Unit/Factories/MarkdownFactoryTest.php index 50ab211283..4eb20af0d1 100644 --- a/tests/Unit/Factories/MarkdownFactoryTest.php +++ b/tests/Unit/Factories/MarkdownFactoryTest.php @@ -111,7 +111,7 @@ public function testSoftLineBreaks(): void ); self::assertSame( - '
alpha
beta
gamma
delta
alpha
beta
gamma
\ndelta
alpha
beta
gamma
delta
alpha
beta
gamma
delta
alpha\n beta\n gamma\n delta\n",
+ $factory->markdown("````\nalpha\n beta\n gamma\n delta\n````")
+ );
+ // code block through indentation
+ self::assertSame(
+ "alpha\n beta\n gamma\n delta\n",
+ $factory->markdown(" alpha\n beta\n gamma\n delta")
+ );
+ }
}