[//]: # (title: Markdown) > The Markdown output formats are still in Alpha so you may find bugs and experience migration issues when using them. **You use them at your own risk.** > {type="warning"} Dokka is able to generate documentation in [GitHub Flavored](#gfm) and [Jekyll](#jekyll) compatible Markdown. These formats give you more freedom in terms of hosting documentation as the output can be embedded right into your documentation website. For example, see [OkHttp's API reference](https://square.github.io/okhttp/4.x/okhttp/okhttp3/) pages. Markdown output formats are implemented as [Dokka plugins](dokka-plugins.md), maintained by the Dokka team, and they are open source. ## GFM The GFM output format generates documentation in [GitHub Flavored Markdown](https://github.github.com/gfm/). The [Gradle plugin for Dokka](dokka-gradle.md) comes with the GFM output format included. You can use the following tasks with it: | **Task** | **Description** | |-----------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `dokkaGfm` | Generates GFM documentation for a single project. | | `dokkaGfmMultiModule` | A [`MultiModule`](dokka-gradle.md#multi-project-builds) task created only for parent projects in multi-project builds. It generates documentation for subprojects and collects all outputs in a single place with a common table of contents. | | `dokkaGfmCollector` | A [`Collector`](dokka-gradle.md#collector-tasks) task created only for parent projects in multi-project builds. It calls `dokkaGfm` for every subproject and merges all outputs into a single virtual project. | Since GFM format is implemented as a [Dokka plugin](dokka-plugins.md#apply-dokka-plugins), you need to apply it as a plugin dependency: ```xml org.jetbrains.dokka dokka-maven-plugin ... org.jetbrains.dokka gfm-plugin %dokkaVersion% ``` After configuring this, running the `dokka:dokka` goal produces documentation in GFM format. For more information, see the Mavin plugin documentation for [Other output formats](dokka-maven.md#other-output-formats). Since GFM format is implemented as a [Dokka plugin](dokka-plugins.md#apply-dokka-plugins), you need to download the [JAR file](https://mvnrepository.com/artifact/org.jetbrains.dokka/gfm-plugin/%dokkaVersion%) and pass it to `pluginsClasspath`. Via [command line options](dokka-cli.md#run-with-command-line-options): ```Bash java -jar dokka-cli-%dokkaVersion%.jar \ -pluginsClasspath "./dokka-base-%dokkaVersion%.jar;...;./gfm-plugin-%dokkaVersion%.jar" \ ... ``` Via [JSON configuration](dokka-cli.md#run-with-json-configuration): ```json { ... "pluginsClasspath": [ "./dokka-base-%dokkaVersion%.jar", "...", "./gfm-plugin-%dokkaVersion%.jar" ], ... } ``` For more information, see the CLI runner's documentation for [Other output formats](dokka-cli.md#other-output-formats). You can find the source code [on GitHub](https://github.com/Kotlin/dokka/tree/%dokkaVersion%/plugins/gfm). ## Jekyll The Jekyll output format generates documentation in [Jekyll](https://jekyllrb.com/) compatible Markdown. The [Gradle plugin for Dokka](dokka-gradle.md) comes with the Jekyll output format included. You can use the following tasks with it: | **Task** | **Description** | |--------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `dokkaJekyll` | Generates Jekyll documentation for a single project. | | `dokkaJekyllMultiModule` | A [`MultiModule`](dokka-gradle.md#multi-project-builds) task created only for parent projects in multi-project builds. It generates documentation for subprojects and collects all outputs in a single place with a common table of contents. | | `dokkaJekyllCollector` | A [`Collector`](dokka-gradle.md#collector-tasks) task created only for parent projects in multi-project builds. It calls `dokkaJekyll` for every subproject and merges all outputs into a single virtual project. | Since Jekyll format is implemented as a [Dokka plugin](dokka-plugins.md#apply-dokka-plugins), you need to apply it as a plugin dependency: ```xml org.jetbrains.dokka dokka-maven-plugin ... org.jetbrains.dokka jekyll-plugin %dokkaVersion% ``` After configuring this, running the `dokka:dokka` goal produces documentation in GFM format. For more information, see the Maven plugin's documentation for [Other output formats](dokka-maven.md#other-output-formats). Since Jekyll format is implemented as a [Dokka plugin](dokka-plugins.md#apply-dokka-plugins), you need to download the [JAR file](https://mvnrepository.com/artifact/org.jetbrains.dokka/jekyll-plugin/%dokkaVersion%). This format is also based on [GFM](#gfm) format, so you need to provide it as a dependency as well. Both JARs need to be passed to `pluginsClasspath`: Via [command line options](dokka-cli.md#run-with-command-line-options): ```Bash java -jar dokka-cli-%dokkaVersion%.jar \ -pluginsClasspath "./dokka-base-%dokkaVersion%.jar;...;./gfm-plugin-%dokkaVersion%.jar;./jekyll-plugin-%dokkaVersion%.jar" \ ... ``` Via [JSON configuration](dokka-cli.md#run-with-json-configuration): ```json { ... "pluginsClasspath": [ "./dokka-base-%dokkaVersion%.jar", "...", "./gfm-plugin-%dokkaVersion%.jar", "./jekyll-plugin-%dokkaVersion%.jar" ], ... } ``` For more information, see the CLI runner's documentation for [Other output formats](dokka-cli.md#other-output-formats). You can find the source code on [GitHub](https://github.com/Kotlin/dokka/tree/%dokkaVersion%/plugins/jekyll).