[Gradle] Apply Dokka versioning plugin also to leaf partial html
This fixes versioning styling in the published API reference.
diff --git a/repo/gradle-build-conventions/gradle-plugins-documentation/src/main/kotlin/PluginsApiDocumentationExtension.kt b/repo/gradle-build-conventions/gradle-plugins-documentation/src/main/kotlin/PluginsApiDocumentationExtension.kt
index c9f6118..a5f5a33 100644
--- a/repo/gradle-build-conventions/gradle-plugins-documentation/src/main/kotlin/PluginsApiDocumentationExtension.kt
+++ b/repo/gradle-build-conventions/gradle-plugins-documentation/src/main/kotlin/PluginsApiDocumentationExtension.kt
@@ -12,7 +12,7 @@
abstract class PluginsApiDocumentationExtension @Inject constructor(
objectFactory: ObjectFactory,
- private val childProjectConfiguration: (Project) -> Unit
+ private val childProjectConfiguration: (Project, PluginsApiDocumentationExtension) -> Unit
) {
abstract val documentationOutput: DirectoryProperty
abstract val documentationOldVersions: DirectoryProperty
@@ -23,6 +23,6 @@
fun addGradlePluginProject(project: Project) {
gradlePluginsProjects.add(project)
- childProjectConfiguration(project)
+ childProjectConfiguration(project, this)
}
}
\ No newline at end of file
diff --git a/repo/gradle-build-conventions/gradle-plugins-documentation/src/main/kotlin/gradle-plugins-documentation.gradle.kts b/repo/gradle-build-conventions/gradle-plugins-documentation/src/main/kotlin/gradle-plugins-documentation.gradle.kts
index 4367ca41e..c6b279b 100644
--- a/repo/gradle-build-conventions/gradle-plugins-documentation/src/main/kotlin/gradle-plugins-documentation.gradle.kts
+++ b/repo/gradle-build-conventions/gradle-plugins-documentation/src/main/kotlin/gradle-plugins-documentation.gradle.kts
@@ -8,22 +8,39 @@
base
}
-val templateConfig = Pair(
+private val templateConfig = Pair(
"org.jetbrains.dokka.base.DokkaBase",
"{ \"templatesDir\": \"${project.rootDir.resolve("build/api-reference/templates").also { it.mkdirs() }}\" }"
)
+// Documentation: https://github.com/Kotlin/dokka/tree/1.9.20/dokka-subprojects/plugin-versioning
+private val PluginsApiDocumentationExtension.versioningConfig
+ get() = Pair(
+ "org.jetbrains.dokka.versioning.VersioningPlugin",
+ documentationOldVersions.map { olderVersionsDir ->
+ "{ \"version\":\"$version\", \"olderVersionsDir\":\"${olderVersionsDir.asFile.also { it.mkdirs() }}\" }"
+ }
+ )
+
+private val dokkaVersioningPlugin = versionCatalogs.named("libs").findLibrary("dokka-versioningPlugin").get()
+
val documentationExtension = extensions.create<PluginsApiDocumentationExtension>(
"pluginsApiDocumentation",
- { project: Project ->
- project.tasks.withType<DokkaTaskPartial>().configureEach {
- pluginsMapConfiguration.put(templateConfig.first, templateConfig.second)
+ { project: Project, extension: PluginsApiDocumentationExtension ->
+ project.plugins.withId("org.jetbrains.dokka") {
+ project.dependencies {
+ "dokkaPlugin"(dokkaVersioningPlugin)
+ }
+ project.tasks.withType<DokkaTaskPartial>().configureEach {
+ pluginsMapConfiguration.put(templateConfig.first, templateConfig.second)
+ extension.versioningConfig.let { pluginsMapConfiguration.put(it.first, it.second) }
+ }
}
}
)
dependencies {
- dokkaPlugin(versionCatalogs.named("libs").findLibrary("dokka-versioningPlugin").get())
+ dokkaPlugin(dokkaVersioningPlugin)
dokkaPlugin(versionCatalogs.named("libs").findLibrary("dokka-multiModulePlugin").get())
}
@@ -81,14 +98,9 @@
dependsOn(unzipTemplates)
pluginsMapConfiguration.put(templateConfig.first, templateConfig.second)
-
- // Documentation: https://github.com/Kotlin/dokka/tree/1.9.20/dokka-subprojects/plugin-versioning
- pluginsMapConfiguration.put(
- "org.jetbrains.dokka.versioning.VersioningPlugin",
- documentationExtension.documentationOldVersions.map { olderVersionsDir ->
- "{ \"version\":\"$version\", \"olderVersionsDir\":\"${olderVersionsDir.asFile.also { it.mkdirs() }}\" }"
- }
- )
+ documentationExtension.versioningConfig.let {
+ pluginsMapConfiguration.put(it.first, it.second)
+ }
fileLayout.set(DokkaMultiModuleFileLayout { parent, child ->
parent.outputDirectory.dir(child.project.name)