diff --git a/.idea/libraries/jsoup.xml b/.idea/libraries/jsoup.xml
index ad4c47fe6d58..5c8a9ee9c537 100644
--- a/.idea/libraries/jsoup.xml
+++ b/.idea/libraries/jsoup.xml
@@ -1,9 +1,9 @@
-
+
-
- 7b850eb00f2f77f606a343b2e4effe4107f3c1faa183729d85fbe16baf606096
+
+ f05496e255734759f0d4b5632da7b24f81313147c78c69e90ad045d096191344
@@ -11,13 +11,13 @@
-
+
-
+
-
+
\ No newline at end of file
diff --git a/java/java-tests/testSrc/com/intellij/java/codeInsight/JavaDocumentationTest.kt b/java/java-tests/testSrc/com/intellij/java/codeInsight/JavaDocumentationTest.kt
index 47f6358465de..29df96e65f29 100644
--- a/java/java-tests/testSrc/com/intellij/java/codeInsight/JavaDocumentationTest.kt
+++ b/java/java-tests/testSrc/com/intellij/java/codeInsight/JavaDocumentationTest.kt
@@ -14,6 +14,7 @@ import com.intellij.testFramework.fixtures.LightJavaCodeInsightFixtureTestCase
import com.intellij.util.concurrency.AppExecutorUtil
import com.intellij.util.ui.UIUtil
import junit.framework.TestCase
+import org.assertj.core.api.Assertions.assertThat
import java.util.concurrent.Callable
import kotlin.test.assertContains
import kotlin.test.assertFails
@@ -327,8 +328,7 @@ class JavaDocumentationTest : LightJavaCodeInsightFixtureTestCase() {
}
// Here we check that the covering module (SDK in this case) is rendered in decorated info
- assertTrue(
- component.decoratedText.contains("
< java 1.7 >
"))
+ assertThat(component.decoratedText).contains(""" < java 1.7 >
""")
return@getDocumentationText null
}
}
diff --git a/lib/BUILD.bazel b/lib/BUILD.bazel
index 71dd811893fd..c91cef62f864 100644
--- a/lib/BUILD.bazel
+++ b/lib/BUILD.bazel
@@ -3059,8 +3059,8 @@ jvm_import(
jvm_import(
name = "jsoup",
- jar = "@jsoup-1_19_1_http//file",
- source_jar = "@jsoup-1_19_1-sources_http//file",
+ jar = "@jsoup-1_21_2_http//file",
+ source_jar = "@jsoup-1_21_2-sources_http//file",
visibility = ["//visibility:public"]
)
diff --git a/lib/MODULE.bazel b/lib/MODULE.bazel
index ca6a35238c10..2f5b9967114f 100644
--- a/lib/MODULE.bazel
+++ b/lib/MODULE.bazel
@@ -4354,17 +4354,17 @@ http_file(
)
http_file(
- name = "jsoup-1_19_1_http",
- url = "https://cache-redirector.jetbrains.com/repo1.maven.org/maven2/org/jsoup/jsoup/1.19.1/jsoup-1.19.1.jar",
- sha256 = "7b850eb00f2f77f606a343b2e4effe4107f3c1faa183729d85fbe16baf606096",
- downloaded_file_path = "jsoup-1.19.1.jar"
+ name = "jsoup-1_21_2_http",
+ url = "https://cache-redirector.jetbrains.com/repo1.maven.org/maven2/org/jsoup/jsoup/1.21.2/jsoup-1.21.2.jar",
+ sha256 = "f05496e255734759f0d4b5632da7b24f81313147c78c69e90ad045d096191344",
+ downloaded_file_path = "jsoup-1.21.2.jar"
)
http_file(
- name = "jsoup-1_19_1-sources_http",
- url = "https://cache-redirector.jetbrains.com/repo1.maven.org/maven2/org/jsoup/jsoup/1.19.1/jsoup-1.19.1-sources.jar",
- sha256 = "54838f69298a69e4b1f5f45b659f5206978b41bcc2a4e13438220f1a1d601ab1",
- downloaded_file_path = "jsoup-1.19.1-sources.jar"
+ name = "jsoup-1_21_2-sources_http",
+ url = "https://cache-redirector.jetbrains.com/repo1.maven.org/maven2/org/jsoup/jsoup/1.21.2/jsoup-1.21.2-sources.jar",
+ sha256 = "2cbf6a46b1af6bace17f25b3bedb1b0e5d56882083918c30c27608e188870a73",
+ downloaded_file_path = "jsoup-1.21.2-sources.jar"
)
http_file(
diff --git a/plugins/markdown/core/src/org/intellij/plugins/markdown/ui/preview/jcef/impl/IncrementalDOMBuilder.kt b/plugins/markdown/core/src/org/intellij/plugins/markdown/ui/preview/jcef/impl/IncrementalDOMBuilder.kt
index 654159c4e3e9..7df415ba5314 100644
--- a/plugins/markdown/core/src/org/intellij/plugins/markdown/ui/preview/jcef/impl/IncrementalDOMBuilder.kt
+++ b/plugins/markdown/core/src/org/intellij/plugins/markdown/ui/preview/jcef/impl/IncrementalDOMBuilder.kt
@@ -18,6 +18,9 @@ import org.jsoup.nodes.Comment
import org.jsoup.nodes.DataNode
import org.jsoup.nodes.Node
import org.jsoup.nodes.TextNode
+import org.jsoup.parser.Parser
+import org.jsoup.parser.Tag
+import org.jsoup.parser.TagSet
import java.net.URLDecoder
import java.nio.charset.Charset
@@ -29,7 +32,7 @@ class IncrementalDOMBuilder(
private val fileSchemeResourceProcessor: ResourceProvider? = null,
) {
- private val document = Jsoup.parse(html)
+ private val document = Jsoup.parse(html, createSelfClosingSpanAwareParser())
private val builder = StringBuilder()
fun generateRenderClosure(): String {
@@ -163,3 +166,11 @@ class IncrementalDOMBuilder(
}
}
}
+
+// https://jsoup.org/news/release-1.20.1
+private fun createSelfClosingSpanAwareParser(): Parser {
+ val tags = TagSet.Html()
+ val span = tags.valueOf("span", Parser.NamespaceHtml)
+ span.set(Tag.SelfClose)
+ return Parser.htmlParser().tagSet(tags)
+}