@@ -8,22 +8,39 @@ plugins {
8
8
base
9
9
}
10
10
11
- val templateConfig = Pair (
11
+ private val templateConfig = Pair (
12
12
" org.jetbrains.dokka.base.DokkaBase" ,
13
13
" { \" templatesDir\" : \" ${project.rootDir.resolve(" build/api-reference/templates" ).also { it.mkdirs() }} \" }"
14
14
)
15
15
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
+
16
27
val documentationExtension = extensions.create<PluginsApiDocumentationExtension >(
17
28
" 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
+ }
21
38
}
22
39
}
23
40
)
24
41
25
42
dependencies {
26
- dokkaPlugin(versionCatalogs.named( " libs " ).findLibrary( " dokka-versioningPlugin " ).get() )
43
+ dokkaPlugin(dokkaVersioningPlugin )
27
44
dokkaPlugin(versionCatalogs.named(" libs" ).findLibrary(" dokka-multiModulePlugin" ).get())
28
45
}
29
46
@@ -81,14 +98,9 @@ tasks.register<org.jetbrains.dokka.gradle.DokkaMultiModuleTask>("dokkaKotlinlang
81
98
82
99
dependsOn(unzipTemplates)
83
100
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
+ }
92
104
93
105
fileLayout.set(DokkaMultiModuleFileLayout { parent, child ->
94
106
parent.outputDirectory.dir(child.project.name)
0 commit comments