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:
HTML format is Dokka's base format, so it is configurable through
Via type-safe Kotlin DSL:
Via command line options:
Via JSON configuration:
The table below contains all of the possible configuration options and their purpose.
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.
To help you add your own look and feel to your documentation, the HTML format supports a number of customization options.
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:
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.
You can provide your own images to be bundled with documentation by using the
customAssets configuration option.
These files are copied to the
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
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.
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:
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.
The following variables are available inside all templates:
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
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:
You can also use the following Dokka-defined directives:
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.