aboutsummaryrefslogtreecommitdiff
path: root/plugins/base/src/main/kotlin/renderers/html/NavigationPage.kt
diff options
context:
space:
mode:
authorMarcin Aman <marcin.aman@gmail.com>2020-12-17 10:17:45 +0100
committerGitHub <noreply@github.com>2020-12-17 10:17:45 +0100
commit2f7ee2b82cda39f6bd94c5200b83563418b68dd7 (patch)
tree0942f00012ee7a90208c5d80ed3dd5ec6a3d9f92 /plugins/base/src/main/kotlin/renderers/html/NavigationPage.kt
parent9e344b2047f72051bed509fb4e7ac1ae53f8098e (diff)
downloaddokka-2f7ee2b82cda39f6bd94c5200b83563418b68dd7.tar.gz
dokka-2f7ee2b82cda39f6bd94c5200b83563418b68dd7.tar.bz2
dokka-2f7ee2b82cda39f6bd94c5200b83563418b68dd7.zip
Navigate to root after logo click, add data to searchbars on multimodule (#1631)
Diffstat (limited to 'plugins/base/src/main/kotlin/renderers/html/NavigationPage.kt')
-rw-r--r--plugins/base/src/main/kotlin/renderers/html/NavigationPage.kt19
1 files changed, 13 insertions, 6 deletions
diff --git a/plugins/base/src/main/kotlin/renderers/html/NavigationPage.kt b/plugins/base/src/main/kotlin/renderers/html/NavigationPage.kt
index 15d2473f..e2953d46 100644
--- a/plugins/base/src/main/kotlin/renderers/html/NavigationPage.kt
+++ b/plugins/base/src/main/kotlin/renderers/html/NavigationPage.kt
@@ -10,8 +10,10 @@ import org.jetbrains.dokka.model.WithChildren
import org.jetbrains.dokka.pages.PageNode
import org.jetbrains.dokka.pages.RendererSpecificPage
import org.jetbrains.dokka.pages.RenderingStrategy
+import org.jetbrains.dokka.plugability.DokkaContext
-class NavigationPage(val root: NavigationNode, val moduleName: String) : RendererSpecificPage {
+class NavigationPage(val root: NavigationNode, val moduleName: String, val context: DokkaContext) :
+ RendererSpecificPage {
override val name = "navigation"
override val children = emptyList<PageNode>()
@@ -23,9 +25,13 @@ class NavigationPage(val root: NavigationNode, val moduleName: String) : Rendere
}
private fun <R> TagConsumer<R>.visit(node: NavigationNode, renderer: HtmlRenderer): R = with(renderer) {
- templateCommand(AddToNavigationCommand(moduleName)) {
- visit(node,"${moduleName}-nav-submenu", renderer)
- }
+ if (context.configuration.delayTemplateSubstitution) {
+ templateCommand(AddToNavigationCommand(moduleName)) {
+ visit(node, "${moduleName}-nav-submenu", renderer)
+ }
+ } else {
+ visit(node, "${moduleName}-nav-submenu", renderer)
+ }
}
private fun <R> TagConsumer<R>.visit(node: NavigationNode, navId: String, renderer: HtmlRenderer): R =
@@ -52,9 +58,10 @@ data class NavigationNode(
val dri: DRI,
val sourceSets: Set<DisplaySourceSet>,
override val children: List<NavigationNode>
-): WithChildren<NavigationNode>
+) : WithChildren<NavigationNode>
-fun NavigationPage.transform(block: (NavigationNode) -> NavigationNode) = NavigationPage(root.transform(block), moduleName)
+fun NavigationPage.transform(block: (NavigationNode) -> NavigationNode) =
+ NavigationPage(root.transform(block), moduleName, context)
fun NavigationNode.transform(block: (NavigationNode) -> NavigationNode) =
run(block).let { NavigationNode(it.name, it.dri, it.sourceSets, it.children.map(block)) }