diff options
author | Błażej Kardyś <bkardys@virtuslab.com> | 2019-11-29 03:28:17 +0100 |
---|---|---|
committer | Błażej Kardyś <bkardys@virtuslab.com> | 2019-12-05 16:15:47 +0100 |
commit | ac521e75eadb384e005d73ec5818e01b742cbe19 (patch) | |
tree | ef147f96b8fa550fa763d972b5534edbf2417ee7 /core/src/main/kotlin/renderers/DefaultRenderer.kt | |
parent | cf97771a0805b62532cda2cdf3bfebeed21652ab (diff) | |
download | dokka-ac521e75eadb384e005d73ec5818e01b742cbe19.tar.gz dokka-ac521e75eadb384e005d73ec5818e01b742cbe19.tar.bz2 dokka-ac521e75eadb384e005d73ec5818e01b742cbe19.zip |
Parentless page navigation
Diffstat (limited to 'core/src/main/kotlin/renderers/DefaultRenderer.kt')
-rw-r--r-- | core/src/main/kotlin/renderers/DefaultRenderer.kt | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/core/src/main/kotlin/renderers/DefaultRenderer.kt b/core/src/main/kotlin/renderers/DefaultRenderer.kt index 3f851849..72fc222a 100644 --- a/core/src/main/kotlin/renderers/DefaultRenderer.kt +++ b/core/src/main/kotlin/renderers/DefaultRenderer.kt @@ -30,14 +30,11 @@ abstract class DefaultRenderer( protected open fun buildHeader(node: ContentHeader, pageContext: PageNode): String = buildHeader(node.level, node.children.joinToString { it.build(pageContext) }) - protected open fun buildNavigation(page: PageNode): String { - fun buildNavigationWithContext(page: PageNode, context: PageNode): String = - page.parent?.let { buildNavigationWithContext(it, context) }.orEmpty() + "/" + buildLink( - page.name, - locationProvider.resolve(page, context) - ) - return buildNavigationWithContext(page, page) - } + protected open fun buildNavigation(page: PageNode): String = + locationProvider.ancestors(page).fold("") { acc, node -> "$acc/${buildLink( + node.name, + locationProvider.resolve(node, page) + )}" } protected open fun ContentNode.build(pageContext: PageNode): String = buildContentNode(this, pageContext) |