@@ -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+
1627val 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
2542dependencies {
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