From ac521e75eadb384e005d73ec5818e01b742cbe19 Mon Sep 17 00:00:00 2001 From: Błażej Kardyś Date: Fri, 29 Nov 2019 03:28:17 +0100 Subject: Parentless page navigation --- core/src/main/kotlin/renderers/DefaultRenderer.kt | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) (limited to 'core/src/main/kotlin/renderers') 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) -- cgit