Skip to content

Commit 77014ed

Browse files
authored
fix: stop including playground.js in Dokka pages and correctly filter for internal APIs (#1404)
1 parent 55b6073 commit 77014ed

File tree

3 files changed

+43
-16
lines changed

3 files changed

+43
-16
lines changed

dokka-aws/src/main/kotlin/aws/sdk/kotlin/dokka/AwsDokkaPlugin.kt

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,10 @@
55

66
package aws.sdk.kotlin.dokka
77

8+
import aws.sdk.kotlin.dokka.transformers.DisablePlaygroundIntegration
89
import aws.sdk.kotlin.dokka.transformers.FilterInternalApis
910
import aws.sdk.kotlin.dokka.transformers.NoOpSearchbarDataInstaller
11+
import org.jetbrains.dokka.CoreExtensions
1012
import org.jetbrains.dokka.base.DokkaBase
1113
import org.jetbrains.dokka.plugability.DokkaPlugin
1214
import org.jetbrains.dokka.plugability.DokkaPluginApiPreview
@@ -32,6 +34,12 @@ class AwsDokkaPlugin : DokkaPlugin() {
3234
dokkaBase.htmlPreprocessors providing ::NoOpSearchbarDataInstaller override dokkaBase.baseSearchbarDataInstaller
3335
}
3436

37+
val disablePlaygroundIntegration by extending {
38+
CoreExtensions.pageTransformer providing ::DisablePlaygroundIntegration order {
39+
after(dokkaBase.defaultSamplesTransformer)
40+
}
41+
}
42+
3543
@DokkaPluginApiPreview
3644
override fun pluginApiPreviewAcknowledgement() = PluginApiPreviewAcknowledgement
3745
}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
/*
2+
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3+
* SPDX-License-Identifier: Apache-2.0
4+
*/
5+
package aws.sdk.kotlin.dokka.transformers
6+
7+
import org.jetbrains.dokka.pages.RootPageNode
8+
import org.jetbrains.dokka.plugability.DokkaContext
9+
import org.jetbrains.dokka.transformers.pages.PageTransformer
10+
11+
@Suppress("UNUSED_PARAMETER") // `context` is required by the `provides` DSL method for installing transformers
12+
class DisablePlaygroundIntegration(context: DokkaContext) : PageTransformer {
13+
override fun invoke(input: RootPageNode) = input.transformContentPagesTree { page ->
14+
page.modified(
15+
content = page.content,
16+
embeddedResources = page.embeddedResources.filterNot { "unpkg.com" in it },
17+
)
18+
}
19+
}

dokka-aws/src/main/kotlin/aws/sdk/kotlin/dokka/transformers/FilterInternalApis.kt

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -16,14 +16,14 @@ import org.jetbrains.dokka.plugability.DokkaContext
1616
class FilterInternalApis(context: DokkaContext) : SuppressedByConditionDocumentableFilterTransformer(context) {
1717
override fun shouldBeSuppressed(d: Documentable): Boolean {
1818
val isInternal = when (d) {
19-
is DClass -> d.isInternalSdk()
20-
is DObject -> d.isInternalSdk()
21-
is DTypeAlias -> d.isInternalSdk()
22-
is DFunction -> d.isInternalSdk()
23-
is DProperty -> d.isInternalSdk()
24-
is DEnum -> d.isInternalSdk()
25-
is DEnumEntry -> d.isInternalSdk()
26-
is DTypeParameter -> d.isInternalSdk()
19+
is DClass -> d.isInternalSdk
20+
is DObject -> d.isInternalSdk
21+
is DTypeAlias -> d.isInternalSdk
22+
is DFunction -> d.isInternalSdk
23+
is DProperty -> d.isInternalSdk
24+
is DEnum -> d.isInternalSdk
25+
is DEnumEntry -> d.isInternalSdk
26+
is DTypeParameter -> d.isInternalSdk
2727
else -> false
2828
}
2929

@@ -33,12 +33,12 @@ class FilterInternalApis(context: DokkaContext) : SuppressedByConditionDocumenta
3333
}
3434
}
3535

36-
fun <T> T.isInternalSdk() where T : WithExtraProperties<out Documentable> =
37-
internalAnnotation != null
36+
private val internalAnnotationNames = setOf("InternalApi", "InternalSdkApi")
3837

39-
val <T> T.internalAnnotation where T : WithExtraProperties<out Documentable>
40-
get() = extra[Annotations]?.let { annotations ->
41-
annotations.directAnnotations.values.flatten().firstOrNull {
42-
it.dri.toString() == "aws.sdk.kotlin.runtime/InternalSdkApi///PointingToDeclaration/"
43-
}
44-
}
38+
private val <T> T.isInternalSdk: Boolean where T : WithExtraProperties<out Documentable>
39+
get() = extra[Annotations]
40+
?.directAnnotations
41+
.orEmpty()
42+
.values
43+
.flatten()
44+
.any { it.dri.classNames in internalAnnotationNames }

0 commit comments

Comments
 (0)