HTML
HTML is Dokka's default and recommended output format. It is currently in Beta and approaching the Stable release.
You can see an example of the output by browsing documentation for kotlinx.coroutines.
Generate HTML documentation
HTML as an output format is supported by all runners. To generate HTML documentation, follow these steps depending on your build tool or runner:
For Gradle, run
dokkaHtml
ordokkaHtmlMultiModule
tasks.For Maven, run the
dokka:dokka
goal.For CLI runner, run with HTML dependencies set.
Configuration
HTML format is Dokka's base format, so it is configurable through DokkaBase
and DokkaBaseConfiguration
classes:
Via type-safe Kotlin DSL:
Via JSON:
Via command line options:
Via JSON configuration:
Configuration options
The table below contains all of the possible configuration options and their purpose.
Option | Description |
---|---|
| List of paths for image assets to be bundled with documentation. The image assets can have any file extension. For more information, see Customizing assets. |
| List of paths for |
| Path to the directory containing custom HTML templates. For more information, see Templates. |
| The text displayed in the footer. |
| This is a boolean option. If set to |
| This is a boolean option. If set to |
For more information about configuring Dokka plugins, see Configuring Dokka plugins.
Customization
To help you add your own look and feel to your documentation, the HTML format supports a number of customization options.
Customize styles
You can use your own stylesheets by using the customStyleSheets
configuration option. These are applied to every page.
It's also possible to override Dokka's default stylesheets by providing files with the same name:
Stylesheet name | Description |
---|---|
| Main stylesheet, contains most of the styles used across all pages |
| Header logo styling |
| Styles for PrismJS syntax highlighter |
The source code for all of Dokka's stylesheets is available on GitHub.
Customize assets
You can provide your own images to be bundled with documentation by using the customAssets
configuration option.
These files are copied to the <output>/images
directory.
It's possible to override Dokka's images and icons by providing files with the same name. The most useful and relevant one being logo-icon.svg
, which is the image that's used in the header. The rest is mostly icons.
You can find all images used by Dokka on GitHub.
Change the logo
To customize the logo, you can begin by providing your own asset for logo-icon.svg
.
If you don't like how it looks, or you want to use a .png
file instead of the default .svg
file, you can override the logo-styles.css
stylesheet to customize it.
For an example of how to do this, see our custom format example project.
Modify the footer
You can modify text in the footer by using the footerMessage
configuration option.
Templates
Dokka provides the ability to modify FreeMarker templates used for generating documentation pages.
You can change the header completely, add your own banners/menus/search, load analytics, change body styling and so on.
Dokka uses the following templates:
Template | Description |
---|---|
| Defines the general design of all pages to be rendered. |
| The page header that by default contains the logo, version, source set selector, light/dark theme switch, and search. |
| The page footer that contains the |
| Metadata used within |
| The source set selector in the header. |
The base template is base.ftl
and it includes all of the remaining listed templates. You can find the source code for all of Dokka's templates on GitHub.
You can override any template by using the templatesDir
configuration option. Dokka searches for the exact template names within the given directory. If it fails to find user-defined templates, it uses the default templates.
Variables
The following variables are available inside all templates:
Variable | Description |
---|---|
| The page name |
| The text which is set by the |
| A nullable list of source sets for multi-platform pages. Each item has |
| The project name. It's available only within the |
| The path to root from the current page. It's useful for locating assets and is available only within the |
Variables projectName
and pathToRoot
are available only within the template_cmd
directive as they require more context and thus they need to be resolved at later stages by the MultiModule task:
Directives
You can also use the following Dokka-defined directives:
Variable | Description |
---|---|
| The main page content. |
| Resources such as scripts and stylesheets. |
| The module version taken from configuration. If the versioning plugin is applied, it is replaced with a version navigator. |