From 5a7e14eaaa4278343ff628c692d475be9732c94e Mon Sep 17 00:00:00 2001 From: "sebastian.sellmair" Date: Thu, 13 Aug 2020 10:32:52 +0200 Subject: Implement SourceSetMergingPageTransformer --- .../kotlin/model/properties/PropertyContainer.kt | 3 +- core/src/main/kotlin/pages/ContentNodes.kt | 110 +++++++++++++++++---- core/src/main/kotlin/pages/ContentSourceSet.kt | 1 - .../kotlin/transformers/pages/PageTransformer.kt | 12 --- 4 files changed, 94 insertions(+), 32 deletions(-) (limited to 'core') diff --git a/core/src/main/kotlin/model/properties/PropertyContainer.kt b/core/src/main/kotlin/model/properties/PropertyContainer.kt index 6009bfe0..b14a30f5 100644 --- a/core/src/main/kotlin/model/properties/PropertyContainer.kt +++ b/core/src/main/kotlin/model/properties/PropertyContainer.kt @@ -26,6 +26,7 @@ class PropertyContainer internal constructor( operator fun PropertyContainer.plus(prop: ExtraProperty?): PropertyContainer = if (prop == null) this else PropertyContainer(map + (prop.key to prop)) + interface WithExtraProperties { val extra: PropertyContainer @@ -57,4 +58,4 @@ fun C.mergeExtras(left: C, right: C): C where C : Any, C : WithExtraProperti val newExtras = PropertyContainer((unambiguous.flatten() + replaces).associateBy { it.key }) return needingFullMerge.fold(withNewExtras(newExtras)) { acc, merger -> merger(acc, left, right) } -} \ No newline at end of file +} diff --git a/core/src/main/kotlin/pages/ContentNodes.kt b/core/src/main/kotlin/pages/ContentNodes.kt index b82c023f..02d6bf61 100644 --- a/core/src/main/kotlin/pages/ContentNodes.kt +++ b/core/src/main/kotlin/pages/ContentNodes.kt @@ -1,8 +1,5 @@ package org.jetbrains.dokka.pages -import org.jetbrains.dokka.DokkaConfiguration.DokkaSourceSet -import org.jetbrains.dokka.DokkaSourceSetID -import org.jetbrains.dokka.Platform import org.jetbrains.dokka.links.DRI import org.jetbrains.dokka.model.WithChildren import org.jetbrains.dokka.model.properties.PropertyContainer @@ -12,7 +9,6 @@ data class DCI(val dri: Set, val kind: Kind) { override fun toString() = "$dri[$kind]" } - interface ContentNode : WithExtraProperties, WithChildren { val dci: DCI val sourceSets: Set @@ -20,6 +16,8 @@ interface ContentNode : WithExtraProperties, WithChildren): ContentNode + override val children: List get() = emptyList() } @@ -32,8 +30,8 @@ data class ContentText( override val style: Set