diff --git a/renderer/src/main/kotlin/renderer3/Links.kt b/renderer/src/main/kotlin/renderer3/Links.kt index 0712076..9f07ed4 100644 --- a/renderer/src/main/kotlin/renderer3/Links.kt +++ b/renderer/src/main/kotlin/renderer3/Links.kt @@ -21,7 +21,7 @@ import org.jetbrains.dokka.pages.ContentResolvedLink import org.jetbrains.dokka.pages.PageNode internal fun RenderingContext.buildLink(to: PageNode, from: PageNode) = - buildLink(locations.resolve(to, from, skipExtension = true)!! + ".html") { + buildLink(resolveInternalLink(locations.resolve(to, from)!!)) { append(to.name) } @@ -42,14 +42,10 @@ internal fun RenderingContext.buildLink(address: String, isCode: Boolean = false } internal fun RenderingContext.buildDRILink(link: ContentDRILink) { - var address = locations.resolve(link.address, link.sourceSets, page) - - if (address != null && address.endsWith(".md")) { - address = address.removeSuffix(".md") + ".html" - } + val address = locations.resolve(link.address, link.sourceSets, page) if (address != null) { - buildLink(address, isCode = true) { + buildLink(resolveInternalLink(address), isCode = true) { buildGroup(link) } } else { @@ -62,3 +58,10 @@ internal fun RenderingContext.buildResolvedLink(link: ContentResolvedLink) { buildGroup(link) } } + +private fun RenderingContext.resolveInternalLink(address: String): String = + if (isInCodeBlock && address.endsWith(".md")) { + "${address.removeSuffix(".md")}.html" + } else { + address + } -- 2.51.2 From 92df1a036d120f398cd85502bdbe9ed8fcc64caa Mon Sep 17 00:00:00 2001 From: t-regbs Date: Thu, 5 Mar 2026 14:55:20 +0000 Subject: [PATCH 2/4] refactor(renderer): Inline code-block link rewrite and document rationale --- renderer/src/main/kotlin/renderer3/Links.kt | 22 ++++++++------------- 1 file changed, 8 insertions(+), 14 deletions(-) diff --git a/renderer/src/main/kotlin/renderer3/Links.kt b/renderer/src/main/kotlin/renderer3/Links.kt index 9f07ed4..888174a 100644 --- a/renderer/src/main/kotlin/renderer3/Links.kt +++ b/renderer/src/main/kotlin/renderer3/Links.kt @@ -18,12 +18,6 @@ package opensavvy.dokka.material.mkdocs.renderer3 import org.jetbrains.dokka.pages.ContentDRILink import org.jetbrains.dokka.pages.ContentResolvedLink -import org.jetbrains.dokka.pages.PageNode - -internal fun RenderingContext.buildLink(to: PageNode, from: PageNode) = - buildLink(resolveInternalLink(locations.resolve(to, from)!!)) { - append(to.name) - } internal fun RenderingContext.buildLink(address: String, isCode: Boolean = false, label: RenderingContext.() -> Unit) { if (isInCodeBlock) { @@ -45,7 +39,14 @@ internal fun RenderingContext.buildDRILink(link: ContentDRILink) { val address = locations.resolve(link.address, link.sourceSets, page) if (address != null) { - buildLink(resolveInternalLink(address), isCode = true) { + val linkAddress = if (isInCodeBlock && address.endsWith(".md")) { + // In code blocks, links are emitted as raw tags, so MkDocs can't resolve .md targets; convert them to .html. + "${address.removeSuffix(".md")}.html" + } else { + address + } + + buildLink(linkAddress, isCode = true) { buildGroup(link) } } else { @@ -58,10 +59,3 @@ internal fun RenderingContext.buildResolvedLink(link: ContentResolvedLink) { buildGroup(link) } } - -private fun RenderingContext.resolveInternalLink(address: String): String = - if (isInCodeBlock && address.endsWith(".md")) { - "${address.removeSuffix(".md")}.html" - } else { - address - } -- 2.51.2 From 36b5429a38fc95d95bd6f6be703a261e32daa454 Mon Sep 17 00:00:00 2001 From: t-regbs Date: Sat, 7 Mar 2026 19:13:00 +0000 Subject: [PATCH 3/4] Revert "refactor(renderer): Inline code-block link rewrite and document rationale" This reverts commit 92df1a036d120f398cd85502bdbe9ed8fcc64caa. --- renderer/src/main/kotlin/renderer3/Links.kt | 22 +++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/renderer/src/main/kotlin/renderer3/Links.kt b/renderer/src/main/kotlin/renderer3/Links.kt index 888174a..9f07ed4 100644 --- a/renderer/src/main/kotlin/renderer3/Links.kt +++ b/renderer/src/main/kotlin/renderer3/Links.kt @@ -18,6 +18,12 @@ package opensavvy.dokka.material.mkdocs.renderer3 import org.jetbrains.dokka.pages.ContentDRILink import org.jetbrains.dokka.pages.ContentResolvedLink +import org.jetbrains.dokka.pages.PageNode + +internal fun RenderingContext.buildLink(to: PageNode, from: PageNode) = + buildLink(resolveInternalLink(locations.resolve(to, from)!!)) { + append(to.name) + } internal fun RenderingContext.buildLink(address: String, isCode: Boolean = false, label: RenderingContext.() -> Unit) { if (isInCodeBlock) { @@ -39,14 +45,7 @@ internal fun RenderingContext.buildDRILink(link: ContentDRILink) { val address = locations.resolve(link.address, link.sourceSets, page) if (address != null) { - val linkAddress = if (isInCodeBlock && address.endsWith(".md")) { - // In code blocks, links are emitted as raw tags, so MkDocs can't resolve .md targets; convert them to .html. - "${address.removeSuffix(".md")}.html" - } else { - address - } - - buildLink(linkAddress, isCode = true) { + buildLink(resolveInternalLink(address), isCode = true) { buildGroup(link) } } else { @@ -59,3 +58,10 @@ internal fun RenderingContext.buildResolvedLink(link: ContentResolvedLink) { buildGroup(link) } } + +private fun RenderingContext.resolveInternalLink(address: String): String = + if (isInCodeBlock && address.endsWith(".md")) { + "${address.removeSuffix(".md")}.html" + } else { + address + } -- 2.51.2 From 5c9c2fedfd618b50eb7ef3bb0bccd5bad824dc81 Mon Sep 17 00:00:00 2001 From: t-regbs Date: Sat, 7 Mar 2026 19:33:24 +0000 Subject: [PATCH 4/4] chore: document link rewrite rationale --- renderer/src/main/kotlin/renderer3/Links.kt | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/renderer/src/main/kotlin/renderer3/Links.kt b/renderer/src/main/kotlin/renderer3/Links.kt index 9f07ed4..2789baf 100644 --- a/renderer/src/main/kotlin/renderer3/Links.kt +++ b/renderer/src/main/kotlin/renderer3/Links.kt @@ -59,9 +59,11 @@ internal fun RenderingContext.buildResolvedLink(link: ContentResolvedLink) { } } -private fun RenderingContext.resolveInternalLink(address: String): String = - if (isInCodeBlock && address.endsWith(".md")) { +private fun RenderingContext.resolveInternalLink(address: String): String { + return if (isInCodeBlock && address.endsWith(".md")) { + // In code blocks, links are emitted as raw tags, so MkDocs can't resolve .md targets; convert them to .html. "${address.removeSuffix(".md")}.html" } else { address } +}