Skip to content

Commit

Permalink
Display source set / platform indicators at all times
Browse files Browse the repository at this point in the history
Fixes #2847
  • Loading branch information
IgnatBeresnev committed Feb 6, 2023
1 parent d57815e commit a84cb9d
Show file tree
Hide file tree
Showing 5 changed files with 19 additions and 24 deletions.
4 changes: 2 additions & 2 deletions plugins/base/api/base.api
Expand Up @@ -621,7 +621,7 @@ public final class org/jetbrains/dokka/base/renderers/html/command/consumers/Res

public final class org/jetbrains/dokka/base/renderers/html/innerTemplating/DefaultTemplateModelFactory : org/jetbrains/dokka/base/renderers/html/innerTemplating/TemplateModelFactory {
public fun <init> (Lorg/jetbrains/dokka/plugability/DokkaContext;)V
public fun buildModel (Lorg/jetbrains/dokka/pages/PageNode;Ljava/util/List;Lorg/jetbrains/dokka/base/resolvers/local/LocationProvider;ZLjava/lang/String;)Ljava/util/Map;
public fun buildModel (Lorg/jetbrains/dokka/pages/PageNode;Ljava/util/List;Lorg/jetbrains/dokka/base/resolvers/local/LocationProvider;Ljava/lang/String;)Ljava/util/Map;
public fun buildSharedModel ()Ljava/util/Map;
public final fun getContext ()Lorg/jetbrains/dokka/plugability/DokkaContext;
}
Expand Down Expand Up @@ -660,7 +660,7 @@ public final class org/jetbrains/dokka/base/renderers/html/innerTemplating/HtmlT
}

public abstract interface class org/jetbrains/dokka/base/renderers/html/innerTemplating/TemplateModelFactory {
public abstract fun buildModel (Lorg/jetbrains/dokka/pages/PageNode;Ljava/util/List;Lorg/jetbrains/dokka/base/resolvers/local/LocationProvider;ZLjava/lang/String;)Ljava/util/Map;
public abstract fun buildModel (Lorg/jetbrains/dokka/pages/PageNode;Ljava/util/List;Lorg/jetbrains/dokka/base/resolvers/local/LocationProvider;Ljava/lang/String;)Ljava/util/Map;
public abstract fun buildSharedModel ()Ljava/util/Map;
}

Expand Down
31 changes: 14 additions & 17 deletions plugins/base/src/main/kotlin/renderers/html/HtmlRenderer.kt
Expand Up @@ -41,7 +41,7 @@ open class HtmlRenderer(
setupSharedModel(templateModelMerger.invoke(templateModelFactories) { buildSharedModel() })
}

private var shouldRenderSourceSetBubbles: Boolean = false
private var shouldRenderSourceSetTabs: Boolean = false

override val preprocessors = context.plugin<DokkaBase>().query { htmlPreprocessors }

Expand Down Expand Up @@ -144,7 +144,7 @@ open class HtmlRenderer(
}

private fun FlowContent.filterButtons(page: PageNode) {
if (shouldRenderSourceSetBubbles && page is ContentPage) {
if (shouldRenderSourceSetTabs && page is ContentPage) {
div(classes = "filter-section") {
id = "filter-section"
page.content.withDescendants().flatMap { it.sourceSets }.distinct()
Expand Down Expand Up @@ -198,7 +198,7 @@ open class HtmlRenderer(
pageContext: ContentPage,
extra: PropertyContainer<ContentNode> = PropertyContainer.empty(),
styles: Set<Style> = emptySet(),
shouldHaveTabs: Boolean = shouldRenderSourceSetBubbles
shouldHaveTabs: Boolean = shouldRenderSourceSetTabs
) {
val contents = contentsForSourceSetDependent(nodes, pageContext)
val isOnlyCommonContent = contents.singleOrNull()?.let { (sourceSet, _) ->
Expand Down Expand Up @@ -523,19 +523,17 @@ open class HtmlRenderer(
}

private fun FlowContent.createPlatformTagBubbles(sourceSets: List<DisplaySourceSet>, cssClasses: String = "") {
if (shouldRenderSourceSetBubbles) {
div("platform-tags $cssClasses") {
sourceSets.sortedBy { it.name }.forEach {
div("platform-tag") {
when (it.platform.key) {
"common" -> classes = classes + "common-like"
"native" -> classes = classes + "native-like"
"jvm" -> classes = classes + "jvm-like"
"js" -> classes = classes + "js-like"
"wasm" -> classes = classes + "wasm-like"
}
text(it.name)
div("platform-tags $cssClasses") {
sourceSets.sortedBy { it.name }.forEach {
div("platform-tag") {
when (it.platform.key) {
"common" -> classes = classes + "common-like"
"native" -> classes = classes + "native-like"
"jvm" -> classes = classes + "jvm-like"
"js" -> classes = classes + "js-like"
"wasm" -> classes = classes + "wasm-like"
}
text(it.name)
}
}
}
Expand Down Expand Up @@ -802,7 +800,7 @@ open class HtmlRenderer(
}

override fun render(root: RootPageNode) {
shouldRenderSourceSetBubbles = shouldRenderSourceSetBubbles(root)
shouldRenderSourceSetTabs = shouldRenderSourceSetTabs(root)
super.render(root)
}

Expand All @@ -828,7 +826,6 @@ open class HtmlRenderer(
page,
resources,
locationProvider,
shouldRenderSourceSetBubbles,
generatedContent
)
}
Expand Down
Expand Up @@ -40,7 +40,6 @@ class DefaultTemplateModelFactory(val context: DokkaContext) : TemplateModelFact
page: PageNode,
resources: List<String>,
locationProvider: LocationProvider,
shouldRenderSourceSetBubbles: Boolean,
content: String
): TemplateMap {
val path = locationProvider.resolve(page)
Expand All @@ -66,7 +65,7 @@ class DefaultTemplateModelFactory(val context: DokkaContext) : TemplateModelFact
}
mapper["template_cmd"] = TemplateDirective(context.configuration, pathToRoot)

if (shouldRenderSourceSetBubbles && page is ContentPage) {
if (page is ContentPage) {
val sourceSets = page.content.withDescendants()
.flatMap { it.sourceSets }
.distinct()
Expand Down
Expand Up @@ -8,9 +8,8 @@ interface TemplateModelFactory {
page: PageNode,
resources: List<String>,
locationProvider: LocationProvider,
shouldRenderSourceSetBubbles: Boolean,
content: String
): TemplateMap

fun buildSharedModel(): TemplateMap
}
}
Expand Up @@ -4,7 +4,7 @@ import org.jetbrains.dokka.model.withDescendants
import org.jetbrains.dokka.pages.ContentPage
import org.jetbrains.dokka.pages.RootPageNode

internal fun shouldRenderSourceSetBubbles(page: RootPageNode): Boolean {
internal fun shouldRenderSourceSetTabs(page: RootPageNode): Boolean {
return page.withDescendants()
.flatMap { pageNode ->
if (pageNode is ContentPage) pageNode.content.withDescendants()
Expand Down

0 comments on commit a84cb9d

Please sign in to comment.