aboutsummaryrefslogtreecommitdiff
path: root/plugins/base
diff options
context:
space:
mode:
authorMarcin Aman <marcin.aman@gmail.com>2021-08-25 20:55:41 +0200
committerGitHub <noreply@github.com>2021-08-25 20:55:41 +0200
commitf2adc0a50462a63f7e1901db2e58077001acd622 (patch)
treea0a21d3c99b2d8cbe77ebf95d865aabd36d6598f /plugins/base
parent939cbcd4d867961516da71f7c55d037ec88cb7f3 (diff)
parentefc9f92b0ac083c73ac494c95b530305ac04115a (diff)
downloaddokka-f2adc0a50462a63f7e1901db2e58077001acd622.tar.gz
dokka-f2adc0a50462a63f7e1901db2e58077001acd622.tar.bz2
dokka-f2adc0a50462a63f7e1901db2e58077001acd622.zip
Merge pull request #2066 from Kotlin/webhelp-like-frontend
Webhelp like frontend
Diffstat (limited to 'plugins/base')
-rw-r--r--plugins/base/api/base.api38
-rw-r--r--plugins/base/base-test-utils/api/base-test-utils.api3
-rw-r--r--plugins/base/base-test-utils/src/main/kotlin/renderers/JsoupUtils.kt36
-rw-r--r--plugins/base/frontend/src/main/components/app/index.scss7
-rw-r--r--plugins/base/frontend/src/main/components/assets/searchIcon.svg2
-rw-r--r--plugins/base/frontend/src/main/components/navigationPaneSearch/clear.svg3
-rw-r--r--plugins/base/frontend/src/main/components/navigationPaneSearch/navigationPaneSearch.scss37
-rw-r--r--plugins/base/frontend/src/main/components/navigationPaneSearch/navigationPaneSearch.tsx71
-rw-r--r--plugins/base/frontend/src/main/components/pageSummary/pageSummary.scss71
-rw-r--r--plugins/base/frontend/src/main/components/pageSummary/pageSummary.tsx65
-rw-r--r--plugins/base/frontend/src/main/components/root.tsx37
-rw-r--r--plugins/base/frontend/src/main/components/search/search.scss91
-rw-r--r--plugins/base/src/main/kotlin/DokkaBase.kt4
-rw-r--r--plugins/base/src/main/kotlin/renderers/html/HtmlRenderer.kt103
-rw-r--r--plugins/base/src/main/kotlin/renderers/html/NavigationPage.kt4
-rw-r--r--plugins/base/src/main/kotlin/renderers/html/htmlFormatingUtils.kt37
-rw-r--r--plugins/base/src/main/kotlin/renderers/html/htmlPreprocessors.kt38
-rw-r--r--plugins/base/src/main/kotlin/signatures/JvmSignatureUtils.kt25
-rw-r--r--plugins/base/src/main/kotlin/signatures/KotlinSignatureProvider.kt167
-rw-r--r--plugins/base/src/main/kotlin/templating/ProjectNameSubstitutionCommand.kt3
-rw-r--r--plugins/base/src/main/kotlin/transformers/pages/comments/DocTagToContentConverter.kt2
-rw-r--r--plugins/base/src/main/kotlin/translators/descriptors/DefaultDescriptorToDocumentableTranslator.kt31
-rw-r--r--plugins/base/src/main/kotlin/translators/documentables/PageContentBuilder.kt18
-rwxr-xr-xplugins/base/src/main/resources/dokka/images/arrow_down.svg6
-rw-r--r--plugins/base/src/main/resources/dokka/images/docs_logo.svg7
-rwxr-xr-xplugins/base/src/main/resources/dokka/images/logo-icon.svg13
-rw-r--r--plugins/base/src/main/resources/dokka/images/theme-toggle.svg4
-rw-r--r--plugins/base/src/main/resources/dokka/scripts/platform-content-handler.js17
-rw-r--r--plugins/base/src/main/resources/dokka/scripts/prism.js13
-rw-r--r--plugins/base/src/main/resources/dokka/styles/logo-styles.css3
-rw-r--r--plugins/base/src/main/resources/dokka/styles/prism.css104
-rw-r--r--plugins/base/src/main/resources/dokka/styles/style.css643
-rw-r--r--plugins/base/src/test/kotlin/content/HighlightingTest.kt79
-rw-r--r--plugins/base/src/test/kotlin/enums/EnumsTest.kt8
-rw-r--r--plugins/base/src/test/kotlin/model/FunctionsTest.kt4
-rw-r--r--plugins/base/src/test/kotlin/renderers/html/FormattingUtilsTest.kt82
-rw-r--r--plugins/base/src/test/kotlin/renderers/html/TextStylesTest.kt17
-rw-r--r--plugins/base/src/test/kotlin/signatures/FunctionalTypeConstructorsSignatureTest.kt33
-rw-r--r--plugins/base/src/test/kotlin/signatures/SignatureTest.kt74
-rw-r--r--plugins/base/src/test/kotlin/signatures/VarianceSignatureTest.kt12
40 files changed, 1059 insertions, 953 deletions
diff --git a/plugins/base/api/base.api b/plugins/base/api/base.api
index 093f7961..10d2c564 100644
--- a/plugins/base/api/base.api
+++ b/plugins/base/api/base.api
@@ -34,7 +34,6 @@ public final class org/jetbrains/dokka/base/DokkaBase : org/jetbrains/dokka/plug
public final fun getLocationProviderFactory ()Lorg/jetbrains/dokka/plugability/ExtensionPoint;
public final fun getModulesAndPackagesDocumentation ()Lorg/jetbrains/dokka/plugability/Extension;
public final fun getNavigationPageInstaller ()Lorg/jetbrains/dokka/plugability/Extension;
- public final fun getNavigationSearchInstaller ()Lorg/jetbrains/dokka/plugability/Extension;
public final fun getObviousFunctionsVisbilityFilter ()Lorg/jetbrains/dokka/plugability/Extension;
public final fun getOutputWriter ()Lorg/jetbrains/dokka/plugability/ExtensionPoint;
public final fun getPackageListCreator ()Lorg/jetbrains/dokka/plugability/Extension;
@@ -322,7 +321,8 @@ public final class org/jetbrains/dokka/base/renderers/html/CustomResourceInstall
public final class org/jetbrains/dokka/base/renderers/html/HtmlFormatingUtilsKt {
public static final fun buildBreakableDotSeparatedHtml (Lkotlinx/html/FlowContent;Ljava/lang/String;)V
public static final fun buildBreakableText (Lkotlinx/html/FlowContent;Ljava/lang/String;)V
- public static final fun buildTextBreakableAfterCapitalLetters (Lkotlinx/html/FlowContent;Ljava/lang/String;)V
+ public static final fun buildTextBreakableAfterCapitalLetters (Lkotlinx/html/FlowContent;Ljava/lang/String;Z)V
+ public static synthetic fun buildTextBreakableAfterCapitalLetters$default (Lkotlinx/html/FlowContent;Ljava/lang/String;ZILjava/lang/Object;)V
}
public class org/jetbrains/dokka/base/renderers/html/HtmlRenderer : org/jetbrains/dokka/base/renderers/DefaultRenderer {
@@ -423,13 +423,6 @@ public final class org/jetbrains/dokka/base/renderers/html/NavigationPageKt {
public static final fun transform (Lorg/jetbrains/dokka/base/renderers/html/NavigationPage;Lkotlin/jvm/functions/Function1;)Lorg/jetbrains/dokka/base/renderers/html/NavigationPage;
}
-public class org/jetbrains/dokka/base/renderers/html/NavigationSearchInstaller : org/jetbrains/dokka/base/renderers/html/NavigationDataProvider, org/jetbrains/dokka/transformers/pages/PageTransformer {
- public fun <init> (Lorg/jetbrains/dokka/plugability/DokkaContext;)V
- public fun createSearchRecordFromNode (Lorg/jetbrains/dokka/base/renderers/html/NavigationNode;Ljava/lang/String;)Lorg/jetbrains/dokka/base/renderers/html/SearchRecord;
- public final fun getContext ()Lorg/jetbrains/dokka/plugability/DokkaContext;
- 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 <init> (Ljava/util/Map;Lkotlinx/html/TagConsumer;)V
public fun getConsumer ()Lkotlinx/html/TagConsumer;
@@ -949,6 +942,19 @@ public final class org/jetbrains/dokka/base/templating/PathToRootSubstitutionCom
public fun toString ()Ljava/lang/String;
}
+public final class org/jetbrains/dokka/base/templating/ProjectNameSubstitutionCommand : org/jetbrains/dokka/base/templating/SubstitutionCommand {
+ public fun <init> (Ljava/lang/String;Ljava/lang/String;)V
+ public final fun component1 ()Ljava/lang/String;
+ public final fun component2 ()Ljava/lang/String;
+ public final fun copy (Ljava/lang/String;Ljava/lang/String;)Lorg/jetbrains/dokka/base/templating/ProjectNameSubstitutionCommand;
+ public static synthetic fun copy$default (Lorg/jetbrains/dokka/base/templating/ProjectNameSubstitutionCommand;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Lorg/jetbrains/dokka/base/templating/ProjectNameSubstitutionCommand;
+ public fun equals (Ljava/lang/Object;)Z
+ public final fun getDefault ()Ljava/lang/String;
+ public fun getPattern ()Ljava/lang/String;
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+}
+
public final class org/jetbrains/dokka/base/templating/ResolveLinkCommand : org/jetbrains/dokka/base/templating/Command {
public fun <init> (Lorg/jetbrains/dokka/links/DRI;)V
public final fun getDri ()Lorg/jetbrains/dokka/links/DRI;
@@ -1345,12 +1351,14 @@ public class org/jetbrains/dokka/base/translators/documentables/PageContentBuild
public fun <init> (Lorg/jetbrains/dokka/base/translators/documentables/PageContentBuilder;Ljava/util/Set;Ljava/util/Set;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;)V
public final fun block (Ljava/lang/String;ILorg/jetbrains/dokka/pages/Kind;Ljava/lang/Iterable;Ljava/util/Set;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;ZZLjava/util/List;ZLkotlin/jvm/functions/Function2;)V
public static synthetic fun block$default (Lorg/jetbrains/dokka/base/translators/documentables/PageContentBuilder$DocumentableContentBuilder;Ljava/lang/String;ILorg/jetbrains/dokka/pages/Kind;Ljava/lang/Iterable;Ljava/util/Set;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;ZZLjava/util/List;ZLkotlin/jvm/functions/Function2;ILjava/lang/Object;)V
+ public final fun booleanLiteral (Z)V
public final fun build (Ljava/util/Set;Lorg/jetbrains/dokka/pages/Kind;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Lorg/jetbrains/dokka/pages/ContentGroup;
public final fun buildGroup (Ljava/util/Set;Ljava/util/Set;Lorg/jetbrains/dokka/pages/Kind;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;Lkotlin/jvm/functions/Function1;)Lorg/jetbrains/dokka/pages/ContentGroup;
public static synthetic fun buildGroup$default (Lorg/jetbrains/dokka/base/translators/documentables/PageContentBuilder$DocumentableContentBuilder;Ljava/util/Set;Ljava/util/Set;Lorg/jetbrains/dokka/pages/Kind;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)Lorg/jetbrains/dokka/pages/ContentGroup;
public final fun buildSignature (Lorg/jetbrains/dokka/model/Documentable;)Ljava/util/List;
public final fun comment (Lorg/jetbrains/dokka/model/doc/DocTag;Lorg/jetbrains/dokka/pages/Kind;Ljava/util/Set;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;)V
public static synthetic fun comment$default (Lorg/jetbrains/dokka/base/translators/documentables/PageContentBuilder$DocumentableContentBuilder;Lorg/jetbrains/dokka/model/doc/DocTag;Lorg/jetbrains/dokka/pages/Kind;Ljava/util/Set;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;ILjava/lang/Object;)V
+ public final fun constant (Ljava/lang/String;)V
public final fun cover (Ljava/lang/String;Ljava/util/Set;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;Lkotlin/jvm/functions/Function1;)V
public static synthetic fun cover$default (Lorg/jetbrains/dokka/base/translators/documentables/PageContentBuilder$DocumentableContentBuilder;Ljava/lang/String;Ljava/util/Set;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)V
protected final fun createText (Ljava/lang/String;Lorg/jetbrains/dokka/pages/Kind;Ljava/util/Set;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Lorg/jetbrains/dokka/pages/ContentText;
@@ -1369,6 +1377,7 @@ public class org/jetbrains/dokka/base/translators/documentables/PageContentBuild
public static synthetic fun group$default (Lorg/jetbrains/dokka/base/translators/documentables/PageContentBuilder$DocumentableContentBuilder;Ljava/util/Set;Ljava/util/Set;Lorg/jetbrains/dokka/pages/Kind;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)V
public final fun header (ILjava/lang/String;Lorg/jetbrains/dokka/pages/Kind;Ljava/util/Set;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;Lkotlin/jvm/functions/Function1;)V
public static synthetic fun header$default (Lorg/jetbrains/dokka/base/translators/documentables/PageContentBuilder$DocumentableContentBuilder;ILjava/lang/String;Lorg/jetbrains/dokka/pages/Kind;Ljava/util/Set;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)V
+ public final fun keyword (Ljava/lang/String;)V
public final fun link (Ljava/lang/String;Ljava/lang/String;Lorg/jetbrains/dokka/pages/Kind;Ljava/util/Set;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;)V
public final fun link (Ljava/lang/String;Lorg/jetbrains/dokka/links/DRI;Lorg/jetbrains/dokka/pages/Kind;Ljava/util/Set;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;)V
public final fun link (Lorg/jetbrains/dokka/links/DRI;Lorg/jetbrains/dokka/pages/Kind;Ljava/util/Set;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;Lkotlin/jvm/functions/Function1;)V
@@ -1377,14 +1386,17 @@ public class org/jetbrains/dokka/base/translators/documentables/PageContentBuild
public static synthetic fun link$default (Lorg/jetbrains/dokka/base/translators/documentables/PageContentBuilder$DocumentableContentBuilder;Lorg/jetbrains/dokka/links/DRI;Lorg/jetbrains/dokka/pages/Kind;Ljava/util/Set;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)V
public final fun linkNode (Ljava/lang/String;Lorg/jetbrains/dokka/links/DRI;Lorg/jetbrains/dokka/pages/DCI;Ljava/util/Set;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Lorg/jetbrains/dokka/pages/ContentDRILink;
public static synthetic fun linkNode$default (Lorg/jetbrains/dokka/base/translators/documentables/PageContentBuilder$DocumentableContentBuilder;Ljava/lang/String;Lorg/jetbrains/dokka/links/DRI;Lorg/jetbrains/dokka/pages/DCI;Ljava/util/Set;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;ILjava/lang/Object;)Lorg/jetbrains/dokka/pages/ContentDRILink;
- public final fun list (Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/Set;Lkotlin/jvm/functions/Function2;)V
- public static synthetic fun list$default (Lorg/jetbrains/dokka/base/translators/documentables/PageContentBuilder$DocumentableContentBuilder;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/Set;Lkotlin/jvm/functions/Function2;ILjava/lang/Object;)V
+ public final fun list (Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/Set;Ljava/util/Set;Ljava/util/Set;Lkotlin/jvm/functions/Function2;)V
+ public static synthetic fun list$default (Lorg/jetbrains/dokka/base/translators/documentables/PageContentBuilder$DocumentableContentBuilder;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/Set;Ljava/util/Set;Ljava/util/Set;Lkotlin/jvm/functions/Function2;ILjava/lang/Object;)V
+ public final fun operator (Ljava/lang/String;)V
+ public final fun punctuation (Ljava/lang/String;)V
public final fun sourceSetDependentHint (Ljava/util/Set;Ljava/util/Set;Lorg/jetbrains/dokka/pages/Kind;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;Lkotlin/jvm/functions/Function1;)V
public final fun sourceSetDependentHint (Lorg/jetbrains/dokka/links/DRI;Ljava/util/Set;Lorg/jetbrains/dokka/pages/Kind;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;Lkotlin/jvm/functions/Function1;)V
public static synthetic fun sourceSetDependentHint$default (Lorg/jetbrains/dokka/base/translators/documentables/PageContentBuilder$DocumentableContentBuilder;Ljava/util/Set;Ljava/util/Set;Lorg/jetbrains/dokka/pages/Kind;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)V
public static synthetic fun sourceSetDependentHint$default (Lorg/jetbrains/dokka/base/translators/documentables/PageContentBuilder$DocumentableContentBuilder;Lorg/jetbrains/dokka/links/DRI;Ljava/util/Set;Lorg/jetbrains/dokka/pages/Kind;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)V
- public final fun sourceSetDependentText (Ljava/util/Map;Ljava/util/Set;Lkotlin/jvm/functions/Function1;)V
- public static synthetic fun sourceSetDependentText$default (Lorg/jetbrains/dokka/base/translators/documentables/PageContentBuilder$DocumentableContentBuilder;Ljava/util/Map;Ljava/util/Set;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)V
+ public final fun sourceSetDependentText (Ljava/util/Map;Ljava/util/Set;Ljava/util/Set;Lkotlin/jvm/functions/Function1;)V
+ public static synthetic fun sourceSetDependentText$default (Lorg/jetbrains/dokka/base/translators/documentables/PageContentBuilder$DocumentableContentBuilder;Ljava/util/Map;Ljava/util/Set;Ljava/util/Set;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)V
+ public final fun stringLiteral (Ljava/lang/String;)V
public final fun table (Lorg/jetbrains/dokka/pages/Kind;Ljava/util/Set;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;Lkotlin/jvm/functions/Function1;)V
public static synthetic fun table$default (Lorg/jetbrains/dokka/base/translators/documentables/PageContentBuilder$DocumentableContentBuilder;Lorg/jetbrains/dokka/pages/Kind;Ljava/util/Set;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)V
public final fun text (Ljava/lang/String;Lorg/jetbrains/dokka/pages/Kind;Ljava/util/Set;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;)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 b5a9ef2f..844a1703 100644
--- a/plugins/base/base-test-utils/api/base-test-utils.api
+++ b/plugins/base/base-test-utils/api/base-test-utils.api
@@ -113,7 +113,8 @@ public final class utils/I : utils/Tag {
}
public final class utils/JsoupUtilsKt {
- public static final fun match (Lorg/jsoup/nodes/Element;[Ljava/lang/Object;)V
+ public static final fun match (Lorg/jsoup/nodes/Element;[Ljava/lang/Object;Z)V
+ public static synthetic fun match$default (Lorg/jsoup/nodes/Element;[Ljava/lang/Object;ZILjava/lang/Object;)V
}
public final class utils/P : utils/Tag {
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 ea2d13a7..9e38df10 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
@@ -4,12 +4,22 @@ import org.jsoup.nodes.Element
import org.jsoup.nodes.Node
import org.jsoup.nodes.TextNode
-fun Element.match(vararg matchers: Any): Unit =
+fun Element.match(vararg matchers: Any, ignoreSpanWithTokenStyle:Boolean = false): Unit =
childNodes()
- .filter { it !is TextNode || it.text().isNotBlank() }
+ .let { list ->
+ if(ignoreSpanWithTokenStyle) {
+ list
+ .filterNot { it is Element && it.tagName() == "span" && it.attr("class").startsWith("token ") && it.childNodeSize() == 0}
+ .map { if(it is Element && it.tagName() == "span"
+ && it.attr("class").startsWith("token ")
+ && it.childNodeSize() == 1) it.childNode(0) else it }
+ .uniteConsecutiveTextNodes()
+ } else list
+ }
+ .filter { (it !is TextNode || it.text().isNotBlank())}
.let { it.drop(it.size - matchers.size) }
.zip(matchers)
- .forEach { (n, m) -> m.accepts(n) }
+ .forEach { (n, m) -> m.accepts(n, ignoreSpan = ignoreSpanWithTokenStyle) }
open class Tag(val name: String, vararg val matchers: Any)
class Div(vararg matchers: Any) : Tag("div", *matchers)
@@ -20,13 +30,27 @@ 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) {
+private fun Any.accepts(n: Node, ignoreSpan:Boolean = true) {
when (this) {
is String -> assert(n is TextNode && n.text().trim() == this.trim()) { "\"$this\" expected but found: $n" }
is Tag -> {
assert(n is Element && n.tagName() == name) { "Tag $name expected but found: $n" }
- if (n is Element && matchers.isNotEmpty()) n.match(*matchers)
+ if (n is Element && matchers.isNotEmpty()) n.match(*matchers, ignoreSpanWithTokenStyle = ignoreSpan)
}
else -> throw IllegalArgumentException("$this is not proper matcher")
}
-} \ No newline at end of file
+}
+private fun List<Node>.uniteConsecutiveTextNodes(): MutableList<Node> {
+ val resList = mutableListOf<Node>()
+ var acc = StringBuilder()
+ forEachIndexed { index, item ->
+ if (item is TextNode) {
+ acc.append(item.text())
+ if (!(index + 1 < size && this[index + 1] is TextNode)) {
+ resList.add(TextNode(acc.toString()))
+ acc = StringBuilder()
+ }
+ } else resList.add(item)
+ }
+ return resList
+ } \ No newline at end of file
diff --git a/plugins/base/frontend/src/main/components/app/index.scss b/plugins/base/frontend/src/main/components/app/index.scss
index 97f91292..e78edf81 100644
--- a/plugins/base/frontend/src/main/components/app/index.scss
+++ b/plugins/base/frontend/src/main/components/app/index.scss
@@ -18,10 +18,9 @@ html,
.search-content {
z-index: 8;
- background-color: #f4f4f4;
}
-@media screen and (max-width: 759px){
- .search-content {
- }
+@media screen and (max-width: 759px) {
+ .search-content {
+ }
}
diff --git a/plugins/base/frontend/src/main/components/assets/searchIcon.svg b/plugins/base/frontend/src/main/components/assets/searchIcon.svg
index 391b1cab..159f2578 100644
--- a/plugins/base/frontend/src/main/components/assets/searchIcon.svg
+++ b/plugins/base/frontend/src/main/components/assets/searchIcon.svg
@@ -1,3 +1,3 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20">
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
<path d="M19.64 18.36l-6.24-6.24a7.52 7.52 0 1 0-1.28 1.28l6.24 6.24zM7.5 13.4a5.9 5.9 0 1 1 5.9-5.9 5.91 5.91 0 0 1-5.9 5.9z"/>
</svg> \ No newline at end of file
diff --git a/plugins/base/frontend/src/main/components/navigationPaneSearch/clear.svg b/plugins/base/frontend/src/main/components/navigationPaneSearch/clear.svg
deleted file mode 100644
index ad6a2026..00000000
--- a/plugins/base/frontend/src/main/components/navigationPaneSearch/clear.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg width="12" height="12" viewBox="0 0 12 12" fill="none" xmlns="http://www.w3.org/2000/svg">
-<path d="M11.1374 1.80464L6.94205 5.99996L11.1374 10.1953L10.1947 11.138L5.99935 6.94267L1.80403 11.138L0.861328 10.1953L5.05664 5.99996L0.861328 1.80464L1.80403 0.861938L5.99935 5.05725L10.1947 0.861938L11.1374 1.80464Z" fill="#637282"/>
-</svg>
diff --git a/plugins/base/frontend/src/main/components/navigationPaneSearch/navigationPaneSearch.scss b/plugins/base/frontend/src/main/components/navigationPaneSearch/navigationPaneSearch.scss
deleted file mode 100644
index 1a61e90f..00000000
--- a/plugins/base/frontend/src/main/components/navigationPaneSearch/navigationPaneSearch.scss
+++ /dev/null
@@ -1,37 +0,0 @@
-@import "src/main/scss/index.scss";
-
-$defaultHeight: 40px;
-
-div#paneSearch {
-
- width: 248px;
- margin: 0 auto;
-
- input#navigation-pane-search {
- background: $white;
- border: 1px solid $grey-border;
- box-sizing: border-box;
- border-radius: 4px;
- padding: 8px;
- height: $defaultHeight;
- }
-
- .navigation-pane-search {
- padding-top: 16px;
- width: 100%;
- }
-
- div.paneSearchInputWrapper {
- position: relative;
- span.paneSearchInputClearIcon {
- position: absolute;
- top: calc(50% + 2px); //Just to include a border
- right: 8px;
- cursor: pointer;
- }
- }
-}
-
-.navigation-pane-popup {
- margin-top: 1.2em;
-} \ No newline at end of file
diff --git a/plugins/base/frontend/src/main/components/navigationPaneSearch/navigationPaneSearch.tsx b/plugins/base/frontend/src/main/components/navigationPaneSearch/navigationPaneSearch.tsx
deleted file mode 100644
index 152e7719..00000000
--- a/plugins/base/frontend/src/main/components/navigationPaneSearch/navigationPaneSearch.tsx
+++ /dev/null
@@ -1,71 +0,0 @@
-import React, { useCallback, useState, useEffect } from 'react';
-import {Select, List } from '@jetbrains/ring-ui';
-import { DokkaFuzzyFilterComponent } from '../search/dokkaFuzzyFilter';
-import { IWindow, Option } from '../search/types';
-import './navigationPaneSearch.scss';
-import ClearIcon from 'react-svg-loader!./clear.svg';
-import { relativizeUrlForRequest } from '../utils/requests';
-
-export const NavigationPaneSearch = () => {
- const [navigationList, setNavigationList] = useState<Option[]>([]);
- const [selected, onSelected] = useState<Option | null>(null);
- const [filterValue, setFilterValue] = useState<string>('')
-
- const onChangeSelected = useCallback(
- (element: Option) => {
- window.location.replace(`${(window as IWindow).pathToRoot}${element.location}`)
- onSelected(element);
- },
- [selected]
- );
-
- const onFilter = (filterValue: string) => {
- setFilterValue(filterValue)
- }
-
- const onClearClick = () => {
- setFilterValue('')
- }
-
- const shouldShowPopup = (filterState: string): boolean => {
- return filterState.trim().length !== 0
- }
-
- useEffect(() => {
- fetch(relativizeUrlForRequest('scripts/navigation-pane.json'))
- .then(response => response.json())
- .then((result) => {
- setNavigationList(result.map((record: Option, idx: number) => {
- return {
- ...record,
- key: idx,
- rgItemType: List.ListProps.Type.CUSTOM
- }
- }))
- },
- (error) => {
- console.error('failed to fetch navigationPane data', error)
- setNavigationList([])
- })
- }, [])
-
-
- return <div className={"paneSearchInputWrapper"}>
- <DokkaFuzzyFilterComponent
- id="navigation-pane-search"
- className="navigation-pane-search"
- inputPlaceholder="Title filter"
- clear={true}
- type={Select.Type.INPUT_WITHOUT_CONTROLS}
- filter={{fuzzy:true, value: filterValue}}
- selected={selected}
- data={navigationList}
- popupClassName={"navigation-pane-popup"}
- onSelect={onChangeSelected}
- onFilter={onFilter}
- shouldShowPopup={shouldShowPopup}
- renderOptimization={false}
- />
- <span className={"paneSearchInputClearIcon"} onClick={onClearClick}><ClearIcon /></span>
- </div>
-} \ No newline at end of file
diff --git a/plugins/base/frontend/src/main/components/pageSummary/pageSummary.scss b/plugins/base/frontend/src/main/components/pageSummary/pageSummary.scss
deleted file mode 100644
index aaa897a8..00000000
--- a/plugins/base/frontend/src/main/components/pageSummary/pageSummary.scss
+++ /dev/null
@@ -1,71 +0,0 @@
-@import "src/main/scss/index.scss";
-
-.page-summary {
- background: $white;
- border: 1px solid $grey-border;
- position: fixed;
- top: 25%;
- max-height: 70vh;
- right: -2px;
- width: 250px;
- z-index: 8;
- transition: width .2s;
-
- &.hidden {
- width: 3em;
- writing-mode: vertical-rl;
- text-orientation: mixed;
-
- .content-wrapper {
- h4 {
- margin: 0;
- padding: 8px;
- }
- }
- }
-
- .content-wrapper {
- padding: 0.5em 0 1em 0;
- letter-spacing: 0.2px;
-
- h4 {
- margin: 0 2em;
- font-weight: 600;
- }
-
- ul {
- list-style-type: none;
- width: 100%;
- padding: 0;
- margin: 1em 0;
- overflow-x: hidden;
- overflow-y: auto;
- max-height: 60vh;
-
- li {
- width: 100%;
- padding: 4px 0;
-
- &:hover {
- background: $list-background-hover;
- }
-
- &>a {
- margin: 0 2em;
- cursor: pointer;
- }
-
- &.selected {
- border-left: 4px solid $hover-link-color;
- }
- }
- }
- }
-}
-
-@media screen and (max-width: 759px){
- /* hide it on smaller screens since it looks super weird when displayed with hidden menu */
- .page-summary {
- display: none;
- }
-} \ No newline at end of file
diff --git a/plugins/base/frontend/src/main/components/pageSummary/pageSummary.tsx b/plugins/base/frontend/src/main/components/pageSummary/pageSummary.tsx
deleted file mode 100644
index c5a8344f..00000000
--- a/plugins/base/frontend/src/main/components/pageSummary/pageSummary.tsx
+++ /dev/null
@@ -1,65 +0,0 @@
-import React, { useState, useEffect } from "react";
-import './pageSummary.scss'
-import _ from "lodash";
-import Scrollspy from 'react-scrollspy'
-
-type PageSummaryProps = {
- entries: PageSummaryEntry[],
- containerId: string, //Id of a container that has scroll enabled
- offsetComponentId: string, //Id of a top navbar component
-}
-
-type PageSummaryEntry = {
- location: string,
- label: string,
- sourceSets: SourceSetFilterKey[]
-}
-
-type SourceSetFilterKey = string
-
-const getElementHeightFromDom = (elementId: string): number => document.getElementById(elementId).offsetHeight
-
-export const PageSummary: React.FC<PageSummaryProps> = ({ entries, containerId, offsetComponentId }: PageSummaryProps) => {
- const [hidden, setHidden] = useState<Boolean>(true);
- const [displayableEntries, setDisplayableEntries] = useState<PageSummaryEntry[]>(entries)
- const topOffset = getElementHeightFromDom(offsetComponentId)
-
- useEffect(() => {
- const handeEvent = (event: CustomEvent<SourceSetFilterKey[]>) => {
- const displayable = entries.filter((entry) => entry.sourceSets.some((sourceset) => event.detail.includes(sourceset)))
- setDisplayableEntries(displayable)
- }
-
- window.addEventListener('sourceset-filter-change', handeEvent)
- return () => window.removeEventListener('sourceset-filter-change', handeEvent)
- }, [entries])
-