diff options
Diffstat (limited to 'plugins/base/src/main')
3 files changed, 16 insertions, 6 deletions
diff --git a/plugins/base/src/main/kotlin/renderers/html/HtmlRenderer.kt b/plugins/base/src/main/kotlin/renderers/html/HtmlRenderer.kt index 1584df02..5c877f03 100644 --- a/plugins/base/src/main/kotlin/renderers/html/HtmlRenderer.kt +++ b/plugins/base/src/main/kotlin/renderers/html/HtmlRenderer.kt @@ -11,6 +11,7 @@ import org.jetbrains.dokka.base.renderers.isImage import org.jetbrains.dokka.base.renderers.pageId import org.jetbrains.dokka.base.resolvers.anchors.SymbolAnchorHint import org.jetbrains.dokka.base.resolvers.local.DokkaBaseLocationProvider +import org.jetbrains.dokka.base.templating.InsertTemplateExtra import org.jetbrains.dokka.base.templating.PathToRootSubstitutionCommand import org.jetbrains.dokka.base.templating.ResolveLinkCommand import org.jetbrains.dokka.links.DRI @@ -107,6 +108,7 @@ open class HtmlRenderer( node.hasStyle(TextStyle.Paragraph) -> p(additionalClasses) { childrenCallback() } node.hasStyle(TextStyle.Block) -> div(additionalClasses) { childrenCallback() } node.isAnchorable -> buildAnchor(node.anchor!!, node.anchorLabel!!, node.sourceSetsFilters) { childrenCallback() } + node.extra[InsertTemplateExtra] != null -> node.extra[InsertTemplateExtra]?.let { templateCommand(it.command) } ?: Unit else -> childrenCallback() } } @@ -800,11 +802,7 @@ open class HtmlRenderer( } } } else a { - href = pathToRoot.split("/") - .filter { it.isNotBlank() } - .drop(1).takeIf { it.isNotEmpty() } - ?.joinToString(separator = "/", postfix = "/index.html") - ?: "index.html" + href = pathToRoot + "index.html" div { id = "logo" } diff --git a/plugins/base/src/main/kotlin/resolvers/local/DokkaLocationProvider.kt b/plugins/base/src/main/kotlin/resolvers/local/DokkaLocationProvider.kt index c10029bc..5488f754 100644 --- a/plugins/base/src/main/kotlin/resolvers/local/DokkaLocationProvider.kt +++ b/plugins/base/src/main/kotlin/resolvers/local/DokkaLocationProvider.kt @@ -25,7 +25,7 @@ open class DokkaLocationProvider( page.children.forEach { registerPath(it, prefix) } } else { val newPrefix = prefix + page.pathName - put(page, newPrefix) + put(page, if (page is ModulePageNode) prefix else newPrefix) page.children.forEach { registerPath(it, newPrefix) } } diff --git a/plugins/base/src/main/kotlin/templating/InsertTemplateExtra.kt b/plugins/base/src/main/kotlin/templating/InsertTemplateExtra.kt new file mode 100644 index 00000000..b2e883f0 --- /dev/null +++ b/plugins/base/src/main/kotlin/templating/InsertTemplateExtra.kt @@ -0,0 +1,12 @@ +package org.jetbrains.dokka.base.templating + +import org.jetbrains.dokka.model.properties.ExtraProperty +import org.jetbrains.dokka.pages.ContentNode + +data class InsertTemplateExtra(val command: Command) : ExtraProperty<ContentNode> { + + companion object : ExtraProperty.Key<ContentNode, InsertTemplateExtra> + + override val key: ExtraProperty.Key<ContentNode, *> + get() = Companion +}
\ No newline at end of file |