All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.jetbrains.dokka.base.renderers.pageId.kt Maven / Gradle / Ivy

There is a newer version: 2.0.0
Show newest version
/*
 * Copyright 2014-2024 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
 */

package org.jetbrains.dokka.base.renderers

import org.jetbrains.dokka.base.renderers.html.NavigationNode
import org.jetbrains.dokka.links.DRI
import org.jetbrains.dokka.model.DisplaySourceSet
import org.jetbrains.dokka.pages.ContentPage

internal val ContentPage.pageId: String
    get() = pageId(dri.first(), sourceSets())

internal val NavigationNode.pageId: String
    get() = pageId(dri, sourceSets)

@JvmName("shortenSourceSetsToUrl")
internal fun Set.shortenToUrl() =
    sortedBy { it.sourceSetIDs.merged.let { it.scopeId + it.sourceSetName } }.joinToString().hashCode()

internal fun DRI.shortenToUrl() = toString()

@JvmName("shortenDrisToUrl")
internal fun Set.shortenToUrl() = sortedBy { it.toString() }.joinToString().hashCode()

/**
 * Page Id is required to have a sourceSet in order to distinguish between different pages that has same DRI but different sourceSet
 * like main functions that are not expect/actual
 */
private fun pageId(dri: DRI, sourceSets: Set): String = "${dri.shortenToUrl()}/${sourceSets.shortenToUrl()}"




© 2015 - 2025 Weber Informatics LLC | Privacy Policy