Skip to content

Commit 82c77bc

Browse files
committed
Set up Dokka
1 parent db1fc56 commit 82c77bc

File tree

20 files changed

+171
-33
lines changed

20 files changed

+171
-33
lines changed

Common/build.gradle.kts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
plugins {
22
id("hexdebug.conventions.architectury")
3+
id("hexdebug.conventions.dokka")
34
}
45

56
architectury {

Core/Common/build.gradle.kts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33

44
plugins {
55
id("hexdebug.conventions.architectury")
6+
id("hexdebug.conventions.dokka")
67
}
78

89
architectury {

DokkaPlugin/build.gradle.kts

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
import org.jetbrains.kotlin.gradle.dsl.JvmTarget
2+
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
3+
4+
plugins {
5+
kotlin("jvm")
6+
}
7+
8+
repositories {
9+
mavenCentral()
10+
}
11+
12+
dependencies {
13+
compileOnly(libs.dokka.core)
14+
implementation(libs.dokka.base)
15+
}
16+
17+
tasks.withType<KotlinCompile>().configureEach {
18+
compilerOptions.jvmTarget.set(JvmTarget.fromTarget(libs.versions.java.get()))
19+
}
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
package gay.`object`.hexdebug.dokka
2+
3+
import org.jetbrains.dokka.base.DokkaBase
4+
import org.jetbrains.dokka.base.transformers.documentables.SuppressedByConditionDocumentableFilterTransformer
5+
import org.jetbrains.dokka.links.DRI
6+
import org.jetbrains.dokka.model.Annotations
7+
import org.jetbrains.dokka.model.Documentable
8+
import org.jetbrains.dokka.model.properties.WithExtraProperties
9+
import org.jetbrains.dokka.plugability.DokkaContext
10+
import org.jetbrains.dokka.plugability.DokkaPlugin
11+
import org.jetbrains.dokka.plugability.DokkaPluginApiPreview
12+
import org.jetbrains.dokka.plugability.PluginApiPreviewAcknowledgement
13+
14+
// https://kotlin.github.io/dokka/2.0.0/developer_guide/plugin-development/sample-plugin-tutorial/
15+
16+
class HexDebugDokkaPlugin : DokkaPlugin() {
17+
@Suppress("unused")
18+
val filterExtension by extending {
19+
plugin<DokkaBase>().preMergeDocumentableTransformer providing ::HideInternalApiTransformer
20+
}
21+
22+
@DokkaPluginApiPreview
23+
override fun pluginApiPreviewAcknowledgement() = PluginApiPreviewAcknowledgement
24+
}
25+
26+
class HideInternalApiTransformer(context: DokkaContext) :
27+
SuppressedByConditionDocumentableFilterTransformer(context)
28+
{
29+
override fun shouldBeSuppressed(d: Documentable): Boolean {
30+
if (d !is WithExtraProperties<*>) return false
31+
return d.extra
32+
.allOfType<Annotations>()
33+
.flatMap { it.directAnnotations.values.flatten() }
34+
.any { isInternalAnnotation(it.dri) }
35+
}
36+
37+
private fun isInternalAnnotation(dri: DRI) =
38+
dri.packageName == "org.jetbrains.annotations" && dri.classNames == "ApiStatus.Internal"
39+
}
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
gay.object.hexdebug.dokka.HexDebugDokkaPlugin

Fabric/src/generated/resources/data/hexcasting/tags/action/requires_enlightenment.json

Lines changed: 0 additions & 7 deletions
This file was deleted.

Fabric/src/generated/resources/data/hexcasting/tags/items/staves.json

Lines changed: 0 additions & 7 deletions
This file was deleted.

Fabric/src/generated/resources/data/hexdebug/tags/items/focus_holder/blacklist.json

Lines changed: 0 additions & 6 deletions
This file was deleted.

Fabric/src/generated/resources/data/minecraft/tags/blocks/mineable/pickaxe.json

Lines changed: 0 additions & 8 deletions
This file was deleted.

build.gradle.kts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
plugins {
22
id("hexdebug.conventions.kotlin")
3+
id("hexdebug.conventions.dokka")
34
alias(libs.plugins.dotenv)
45
}
56

@@ -16,6 +17,12 @@ architectury {
1617
minecraft = minecraftVersion
1718
}
1819

20+
// remember to add the other subprojects here if we add per-platform APIs in the future
21+
dependencies {
22+
dokka(project(":Common"))
23+
dokka(project(":hexdebug-core-common"))
24+
}
25+
1926
tasks {
2027
register("viewLatestChangelog") {
2128
group = "documentation"

0 commit comments

Comments
 (0)