From 346a6b9091167771694508b77bf123d919347e6c Mon Sep 17 00:00:00 2001 From: Szymon Świstun Date: Wed, 12 Feb 2020 11:11:04 +0100 Subject: corrected SameName strategy --- .../pages/SameNamePageMergerStrategy.kt | 31 ++++++++++++---------- 1 file changed, 17 insertions(+), 14 deletions(-) (limited to 'core/src/main/kotlin') diff --git a/core/src/main/kotlin/transformers/pages/SameNamePageMergerStrategy.kt b/core/src/main/kotlin/transformers/pages/SameNamePageMergerStrategy.kt index 5b0e8794..47d5a2f5 100644 --- a/core/src/main/kotlin/transformers/pages/SameNamePageMergerStrategy.kt +++ b/core/src/main/kotlin/transformers/pages/SameNamePageMergerStrategy.kt @@ -3,24 +3,27 @@ package org.jetbrains.dokka.transformers.pages import org.jetbrains.dokka.pages.* object SameNamePageMergerStrategy : PageMergerStrategy { - override fun tryMerge(pages: List): List = listOf(pages.mergePageNodes()) + override fun tryMerge(pages: List): List { + val name = pages.first().name + val members = pages.filterIsInstance() + val others = pages.filterNot { it is MemberPageNode } - private fun List.mergePageNodes(): ContentPage { - val name = first().name - val resChildren = this.flatMap { it.children }.distinct() - val contentChildren = this.filterIsInstance() - val dri = contentChildren.flatMap { it.dri }.toSet() + val resChildren = members.flatMap { it.children }.distinct() + val dri = members.flatMap { it.dri }.toSet() val dci = DCI( dri = dri, - kind = contentChildren.first().content.dci.kind + kind = members.first().content.dci.kind ) - return contentChildren.first() - .modified( - dri = dri, - name = name, - children = resChildren, - content = asGroup(dci, contentChildren.map { it.content }) - ) + + val merged = MemberPageNode( + dri = dri, + name = name, + children = resChildren, + content = asGroup(dci, members.map { it.content }), + documentable = null + ) + + return others + listOf(merged) } fun asGroup(dci: DCI, nodes: List): ContentGroup { -- cgit