diff options
Diffstat (limited to 'dokka-subprojects/plugin-jekyll-template-processing')
4 files changed, 84 insertions, 0 deletions
diff --git a/dokka-subprojects/plugin-jekyll-template-processing/api/plugin-jekyll-template-processing.api b/dokka-subprojects/plugin-jekyll-template-processing/api/plugin-jekyll-template-processing.api new file mode 100644 index 00000000..482a0d40 --- /dev/null +++ b/dokka-subprojects/plugin-jekyll-template-processing/api/plugin-jekyll-template-processing.api @@ -0,0 +1,6 @@ +public final class org/jetbrains/dokka/gfm/templateProcessing/JekyllTemplateProcessingPlugin : org/jetbrains/dokka/plugability/DokkaPlugin { + public fun <init> ()V + public final fun getJekyllLocationProvider ()Lorg/jetbrains/dokka/plugability/Extension; + public final fun getJekyllPartialLocationProvider ()Lorg/jetbrains/dokka/plugability/Extension; +} + diff --git a/dokka-subprojects/plugin-jekyll-template-processing/build.gradle.kts b/dokka-subprojects/plugin-jekyll-template-processing/build.gradle.kts new file mode 100644 index 00000000..38032cfb --- /dev/null +++ b/dokka-subprojects/plugin-jekyll-template-processing/build.gradle.kts @@ -0,0 +1,29 @@ +/* + * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. + */ + +import dokkabuild.overridePublicationArtifactId + +plugins { + id("dokkabuild.kotlin-jvm") + id("dokkabuild.publish-jvm") +} + +overridePublicationArtifactId("jekyll-template-processing-plugin") + +dependencies { + compileOnly(projects.dokkaSubprojects.dokkaCore) + + implementation(projects.dokkaSubprojects.pluginBase) + implementation(projects.dokkaSubprojects.pluginJekyll) + implementation(projects.dokkaSubprojects.pluginAllModulesPage) + implementation(projects.dokkaSubprojects.pluginTemplating) + implementation(projects.dokkaSubprojects.pluginGfm) + implementation(projects.dokkaSubprojects.pluginGfmTemplateProcessing) + + implementation(kotlin("reflect")) + implementation(libs.kotlinx.coroutines.core) + + testImplementation(kotlin("test")) + testImplementation(projects.dokkaSubprojects.coreTestApi) +} diff --git a/dokka-subprojects/plugin-jekyll-template-processing/src/main/kotlin/org/jetbrains/dokka/gfm/templateProcessing/JekyllTemplateProcessingPlugin.kt b/dokka-subprojects/plugin-jekyll-template-processing/src/main/kotlin/org/jetbrains/dokka/gfm/templateProcessing/JekyllTemplateProcessingPlugin.kt new file mode 100644 index 00000000..c5bcd67b --- /dev/null +++ b/dokka-subprojects/plugin-jekyll-template-processing/src/main/kotlin/org/jetbrains/dokka/gfm/templateProcessing/JekyllTemplateProcessingPlugin.kt @@ -0,0 +1,44 @@ +/* + * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. + */ + +package org.jetbrains.dokka.gfm.templateProcessing + +import org.jetbrains.dokka.allModulesPage.AllModulesPagePlugin +import org.jetbrains.dokka.allModulesPage.MultimoduleLocationProvider +import org.jetbrains.dokka.base.DokkaBase +import org.jetbrains.dokka.base.resolvers.local.DokkaLocationProviderFactory +import org.jetbrains.dokka.base.resolvers.local.LocationProviderFactory +import org.jetbrains.dokka.jekyll.JekyllPlugin +import org.jetbrains.dokka.plugability.DokkaPlugin +import org.jetbrains.dokka.plugability.DokkaPluginApiPreview +import org.jetbrains.dokka.plugability.Extension +import org.jetbrains.dokka.plugability.PluginApiPreviewAcknowledgement + +public class JekyllTemplateProcessingPlugin : DokkaPlugin() { + + private val allModulesPagePlugin by lazy { plugin<AllModulesPagePlugin>() } + + private val jekyllPlugin by lazy { plugin<JekyllPlugin>() } + private val gfmTemplatingPlugin by lazy { plugin<GfmTemplateProcessingPlugin>() } + + private val dokkaBase by lazy { plugin<DokkaBase>() } + + public val jekyllLocationProvider: Extension<LocationProviderFactory, *, *> by extending { + dokkaBase.locationProviderFactory providing MultimoduleLocationProvider::Factory override listOf( + jekyllPlugin.locationProvider, + gfmTemplatingPlugin.gfmLocationProvider + ) + } + + public val jekyllPartialLocationProvider: Extension<LocationProviderFactory, *, *> by extending { + allModulesPagePlugin.partialLocationProviderFactory providing ::DokkaLocationProviderFactory override listOf( + allModulesPagePlugin.baseLocationProviderFactory, + gfmTemplatingPlugin.gfmPartialLocationProvider + ) + } + + @OptIn(DokkaPluginApiPreview::class) + override fun pluginApiPreviewAcknowledgement(): PluginApiPreviewAcknowledgement = + PluginApiPreviewAcknowledgement +} diff --git a/dokka-subprojects/plugin-jekyll-template-processing/src/main/resources/META-INF/services/org.jetbrains.dokka.plugability.DokkaPlugin b/dokka-subprojects/plugin-jekyll-template-processing/src/main/resources/META-INF/services/org.jetbrains.dokka.plugability.DokkaPlugin new file mode 100644 index 00000000..d9584167 --- /dev/null +++ b/dokka-subprojects/plugin-jekyll-template-processing/src/main/resources/META-INF/services/org.jetbrains.dokka.plugability.DokkaPlugin @@ -0,0 +1,5 @@ +# +# Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. +# + +org.jetbrains.dokka.gfm.templateProcessing.JekyllTemplateProcessingPlugin |