aboutsummaryrefslogtreecommitdiff
path: root/plugins/mathjax
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/mathjax')
-rw-r--r--plugins/mathjax/README.md27
-rw-r--r--plugins/mathjax/api/mathjax.api18
-rw-r--r--plugins/mathjax/build.gradle.kts34
-rw-r--r--plugins/mathjax/src/main/kotlin/MathjaxPlugin.kt67
-rw-r--r--plugins/mathjax/src/main/resources/META-INF/services/org.jetbrains.dokka.plugability.DokkaPlugin5
-rw-r--r--plugins/mathjax/src/test/kotlin/MathjaxPluginTest.kt92
6 files changed, 0 insertions, 243 deletions
diff --git a/plugins/mathjax/README.md b/plugins/mathjax/README.md
deleted file mode 100644
index a12095ee..00000000
--- a/plugins/mathjax/README.md
+++ /dev/null
@@ -1,27 +0,0 @@
-# MathJax plugin
-
-[MathJax](https://docs.mathjax.org/) allows you to include mathematics in your web pages. The `mathjax` Dokka plugin
-adds the ability to render mathematics found in source code comments.
-
-If MathJax plugin encounters the `@usesMathJax` KDoc tag, it adds `MathJax.js` (ver. 2) with `config=TeX-AMS_SVG`
-to the generated HTML pages.
-
-Usage example:
-
-```kotlin
-/**
- * Some math \(\sqrt{3x-1}+(1+x)^2\)
- *
- * @usesMathJax
- */
-class Foo {}
-```
-
-Note that the `@usesMathJax` tag is case-sensitive.
-
-The MathJax plugin is published to Maven Central as a
-[separate artifact](https://mvnrepository.com/artifact/org.jetbrains.dokka/mathjax-plugin):
-
-```text
-org.jetbrains.dokka:mathjax-plugin:1.9.10
-```
diff --git a/plugins/mathjax/api/mathjax.api b/plugins/mathjax/api/mathjax.api
deleted file mode 100644
index da5caeb2..00000000
--- a/plugins/mathjax/api/mathjax.api
+++ /dev/null
@@ -1,18 +0,0 @@
-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 fun isApplicable (Lorg/jetbrains/dokka/model/doc/CustomTagWrapper;)Z
-}
-
-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;
-}
-
diff --git a/plugins/mathjax/build.gradle.kts b/plugins/mathjax/build.gradle.kts
deleted file mode 100644
index fba465aa..00000000
--- a/plugins/mathjax/build.gradle.kts
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
- */
-
-import org.jetbrains.registerDokkaArtifactPublication
-
-plugins {
- id("org.jetbrains.conventions.kotlin-jvm")
- id("org.jetbrains.conventions.maven-publish")
- id("org.jetbrains.conventions.base-unit-test")
-}
-
-dependencies {
- compileOnly(projects.core)
-
- implementation(projects.plugins.base)
-
- implementation(kotlin("reflect"))
-
- testImplementation(kotlin("test"))
- testImplementation(libs.jsoup)
- testImplementation(projects.core.contentMatcherTestUtils)
- testImplementation(projects.core.testApi)
-
- symbolsTestConfiguration(project(path = ":subprojects:analysis-kotlin-symbols", configuration = "shadow"))
- descriptorsTestConfiguration(project(path = ":subprojects:analysis-kotlin-descriptors", configuration = "shadow"))
- testImplementation(projects.plugins.base.baseTestUtils) {
- exclude(module = "analysis-kotlin-descriptors")
- }
-}
-
-registerDokkaArtifactPublication("mathjaxPlugin") {
- artifactId = "mathjax-plugin"
-}
diff --git a/plugins/mathjax/src/main/kotlin/MathjaxPlugin.kt b/plugins/mathjax/src/main/kotlin/MathjaxPlugin.kt
deleted file mode 100644
index 2a7ed6a4..00000000
--- a/plugins/mathjax/src/main/kotlin/MathjaxPlugin.kt
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
- */
-
-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
-import org.jetbrains.dokka.pages.WithDocumentables
-import org.jetbrains.dokka.plugability.DokkaPlugin
-import org.jetbrains.dokka.plugability.DokkaPluginApiPreview
-import org.jetbrains.dokka.plugability.Extension
-import org.jetbrains.dokka.plugability.PluginApiPreviewAcknowledgement
-import org.jetbrains.dokka.transformers.pages.PageTransformer
-
-public class MathjaxPlugin : DokkaPlugin() {
-
- public val transformer: Extension<PageTransformer, *, *> by extending {
- CoreExtensions.pageTransformer with MathjaxTransformer
- }
-
- public val mathjaxTagContentProvider: Extension<CustomTagContentProvider, *, *> by extending {
- plugin<DokkaBase>().customTagContentProvider with MathjaxTagContentProvider order {
- before(plugin<DokkaBase>().sinceKotlinTagContentProvider)
- }
- }
-
- @OptIn(DokkaPluginApiPreview::class)
- override fun pluginApiPreviewAcknowledgement(): PluginApiPreviewAcknowledgement =
- PluginApiPreviewAcknowledgement
-}
-
-private const val ANNOTATION = "usesMathJax"
-internal const val LIB_PATH = "https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.6/MathJax.js?config=TeX-AMS_SVG&latest"
-
-public object MathjaxTransformer : PageTransformer {
-
- override fun invoke(input: RootPageNode): RootPageNode = input.transformContentPagesTree {
- it.modified(
- embeddedResources = it.embeddedResources + if (it.isNeedingMathjax) listOf(LIB_PATH) else emptyList()
- )
- }
-
- private val ContentPage.isNeedingMathjax
- get() = (this as WithDocumentables).documentables.any { it.documentation.values
- .flatMap { it.children }
- .any { (it as? CustomTagWrapper)?.name == ANNOTATION } }
-}
-
-public object MathjaxTagContentProvider : CustomTagContentProvider {
-
- override fun isApplicable(customTag: CustomTagWrapper): Boolean = customTag.name == ANNOTATION
-
- override fun DocumentableContentBuilder.contentForDescription(
- sourceSet: DokkaConfiguration.DokkaSourceSet,
- customTag: CustomTagWrapper
- ) {
- comment(customTag.root, sourceSets = setOf(sourceSet))
- }
-}
diff --git a/plugins/mathjax/src/main/resources/META-INF/services/org.jetbrains.dokka.plugability.DokkaPlugin b/plugins/mathjax/src/main/resources/META-INF/services/org.jetbrains.dokka.plugability.DokkaPlugin
deleted file mode 100644
index 4a9d7a9e..00000000
--- a/plugins/mathjax/src/main/resources/META-INF/services/org.jetbrains.dokka.plugability.DokkaPlugin
+++ /dev/null
@@ -1,5 +0,0 @@
-#
-# Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
-#
-
-org.jetbrains.dokka.mathjax.MathjaxPlugin
diff --git a/plugins/mathjax/src/test/kotlin/MathjaxPluginTest.kt b/plugins/mathjax/src/test/kotlin/MathjaxPluginTest.kt
deleted file mode 100644
index 905684d2..00000000
--- a/plugins/mathjax/src/test/kotlin/MathjaxPluginTest.kt
+++ /dev/null
@@ -1,92 +0,0 @@
-/*
- * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
- */
-
-package mathjaxTest
-
-import org.jetbrains.dokka.base.testApi.testRunner.BaseAbstractTest
-import org.jetbrains.dokka.mathjax.LIB_PATH
-import org.jetbrains.dokka.mathjax.MathjaxPlugin
-import org.jsoup.Jsoup
-import utils.TestOutputWriterPlugin
-import kotlin.test.Test
-import kotlin.test.assertTrue
-
-class MathjaxPluginTest : BaseAbstractTest() {
- @Test
- fun noMathjaxTest() {
- val configuration = dokkaConfiguration {
- sourceSets {
- sourceSet {
- sourceRoots = listOf("src/main/kotlin/test/Test.kt")
- }
- }
- }
- val source =
- """
- |/src/main/kotlin/test/Test.kt
- |package example
- | /**
- | * Just a regular kdoc
- | */
- | fun test(): String = ""
- """.trimIndent()
- val writerPlugin = TestOutputWriterPlugin()
- testInline(
- source,
- configuration,
- pluginOverrides = listOf(writerPlugin, MathjaxPlugin())
- ) {
- renderingStage = {
- _, _ -> Jsoup
- .parse(writerPlugin.writer.contents.getValue("root/example/test.html"))
- .head()
- .select("link, script")
- .let {
- assertTrue(!it.`is`("[href=$LIB_PATH], [src=$LIB_PATH]"))
- }
- }
- }
- }
-
- @Test
- fun usingMathjaxTest() {
- val configuration = dokkaConfiguration {
- sourceSets {
- sourceSet {
- sourceRoots = listOf("src/main/kotlin/test/Test.kt")
- }
- }
- }
- val math = "a^2 = b^2 + c^2"
- val source =
- """
- |/src/main/kotlin/test/Test.kt
- |package example
- | /**
- | * @usesMathJax
- | *
- | * \($math\)
- | */
- | fun test(): String = ""
- """.trimIndent()
- val writerPlugin = TestOutputWriterPlugin()
- testInline(
- source,
- configuration,
- pluginOverrides = listOf(writerPlugin, MathjaxPlugin())
- ) {
- renderingStage = { _, _ ->
- val parsed = Jsoup.parse(writerPlugin.writer.contents.getValue("root/example/test.html"))
-
- // Ensure the MathJax CDN is loaded
- assertTrue(parsed.select("link, script").`is`("[href=$LIB_PATH], [src=$LIB_PATH]"))
-
- // Ensure the contents are displayed
- assertTrue(parsed.select("p").any {
- it.text().contains(math)
- })
- }
- }
- }
-}