# Dokka community plugins
On this page you can find `Dokka` plugins which are supported by both `Dokka` maintainers and community members.
If you want to add your plugin to this list, get in touch with maintainers via [Slack](../community/slack.md)
or `GitHub`.
If you want to learn how to develop plugins for `Dokka`, see
[Plugin development](../developer_guide/plugin-development/introduction.md) section.
## Output Formats
### Javadoc (Alpha)
Javadoc plugin adds a `Javadoc` output format that looks like Java's `Javadoc`, but it's for the most part
a lookalike, so you may experience problems if you try to use it with a tool that expects native
`Javadoc` documentation generated by `Java`.
`Javadoc` plugin does not support multiplatform projects and does not have a multi-module task.
`Javadoc` plugin is shipped with `Dokka`, so you can start using it right away with one of the following tasks:
* `dokkaJavadoc` - builds `Javadoc` documentation for single-module projects or for a specific module.
* `dokkaJavadocCollector` - collects generated `Javadoc` documentation from submodules and assembles it together.
`Javadoc` plugin has its own signature provider that essentially translates `Kotlin` signatures to `Java` ones.
**This plugin is at its early stages**, so you may experience issues and encounter bugs. Feel free to
[report](https://github.com/Kotlin/dokka/issues/new/choose) any errors you see.
[Plugin source code on GitHub](https://github.com/Kotlin/dokka/tree/master/plugins/javadoc)
### GFM (Alpha)
`GFM` plugins adds the ability to generate documentation in `GitHub flavoured Markdown` format. Supports both
multimodule and multiplatform projects, and is shipped together with `Dokka`, so you can start using it
right away with one of the following tasks:
* `dokkaGfm` - generate documentation for a non multi-module project or one specific module.
* `dokkaGfmMultiModule` - generate documentation for a multi-module project, assemble it together and
generate navigation page/menu for all the modules.
Example:
___
//[dokka-debug-kts](#gfm)/[org.jetbrains.dokka.test](#gfm)/[MyClass](#gfm)
#### MyClass
[jvm]
class [MyClass](#gfm)
KDoc that describes this class
##### Constructors
| | |
|---|---|
| [MyClass](#gfm) | [jvm]
fun [MyClass](#gfm)() |
##### Functions
| Name | Summary |
|------------------|---|
| [function](#gfm) | [jvm]
fun [function](#gfm)(): [String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)
KDoc comment on top of this function |
##### Properties
| Name | Summary |
|---|------------------------------------------------------------------------------------------------------------------------------------------------|
| [property](#gfm) | [jvm]
val [property](#gfm): [String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)
KDoc comment for a property |
___
**This plugin is at its early stages**, so you may experience issues and encounter bugs. Feel free to
[report](https://github.com/Kotlin/dokka/issues/new/choose) any errors you see.
[Plugin source code on GitHub](https://github.com/Kotlin/dokka/tree/master/plugins/gfm)
### Jekyll (Alpha)
`Jekyll` plugins adds the ability to generate documentation in `Jekyll flavoured Markdown` format. Supports both
multi-module and multiplatform projects, and is shipped together with `Dokka`, so you can start using it
right away with one of the following tasks:
* `dokkaJekyll` - generate documentation for a non multi-module project or one specific module.
* `dokkaJekyllMultiModule` - generate documentation for a multi-module project, assemble it together and
generate navigation page/menu for all the modules.
**This plugin is at its early stages**, so you may experience issues and encounter bugs. Feel free to
[report](https://github.com/Kotlin/dokka/issues/new/choose) any errors you see.
[Plugin source code on GitHub](https://github.com/Kotlin/dokka/tree/master/plugins/jekyll)
## Extensions
### Mathjax
[MathJax](https://docs.mathjax.org/) allows you to include mathematics in your web pages. `MathJax` plugin
adds the ability to render mathematics from source code comments.
If `MathJax` plugin encounters `@usesMathJax` `KDoc` tag, it adds `MathJax.js` (ver. 2) with `config=TeX-AMS_SVG`
to generated `HTML` pages.
Usage example:
```kotlin
/**
* Some math \(\sqrt{3x-1}+(1+x)^2\)
*
* @usesMathJax
*/
class Foo {}
```
Which results in:
![Mathjax demo](../images/mathjax_demo.png){ width="400" }
[Plugin source code on GitHub](https://github.com/Kotlin/dokka/tree/master/plugins/mathjax)
### Mermaid
[Mermaid JS](https://mermaid-js.github.io/mermaid/#/) lets you create diagrams and visualizations using text and code.
`Mermaid` plugin allows rendering such diagrams and visualizations found in source code documentation.
Usage example:
```kotlin
/**
* See the graph for more details:
* \```mermaid
* graph LR
* A[Christmas] -->|Get money| B(Go shopping)
* B --> C{Let me think}
* C -->|One| D[Laptop]
* C -->|Two| E[iPhone]
* C -->|Three| F[fa:fa-car Car]
* \```
*/
class CompositeSubscription
```
Which results in:
![Mermaid demo](../images/mermaid_demo.png){ width="700" }
For more information and examples, see
[Html Mermaid Dokka plugin](https://github.com/glureau/dokka-mermaid) repository on GitHub.
### Kotlin as Java
With `Kotlin as Java` plugin applied, all `Kotlin` signatures will be rendered as `Java` signatures.
For instance, `fun foo(bar: Bar): Baz` will be rendered as `public final Baz foo(Bar bar)`.
`Kotlin as Java` plugin is published to maven central as a
[separate artifact](https://mvnrepository.com/artifact/org.jetbrains.dokka/kotlin-as-java-plugin):
`org.jetbrains.dokka:kotlin-as-java-plugin:1.7.20`.
[Plugin source code on GitHub](https://github.com/Kotlin/dokka/tree/master/plugins/kotlin-as-java)