Skip to content

Commit 4086c4b

Browse files
TapchicomaSpace Team
authored andcommitted
[Gradle] Apply Dokka versioning plugin also to leaf partial html
This fixes versioning styling in the published API reference.
1 parent a8a8e06 commit 4086c4b

File tree

2 files changed

+27
-15
lines changed

2 files changed

+27
-15
lines changed

repo/gradle-build-conventions/gradle-plugins-documentation/src/main/kotlin/PluginsApiDocumentationExtension.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import javax.inject.Inject
1212

1313
abstract class PluginsApiDocumentationExtension @Inject constructor(
1414
objectFactory: ObjectFactory,
15-
private val childProjectConfiguration: (Project) -> Unit
15+
private val childProjectConfiguration: (Project, PluginsApiDocumentationExtension) -> Unit
1616
) {
1717
abstract val documentationOutput: DirectoryProperty
1818
abstract val documentationOldVersions: DirectoryProperty
@@ -23,6 +23,6 @@ abstract class PluginsApiDocumentationExtension @Inject constructor(
2323

2424
fun addGradlePluginProject(project: Project) {
2525
gradlePluginsProjects.add(project)
26-
childProjectConfiguration(project)
26+
childProjectConfiguration(project, this)
2727
}
2828
}

repo/gradle-build-conventions/gradle-plugins-documentation/src/main/kotlin/gradle-plugins-documentation.gradle.kts

Lines changed: 25 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -8,22 +8,39 @@ plugins {
88
base
99
}
1010

11-
val templateConfig = Pair(
11+
private val templateConfig = Pair(
1212
"org.jetbrains.dokka.base.DokkaBase",
1313
"{ \"templatesDir\": \"${project.rootDir.resolve("build/api-reference/templates").also { it.mkdirs() }}\" }"
1414
)
1515

16+
// Documentation: https://github.com/Kotlin/dokka/tree/1.9.20/dokka-subprojects/plugin-versioning
17+
private val PluginsApiDocumentationExtension.versioningConfig
18+
get() = Pair(
19+
"org.jetbrains.dokka.versioning.VersioningPlugin",
20+
documentationOldVersions.map { olderVersionsDir ->
21+
"{ \"version\":\"$version\", \"olderVersionsDir\":\"${olderVersionsDir.asFile.also { it.mkdirs() }}\" }"
22+
}
23+
)
24+
25+
private val dokkaVersioningPlugin = versionCatalogs.named("libs").findLibrary("dokka-versioningPlugin").get()
26+
1627
val documentationExtension = extensions.create<PluginsApiDocumentationExtension>(
1728
"pluginsApiDocumentation",
18-
{ project: Project ->
19-
project.tasks.withType<DokkaTaskPartial>().configureEach {
20-
pluginsMapConfiguration.put(templateConfig.first, templateConfig.second)
29+
{ project: Project, extension: PluginsApiDocumentationExtension ->
30+
project.plugins.withId("org.jetbrains.dokka") {
31+
project.dependencies {
32+
"dokkaPlugin"(dokkaVersioningPlugin)
33+
}
34+
project.tasks.withType<DokkaTaskPartial>().configureEach {
35+
pluginsMapConfiguration.put(templateConfig.first, templateConfig.second)
36+
extension.versioningConfig.let { pluginsMapConfiguration.put(it.first, it.second) }
37+
}
2138
}
2239
}
2340
)
2441

2542
dependencies {
26-
dokkaPlugin(versionCatalogs.named("libs").findLibrary("dokka-versioningPlugin").get())
43+
dokkaPlugin(dokkaVersioningPlugin)
2744
dokkaPlugin(versionCatalogs.named("libs").findLibrary("dokka-multiModulePlugin").get())
2845
}
2946

@@ -81,14 +98,9 @@ tasks.register<org.jetbrains.dokka.gradle.DokkaMultiModuleTask>("dokkaKotlinlang
8198

8299
dependsOn(unzipTemplates)
83100
pluginsMapConfiguration.put(templateConfig.first, templateConfig.second)
84-
85-
// Documentation: https://github.com/Kotlin/dokka/tree/1.9.20/dokka-subprojects/plugin-versioning
86-
pluginsMapConfiguration.put(
87-
"org.jetbrains.dokka.versioning.VersioningPlugin",
88-
documentationExtension.documentationOldVersions.map { olderVersionsDir ->
89-
"{ \"version\":\"$version\", \"olderVersionsDir\":\"${olderVersionsDir.asFile.also { it.mkdirs() }}\" }"
90-
}
91-
)
101+
documentationExtension.versioningConfig.let {
102+
pluginsMapConfiguration.put(it.first, it.second)
103+
}
92104

93105
fileLayout.set(DokkaMultiModuleFileLayout { parent, child ->
94106
parent.outputDirectory.dir(child.project.name)

0 commit comments

Comments
 (0)