Skip to content

Commit

Permalink
Utilize the new custom doc tag extension API for mathjax
Browse files Browse the repository at this point in the history
  • Loading branch information
IgnatBeresnev committed Feb 14, 2022
1 parent b833b71 commit dc75298
Show file tree
Hide file tree
Showing 3 changed files with 30 additions and 1 deletion.
7 changes: 7 additions & 0 deletions plugins/mathjax/api/mathjax.api
Original file line number Diff line number Diff line change
@@ -1,8 +1,15 @@
public final class org/jetbrains/dokka/mathjax/MathjaxPlugin : org/jetbrains/dokka/plugability/DokkaPlugin {
public fun <init> ()V
public final fun getMathjaxTagContentProvider ()Lorg/jetbrains/dokka/plugability/Extension;
public final fun getTransformer ()Lorg/jetbrains/dokka/plugability/Extension;
}

public final class org/jetbrains/dokka/mathjax/MathjaxTagContentProvider : org/jetbrains/dokka/base/transformers/pages/tags/CustomTagContentProvider {
public static final field INSTANCE Lorg/jetbrains/dokka/mathjax/MathjaxTagContentProvider;
public fun contentForBrief (Lorg/jetbrains/dokka/base/translators/documentables/PageContentBuilder$DocumentableContentBuilder;Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;Lorg/jetbrains/dokka/model/doc/CustomTagWrapper;)V
public fun contentForDescription (Lorg/jetbrains/dokka/base/translators/documentables/PageContentBuilder$DocumentableContentBuilder;Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;Lorg/jetbrains/dokka/model/doc/CustomTagWrapper;)V
}

public final class org/jetbrains/dokka/mathjax/MathjaxTransformer : org/jetbrains/dokka/transformers/pages/PageTransformer {
public static final field INSTANCE Lorg/jetbrains/dokka/mathjax/MathjaxTransformer;
public fun invoke (Lorg/jetbrains/dokka/pages/RootPageNode;)Lorg/jetbrains/dokka/pages/RootPageNode;
Expand Down
3 changes: 2 additions & 1 deletion plugins/mathjax/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
import org.jetbrains.registerDokkaArtifactPublication

dependencies {
implementation(project(":plugins:base"))

val jsoup_version: String by project
testImplementation("org.jsoup:jsoup:$jsoup_version")
testImplementation(project(":plugins:base"))
testImplementation(project(":plugins:base:base-test-utils"))
testImplementation(project(":core:content-matcher-test-utils"))
testImplementation(kotlin("test-junit"))
Expand Down
21 changes: 21 additions & 0 deletions plugins/mathjax/src/main/kotlin/MathjaxPlugin.kt
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,10 @@ package org.jetbrains.dokka.mathjax


import org.jetbrains.dokka.CoreExtensions
import org.jetbrains.dokka.DokkaConfiguration
import org.jetbrains.dokka.base.DokkaBase
import org.jetbrains.dokka.base.transformers.pages.tags.CustomTagContentProvider
import org.jetbrains.dokka.base.translators.documentables.PageContentBuilder.DocumentableContentBuilder
import org.jetbrains.dokka.model.doc.CustomTagWrapper
import org.jetbrains.dokka.pages.ContentPage
import org.jetbrains.dokka.pages.RootPageNode
Expand All @@ -12,6 +16,12 @@ class MathjaxPlugin : DokkaPlugin() {
val transformer by extending {
CoreExtensions.pageTransformer with MathjaxTransformer
}

val mathjaxTagContentProvider by extending {
plugin<DokkaBase>().customTagContentProvider with MathjaxTagContentProvider order {
before(plugin<DokkaBase>().sinceKotlinTagContentProvider)
}
}
}

private const val ANNOTATION = "usesMathJax"
Expand All @@ -29,4 +39,15 @@ object MathjaxTransformer : PageTransformer {
?.flatMap { it.children }
.orEmpty()
.any { (it as? CustomTagWrapper)?.name == ANNOTATION }
}

object MathjaxTagContentProvider : CustomTagContentProvider {
override fun DocumentableContentBuilder.contentForDescription(
sourceSet: DokkaConfiguration.DokkaSourceSet,
customTag: CustomTagWrapper
) {
if (customTag.name == ANNOTATION) {
comment(customTag.root, sourceSets = setOf(sourceSet))
}
}
}

0 comments on commit dc75298

Please sign in to comment.