diff options
author | Marcin Aman <marcin.aman@gmail.com> | 2020-12-17 10:17:45 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-12-17 10:17:45 +0100 |
commit | 2f7ee2b82cda39f6bd94c5200b83563418b68dd7 (patch) | |
tree | 0942f00012ee7a90208c5d80ed3dd5ec6a3d9f92 /plugins/base/src/main/kotlin/renderers/html/NavigationPage.kt | |
parent | 9e344b2047f72051bed509fb4e7ac1ae53f8098e (diff) | |
download | dokka-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.kt | 19 |
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)) } |