@@ -27,6 +27,10 @@ plugins {
2727 alias(libs.plugins.aws.kotlin.repo.tools.artifactsizemetrics)
2828}
2929
30+ // subprojects {
31+ // apply(from = "${rootProject.file("buildSrc/src/main/kotlin/dokka-customization.gradle.kts")}")
32+ // }
33+
3034artifactSizeMetrics {
3135 artifactPrefixes = setOf (" :services" , " :aws-runtime" )
3236 closurePrefixes = setOf (" :services" )
@@ -41,6 +45,8 @@ val testJavaVersion = typedProp<String>("test.java.version")?.let {
4145}
4246
4347allprojects {
48+ apply (from = " ${rootProject.file(" buildSrc/src/main/kotlin/dokka-customization.gradle.kts" )} " )
49+
4450 tasks.withType< org.jetbrains.dokka.gradle.AbstractDokkaTask > ().configureEach {
4551 val sdkVersion: String by project
4652 moduleVersion.set(sdkVersion)
@@ -122,83 +128,6 @@ allprojects {
122128}
123129
124130project.afterEvaluate {
125- val trimNavigations = tasks.register(" trimNavigations" ) {
126- description = " Trims navigation files to remove unrelated child submenu"
127- group = " documentation"
128-
129- doLast {
130- val dokkaOutputDir = rootProject.buildDir.resolve(" dokka/htmlMultiModule" )
131-
132- if (! dokkaOutputDir.exists()) {
133- logger.warn(" Dokka output directory not found: ${dokkaOutputDir.absolutePath} " )
134- logger.warn(" Skipping navigation trimming" )
135- return @doLast
136- }
137-
138- dokkaOutputDir.listFiles { file ->
139- file.isDirectory && file.resolve(" navigation.html" ).exists()
140- }?.forEach { moduleDir ->
141- val moduleName = moduleDir.name
142-
143- val navFile = File (moduleDir, " navigation.html" )
144-
145- if (navFile.exists()) {
146- val doc = Jsoup .parse(navFile, " UTF-8" )
147-
148- // Fix navigation links
149- doc.select(" a[href^='../']" ).forEach { anchor ->
150- val originalHref = anchor.attr(" href" )
151- val trimmedHref = originalHref.replace(" ../" , " " )
152- anchor.attr(" href" , trimmedHref)
153- }
154-
155- val sideMenuParts = doc.select(" div.sideMenu > div.sideMenuPart" )
156-
157- sideMenuParts.forEach { submenu ->
158- val submenuId = submenu.id()
159- // If this is not the current module's submenu, remove all its nested content
160- if (submenuId != " $moduleName -nav-submenu" ) {
161- val overviewDiv = submenu.select(" > div.overview" ).first()
162- overviewDiv?.select(" span.navButton" )?.remove()
163- submenu.children().remove()
164- if (overviewDiv != null ) {
165- submenu.appendChild(overviewDiv)
166- }
167- }
168- }
169-
170- val wrappedContent = " <div class=\" sideMenu\" >\n ${sideMenuParts.outerHtml()} \n </div>"
171- navFile.writeText(wrappedContent)
172- }
173- }
174- }
175- }
176-
177- val useCustomNavigations = tasks.register(" useCustomNavigations" ) {
178- group = " documentation"
179- description = " Replace default Dokka navigation-loader.js with custom implementation"
180-
181- doLast {
182- val dokkaOutputDir = rootProject.buildDir.resolve(" dokka/htmlMultiModule" )
183-
184- if (! dokkaOutputDir.exists()) {
185- logger.warn(" Dokka output directory not found: ${dokkaOutputDir.absolutePath} " )
186- logger.warn(" Skipping using custom navigations" )
187- return @doLast
188- }
189-
190- dokkaOutputDir.walkTopDown()
191- .filter { it.isFile && it.name.endsWith(" .html" ) }
192- .forEach { file ->
193- val updatedContent = file.readLines().filterNot { line ->
194- line.contains(""" scripts/navigation-loader.js""" )
195- }.joinToString(" \n " )
196-
197- file.writeText(updatedContent)
198- }
199- }
200- }
201-
202131 // configure the root multimodule docs
203132 tasks.dokkaHtmlMultiModule.configure {
204133 moduleName.set(" AWS SDK for Kotlin" )
@@ -216,7 +145,7 @@ project.afterEvaluate {
216145 rootProject.file(" docs/dokka-presets/README.md" ),
217146 )
218147
219- finalizedBy(trimNavigations, useCustomNavigations )
148+ finalizedBy(" trimNavigations" , " applyCustomNavigationLoader " )
220149 }
221150}
222151
0 commit comments