diff --git a/dokka-subprojects/analysis-markdown-jb/src/main/kotlin/org/jetbrains/dokka/analysis/markdown/jb/ParseUtils.kt b/dokka-subprojects/analysis-markdown-jb/src/main/kotlin/org/jetbrains/dokka/analysis/markdown/jb/ParseUtils.kt index 1464815162..c5ce58fea0 100644 --- a/dokka-subprojects/analysis-markdown-jb/src/main/kotlin/org/jetbrains/dokka/analysis/markdown/jb/ParseUtils.kt +++ b/dokka-subprojects/analysis-markdown-jb/src/main/kotlin/org/jetbrains/dokka/analysis/markdown/jb/ParseUtils.kt @@ -10,7 +10,7 @@ import org.jetbrains.dokka.InternalDokkaApi import org.jetbrains.dokka.model.doc.DocTag import org.jetbrains.dokka.model.doc.Text import org.jsoup.internal.StringUtil -import org.jsoup.nodes.Entities +import org.jsoup.nodes.TextNode @InternalDokkaApi public fun String.parseHtmlEncodedWithNormalisedSpaces( @@ -21,12 +21,16 @@ public fun String.parseHtmlEncodedWithNormalisedSpaces( var lastWasWhite = false forEachCodePoint { c -> - if (renderWhiteCharactersAsSpaces && StringUtil.isWhitespace(c)) { - if (!lastWasWhite) { - accum.append(' ') - lastWasWhite = true + if (StringUtil.isWhitespace(c)) { + if (renderWhiteCharactersAsSpaces) { + if (!lastWasWhite) { + accum.append(' ') + lastWasWhite = true + } + } else { + accum.appendCodePoint(c) } - } else if (Compat.codePointToString(c).let { it != Entities.escape(it) }) { + } else if (Compat.codePointToString(c).let { it != TextNode(it).toString() }) { accum.toString().takeIf { it.isNotBlank() }?.let { tags.add(Text(it)) } accum.delete(0, accum.length) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 7bbf19a116..913d812601 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -29,7 +29,7 @@ kotlin-compiler-k2 = "2.5.0-dev-3229" intellij-platform = "261.24374.151" ## HTML -jsoup = "1.16.1" +jsoup = "1.23.1" freemarker = "2.3.32" korlibs-template = "4.0.10" kotlinx-html = "0.9.1"