aboutsummaryrefslogtreecommitdiff
path: root/plugins/base/src/main/kotlin/renderers
diff options
context:
space:
mode:
authorKamil Doległo <kamilok1965@interia.pl>2020-07-23 12:38:59 +0200
committerSebastian Sellmair <34319766+sellmair@users.noreply.github.com>2020-08-19 13:34:10 +0200
commitfc38ceda06d92978175d37bb7197763539c966a2 (patch)
tree69751ac7fd6083fabce8a65bae8e84f85ece5358 /plugins/base/src/main/kotlin/renderers
parenta3880835c4e6c6d0570ab2193be50bd739e9f2ca (diff)
downloaddokka-fc38ceda06d92978175d37bb7197763539c966a2.tar.gz
dokka-fc38ceda06d92978175d37bb7197763539c966a2.tar.bz2
dokka-fc38ceda06d92978175d37bb7197763539c966a2.zip
Make unresolved links render as text
Diffstat (limited to 'plugins/base/src/main/kotlin/renderers')
-rw-r--r--plugins/base/src/main/kotlin/renderers/DefaultRenderer.kt14
-rw-r--r--plugins/base/src/main/kotlin/renderers/PackageListService.kt3
-rw-r--r--plugins/base/src/main/kotlin/renderers/html/HtmlRenderer.kt4
3 files changed, 12 insertions, 9 deletions
diff --git a/plugins/base/src/main/kotlin/renderers/DefaultRenderer.kt b/plugins/base/src/main/kotlin/renderers/DefaultRenderer.kt
index ef04bb47..fe2913a4 100644
--- a/plugins/base/src/main/kotlin/renderers/DefaultRenderer.kt
+++ b/plugins/base/src/main/kotlin/renderers/DefaultRenderer.kt
@@ -66,7 +66,7 @@ abstract class DefaultRenderer<T>(
open fun T.wrapGroup(node: ContentGroup, pageContext: ContentPage, childrenCallback: T.() -> Unit) =
childrenCallback()
- open fun T.buildLinkText(
+ open fun T.buildText(
nodes: List<ContentNode>,
pageContext: ContentPage,
sourceSetRestriction: Set<DisplaySourceSet>? = null
@@ -109,11 +109,13 @@ abstract class DefaultRenderer<T>(
is ContentCodeBlock -> buildCodeBlock(node, pageContext)
is ContentCodeInline -> buildCodeInline(node, pageContext)
is ContentDRILink ->
- buildLink(locationProvider.resolve(node.address, node.sourceSets, pageContext)) {
- buildLinkText(node.children, pageContext, sourceSetRestriction)
- }
+ locationProvider.resolve(node.address, node.sourceSets, pageContext)?.let { address ->
+ buildLink(address) {
+ buildText(node.children, pageContext, sourceSetRestriction)
+ }
+ } ?: buildText(node.children, pageContext, sourceSetRestriction)
is ContentResolvedLink -> buildLink(node.address) {
- buildLinkText(node.children, pageContext, sourceSetRestriction)
+ buildText(node.children, pageContext, sourceSetRestriction)
}
is ContentEmbeddedResource -> buildResource(node, pageContext)
is ContentList -> buildList(node, pageContext, sourceSetRestriction)
@@ -140,7 +142,7 @@ abstract class DefaultRenderer<T>(
}
open suspend fun renderPage(page: PageNode) {
- val path by lazy { locationProvider.resolve(page, skipExtension = true) }
+ val path by lazy { locationProvider.resolve(page, skipExtension = true)!! }
when (page) {
is ContentPage -> outputWriter.write(path, buildPage(page) { c, p -> buildPageContent(c, p) }, ".html")
is RendererSpecificPage -> when (val strategy = page.strategy) {
diff --git a/plugins/base/src/main/kotlin/renderers/PackageListService.kt b/plugins/base/src/main/kotlin/renderers/PackageListService.kt
index d4333200..0cf84ddd 100644
--- a/plugins/base/src/main/kotlin/renderers/PackageListService.kt
+++ b/plugins/base/src/main/kotlin/renderers/PackageListService.kt
@@ -28,7 +28,8 @@ class PackageListService(val context: DokkaContext) {
val contentPage = node.safeAs<ContentPage>()
contentPage?.dri?.forEach {
if (parentDris.isNotEmpty() && it.parent !in parentDris) {
- nonStandardLocations[it.toString()] = locationProvider.resolve(node)
+ locationProvider.resolve(node)
+ ?.let { nodeLocation -> nonStandardLocations[it.toString()] = nodeLocation }
}
}
diff --git a/plugins/base/src/main/kotlin/renderers/html/HtmlRenderer.kt b/plugins/base/src/main/kotlin/renderers/html/HtmlRenderer.kt
index 8c2e9c9e..1a2a98b3 100644
--- a/plugins/base/src/main/kotlin/renderers/html/HtmlRenderer.kt
+++ b/plugins/base/src/main/kotlin/renderers/html/HtmlRenderer.kt
@@ -522,7 +522,7 @@ open class HtmlRenderer(
}
private fun FlowContent.buildLink(to: PageNode, from: PageNode) =
- buildLink(locationProvider.resolve(to, from)) {
+ buildLink(locationProvider.resolve(to, from)!!) {
text(to.name)
}
@@ -550,7 +550,7 @@ open class HtmlRenderer(
platforms: List<DisplaySourceSet>,
from: PageNode? = null,
block: FlowContent.() -> Unit
- ) = buildLink(locationProvider.resolve(to, platforms.toSet(), from), block)
+ ) = buildLink(locationProvider.resolve(to, platforms.toSet(), from).orEmpty(), block)
override fun buildError(node: ContentNode) {
context.logger.error("Unknown ContentNode type: $node")