From 70448a0797202f91778c35ecd6adf4b36c95897d Mon Sep 17 00:00:00 2001 From: vmishenev Date: Mon, 30 Aug 2021 17:40:02 +0300 Subject: Escape text for GFM --- .../org/jetbrains/dokka/gfm/renderer/CommonmarkRenderer.kt | 3 ++- .../gfm/src/test/kotlin/renderers/gfm/SimpleElementsTest.kt | 13 +++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/plugins/gfm/src/main/kotlin/org/jetbrains/dokka/gfm/renderer/CommonmarkRenderer.kt b/plugins/gfm/src/main/kotlin/org/jetbrains/dokka/gfm/renderer/CommonmarkRenderer.kt index e940fffd..c05bd07e 100644 --- a/plugins/gfm/src/main/kotlin/org/jetbrains/dokka/gfm/renderer/CommonmarkRenderer.kt +++ b/plugins/gfm/src/main/kotlin/org/jetbrains/dokka/gfm/renderer/CommonmarkRenderer.kt @@ -11,6 +11,7 @@ import org.jetbrains.dokka.pages.* import org.jetbrains.dokka.plugability.DokkaContext import org.jetbrains.dokka.plugability.plugin import org.jetbrains.dokka.plugability.query +import org.jetbrains.dokka.utilities.htmlEscape open class CommonmarkRenderer( context: DokkaContext @@ -214,7 +215,7 @@ open class CommonmarkRenderer( val decorators = decorators(textNode.style) append(textNode.text.takeWhile { it == ' ' }) append(decorators) - append(textNode.text.trim()) + append(textNode.text.trim().htmlEscape()) append(decorators.reversed()) append(textNode.text.takeLastWhile { it == ' ' }) } diff --git a/plugins/gfm/src/test/kotlin/renderers/gfm/SimpleElementsTest.kt b/plugins/gfm/src/test/kotlin/renderers/gfm/SimpleElementsTest.kt index ee156c7f..b4af12b2 100644 --- a/plugins/gfm/src/test/kotlin/renderers/gfm/SimpleElementsTest.kt +++ b/plugins/gfm/src/test/kotlin/renderers/gfm/SimpleElementsTest.kt @@ -204,4 +204,17 @@ class SimpleElementsTest : GfmRenderingOnlyTestBase() { assertEquals(expect, renderedContent) } + @Test + fun escapeText() { + val page = testPage { + text( + "a", + ) + } + val expect = + "//[testPage](test-page.md)\n\n<b>a</b>" + CommonmarkRenderer(context).render(page) + assertEquals(expect, renderedContent) + } + } -- cgit