From b616e2dde76b7424276b980785f08477815a52fd Mon Sep 17 00:00:00 2001 From: Marcin Aman Date: Fri, 9 Jul 2021 16:38:05 +0200 Subject: Add missing text styles in html (#2007) --- plugins/base/api/base.api | 7 +++ .../base/base-test-utils/api/base-test-utils.api | 12 ++++ .../src/main/kotlin/renderers/JsoupUtils.kt | 3 + .../src/main/kotlin/renderers/html/HtmlRenderer.kt | 27 +++++++-- .../base/src/main/kotlin/renderers/html/Tags.kt | 10 ++++ .../test/kotlin/renderers/html/TextStylesTest.kt | 65 ++++++++++++++++++++++ 6 files changed, 120 insertions(+), 4 deletions(-) create mode 100644 plugins/base/src/test/kotlin/renderers/html/TextStylesTest.kt (limited to 'plugins') diff --git a/plugins/base/api/base.api b/plugins/base/api/base.api index 6bf4de15..a89f38c0 100644 --- a/plugins/base/api/base.api +++ b/plugins/base/api/base.api @@ -429,6 +429,11 @@ public class org/jetbrains/dokka/base/renderers/html/NavigationSearchInstaller : public fun invoke (Lorg/jetbrains/dokka/pages/RootPageNode;)Lorg/jetbrains/dokka/pages/RootPageNode; } +public class org/jetbrains/dokka/base/renderers/html/STRIKE : kotlinx/html/HTMLTag, kotlinx/html/HtmlBlockInlineTag { + public fun (Ljava/util/Map;Lkotlinx/html/TagConsumer;)V + public fun getConsumer ()Lkotlinx/html/TagConsumer; +} + public final class org/jetbrains/dokka/base/renderers/html/ScriptsInstaller : org/jetbrains/dokka/transformers/pages/PageTransformer { public fun (Lorg/jetbrains/dokka/plugability/DokkaContext;)V public fun invoke (Lorg/jetbrains/dokka/pages/RootPageNode;)Lorg/jetbrains/dokka/pages/RootPageNode; @@ -493,6 +498,8 @@ public final class org/jetbrains/dokka/base/renderers/html/StylesInstaller : org public final class org/jetbrains/dokka/base/renderers/html/TagsKt { public static final fun buildAsInnerHtml (Lkotlin/jvm/functions/Function1;)Ljava/lang/String; + public static final fun strike (Lkotlinx/html/FlowOrPhrasingContent;Ljava/lang/String;Lkotlin/jvm/functions/Function1;)V + public static synthetic fun strike$default (Lkotlinx/html/FlowOrPhrasingContent;Ljava/lang/String;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)V public static final fun templateCommand (Lkotlinx/html/FlowOrMetaDataContent;Lorg/jetbrains/dokka/base/templating/Command;Lkotlin/jvm/functions/Function1;)V public static final fun templateCommand (Lkotlinx/html/TagConsumer;Lorg/jetbrains/dokka/base/templating/Command;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; public static synthetic fun templateCommand$default (Lkotlinx/html/FlowOrMetaDataContent;Lorg/jetbrains/dokka/base/templating/Command;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)V diff --git a/plugins/base/base-test-utils/api/base-test-utils.api b/plugins/base/base-test-utils/api/base-test-utils.api index 23ea2ea5..b5a9ef2f 100644 --- a/plugins/base/base-test-utils/api/base-test-utils.api +++ b/plugins/base/base-test-utils/api/base-test-utils.api @@ -100,10 +100,18 @@ public final class utils/AssertHtmlEqualsIgnoringWhitespaceKt { public static final fun assertHtmlEqualsIgnoringWhitespace (Ljava/lang/String;Ljava/lang/String;)V } +public final class utils/B : utils/Tag { + public fun ([Ljava/lang/Object;)V +} + public final class utils/Div : utils/Tag { public fun ([Ljava/lang/Object;)V } +public final class utils/I : utils/Tag { + public fun ([Ljava/lang/Object;)V +} + public final class utils/JsoupUtilsKt { public static final fun match (Lorg/jsoup/nodes/Element;[Ljava/lang/Object;)V } @@ -112,6 +120,10 @@ public final class utils/P : utils/Tag { public fun ([Ljava/lang/Object;)V } +public final class utils/STRIKE : utils/Tag { + public fun ([Ljava/lang/Object;)V +} + public final class utils/Span : utils/Tag { public fun ([Ljava/lang/Object;)V } diff --git a/plugins/base/base-test-utils/src/main/kotlin/renderers/JsoupUtils.kt b/plugins/base/base-test-utils/src/main/kotlin/renderers/JsoupUtils.kt index e8c7838d..ea2d13a7 100644 --- a/plugins/base/base-test-utils/src/main/kotlin/renderers/JsoupUtils.kt +++ b/plugins/base/base-test-utils/src/main/kotlin/renderers/JsoupUtils.kt @@ -16,6 +16,9 @@ class Div(vararg matchers: Any) : Tag("div", *matchers) class P(vararg matchers: Any) : Tag("p", *matchers) class Span(vararg matchers: Any) : Tag("span", *matchers) class A(vararg matchers: Any) : Tag("a", *matchers) +class B(vararg matchers: Any) : Tag("b", *matchers) +class I(vararg matchers: Any) : Tag("i", *matchers) +class STRIKE(vararg matchers: Any) : Tag("strike", *matchers) object Wbr : Tag("wbr") private fun Any.accepts(n: Node) { when (this) { diff --git a/plugins/base/src/main/kotlin/renderers/html/HtmlRenderer.kt b/plugins/base/src/main/kotlin/renderers/html/HtmlRenderer.kt index 6d6f71fb..5a6f7c83 100644 --- a/plugins/base/src/main/kotlin/renderers/html/HtmlRenderer.kt +++ b/plugins/base/src/main/kotlin/renderers/html/HtmlRenderer.kt @@ -703,18 +703,37 @@ open class HtmlRenderer( } } - override fun FlowContent.buildText(textNode: ContentText) = + override fun FlowContent.buildText(textNode: ContentText) = buildText(textNode, textNode.style) + + private fun FlowContent.buildText(textNode: ContentText, unappliedStyles: Set