diff options
author | Kamil Doległo <kamilok1965@interia.pl> | 2020-08-11 21:47:26 +0200 |
---|---|---|
committer | Sebastian Sellmair <34319766+sellmair@users.noreply.github.com> | 2020-08-19 13:34:10 +0200 |
commit | 852a6ce6c0f43c9b2044320dcceb4c6cc0a3b302 (patch) | |
tree | fb95be79e816769ca5305cf3a601348549000c6d /plugins/base/src/main/kotlin/renderers | |
parent | 822653f017fa58352148e1c586690debb6773965 (diff) | |
download | dokka-852a6ce6c0f43c9b2044320dcceb4c6cc0a3b302.tar.gz dokka-852a6ce6c0f43c9b2044320dcceb4c6cc0a3b302.tar.bz2 dokka-852a6ce6c0f43c9b2044320dcceb4c6cc0a3b302.zip |
Refactor location providers
Diffstat (limited to 'plugins/base/src/main/kotlin/renderers')
3 files changed, 14 insertions, 9 deletions
diff --git a/plugins/base/src/main/kotlin/renderers/PackageListService.kt b/plugins/base/src/main/kotlin/renderers/PackageListService.kt index 0cf84ddd..42c8d66e 100644 --- a/plugins/base/src/main/kotlin/renderers/PackageListService.kt +++ b/plugins/base/src/main/kotlin/renderers/PackageListService.kt @@ -39,9 +39,9 @@ class PackageListService(val context: DokkaContext) { visit(module, setOf()) return buildString { - appendln("\$dokka.format:${format}") - appendln("\$dokka.linkExtension:${linkExtension}") - nonStandardLocations.map { (signature, location) -> "\$dokka.location:$signature\u001f$location" } + appendLine("$DOKKA_PARAM_PREFIX.format:${format}") + appendLine("$DOKKA_PARAM_PREFIX.linkExtension:${linkExtension}") + nonStandardLocations.map { (signature, location) -> "$DOKKA_PARAM_PREFIX.location:$signature\u001f$location" } .sorted().joinTo(this, separator = "\n", postfix = "\n") packages.sorted().joinTo(this, separator = "\n", postfix = "\n") @@ -49,4 +49,7 @@ class PackageListService(val context: DokkaContext) { } + companion object { + const val DOKKA_PARAM_PREFIX = "\$dokka" + } }
\ No newline at end of file diff --git a/plugins/base/src/main/kotlin/renderers/html/HtmlRenderer.kt b/plugins/base/src/main/kotlin/renderers/html/HtmlRenderer.kt index e3d54e49..d9833e43 100644 --- a/plugins/base/src/main/kotlin/renderers/html/HtmlRenderer.kt +++ b/plugins/base/src/main/kotlin/renderers/html/HtmlRenderer.kt @@ -21,6 +21,7 @@ import org.jetbrains.dokka.plugability.DokkaContext import org.jetbrains.dokka.plugability.plugin import org.jetbrains.dokka.plugability.query import org.jetbrains.dokka.plugability.querySingle +import org.jetbrains.dokka.utilities.htmlEscape import java.io.File import java.net.URI @@ -550,7 +551,7 @@ open class HtmlRenderer( platforms: List<DisplaySourceSet>, from: PageNode? = null, block: FlowContent.() -> Unit - ) = buildLink(locationProvider.resolve(to, platforms.toSet(), from).orEmpty(), block) + ) = buildLink(locationProvider.resolve(to, platforms.toSet(), from)!!, block) override fun buildError(node: ContentNode) { context.logger.error("Unknown ContentNode type: $node") @@ -573,7 +574,7 @@ open class HtmlRenderer( buildText(node.children, pageContext, sourceSetRestriction) } } ?: span { - attributes["data-unresolved-link"] = "true" + attributes["data-unresolved-link"] = node.address.toString().htmlEscape() buildText(node.children, pageContext, sourceSetRestriction) } @@ -625,7 +626,7 @@ open class HtmlRenderer( } } - private fun PageNode.root(path: String) = locationProvider.resolveRoot(this) + path + private fun PageNode.root(path: String) = locationProvider.pathToRoot(this) + path override fun buildPage(page: ContentPage, content: (FlowContent, ContentPage) -> Unit): String = buildHtml(page, page.embeddedResources) { @@ -658,7 +659,7 @@ open class HtmlRenderer( else -> unsafe { +it } } } - script { unsafe { +"""var pathToRoot = "${locationProvider.resolveRoot(page)}";""" } } + script { unsafe { +"""var pathToRoot = "${locationProvider.pathToRoot(page)}";""" } } } body { div { diff --git a/plugins/base/src/main/kotlin/renderers/preprocessors.kt b/plugins/base/src/main/kotlin/renderers/preprocessors.kt index bf2a9eb4..b07db2bd 100644 --- a/plugins/base/src/main/kotlin/renderers/preprocessors.kt +++ b/plugins/base/src/main/kotlin/renderers/preprocessors.kt @@ -1,5 +1,6 @@ package org.jetbrains.dokka.base.renderers +import org.jetbrains.dokka.base.resolvers.shared.LinkFormat import org.jetbrains.dokka.pages.* import org.jetbrains.dokka.plugability.DokkaContext import org.jetbrains.dokka.transformers.pages.PageTransformer @@ -10,7 +11,7 @@ object RootCreator : PageTransformer { } -class PackageListCreator(val context: DokkaContext, val format: String, val linkExtension: String) : PageTransformer { +class PackageListCreator(val context: DokkaContext, val format: LinkFormat) : PageTransformer { override fun invoke(input: RootPageNode) = input.modified(children = input.children.map { it.takeUnless { it is ModulePageNode } @@ -22,6 +23,6 @@ class PackageListCreator(val context: DokkaContext, val format: String, val link RendererSpecificResourcePage( "${pageNode.name}/package-list", emptyList(), - RenderingStrategy.Write(PackageListService(context).formatPackageList(pageNode, format, linkExtension)) + RenderingStrategy.Write(PackageListService(context).formatPackageList(pageNode, format.formatName, format.linkExtension)) ) } |