diff options
Diffstat (limited to 'plugins/base/src/main/kotlin/renderers')
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") |
