{"id":28499834,"url":"https://github.com/kotlin/dokka-plugin-template","last_synced_at":"2026-02-24T04:37:16.873Z","repository":{"id":40651831,"uuid":"305342928","full_name":"Kotlin/dokka-plugin-template","owner":"Kotlin","description":"Dokka plugin quickstart template with pre-configured dependencies and publishing","archived":false,"fork":false,"pushed_at":"2025-06-12T14:09:52.000Z","size":145,"stargazers_count":12,"open_issues_count":0,"forks_count":9,"subscribers_count":21,"default_branch":"main","last_synced_at":"2025-10-23T15:19:12.502Z","etag":null,"topics":["documentation","dokka","kotlin","plugins","template"],"latest_commit_sha":null,"homepage":"https://kotl.in/dokka-plugin-development","language":"Kotlin","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Kotlin.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2020-10-19T10:14:05.000Z","updated_at":"2025-07-19T14:59:23.000Z","dependencies_parsed_at":"2023-12-14T13:45:44.145Z","dependency_job_id":"a09fc727-0f7f-4cd9-86f3-43e7c9be24bf","html_url":"https://github.com/Kotlin/dokka-plugin-template","commit_stats":null,"previous_names":[],"tags_count":0,"template":true,"template_full_name":null,"purl":"pkg:github/Kotlin/dokka-plugin-template","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Kotlin%2Fdokka-plugin-template","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Kotlin%2Fdokka-plugin-template/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Kotlin%2Fdokka-plugin-template/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Kotlin%2Fdokka-plugin-template/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Kotlin","download_url":"https://codeload.github.com/Kotlin/dokka-plugin-template/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Kotlin%2Fdokka-plugin-template/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29772110,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-24T04:01:02.180Z","status":"ssl_error","status_checked_at":"2026-02-24T03:59:49.901Z","response_time":75,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["documentation","dokka","kotlin","plugins","template"],"created_at":"2025-06-08T15:05:00.333Z","updated_at":"2026-02-24T04:37:16.844Z","avatar_url":"https://github.com/Kotlin.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Dokka plugin template\n\n[![Kotlin Alpha](https://kotl.in/badges/alpha.svg)](https://kotlinlang.org/docs/components-stability.html)\n[![JetBrains official project](https://jb.gg/badges/official.svg)](https://github.com/JetBrains#jetbrains-on-github)\n\nThis repository provides a template for creating [Dokka](https://github.com/Kotlin/dokka) plugins \n(check the [Creating a repository from a template](https://help.github.com/en/enterprise/2.20/user/github/creating-cloning-and-archiving-repositories/creating-a-repository-from-a-template) article).\n\n\u003e **TL;DR:** Click the \u003ckbd\u003eUse this template\u003c/kbd\u003e button and clone it in IntelliJ IDEA.\n\n### Getting started\n\nBefore writing a plugin it might be beneficial to spend 5 minutes reading our [developer guide](https://kotlin.github.io/dokka/2.0.0/developer_guide/introduction/) to have a basic idea about the data model and system architecture.\nIf some you miss some information or something is unclear please let us know on [community slack](https://kotlinlang.slack.com/archives/C0F4UNJET) or via [github issue](https://github.com/Kotlin/dokka/issues).\n\n### Structure\nA minimal repository for a Dokka plugin should contain files in the following structure:\n```\n.\n├── LICENSE\n├── README.md\n├── build.gradle.kts\n├── gradle\n│   └── wrapper\n│       ├── gradle-wrapper.jar\n│       └── gradle-wrapper.properties\n├── gradle.properties\n├── gradlew\n├── gradlew.bat\n├── settings.gradle.kts\n└── src\n    └── main\n        ├── kotlin\n        │   └── template\n        │       └── MyAwesomeDokkaPlugin.kt\n        └── resources\n            └── META-INF\n                └── services\n                    └── org.jetbrains.dokka.plugability.DokkaPlugin\n\n```\n\n### Applying the plugin\n\nIn order to apply a plugin it needs to be published to a repository.\nFor development use we recommend the mavenLocal.\nThis repository contains a basic setup for publishing artefacts to that repository.\nIn order to do it use `publishToMavenLocal` task. \n\nAfter that you will need a sample project to test on.\nKotlin has a lot of sample projects to choose from eg: [dokka-gradle-example](https://github.com/Kotlin/dokka/tree/master/examples)\n\nIn order to apply the plugin you need to add it to project dependencies:\n```kotlin\ndependencies {\n    dokkaPlugin(\"template:template-dokka-plugin:0.1\")\n}\n```\n\nPlease keep in mind, that you need to have a `mavenLocal()` repository in your project.\n\nAfter that you can run Dokka on this project and see the results. \nYou should use a Dokka command you desire to write a plugin for (eg. `dokkaHtml`, `dokkaGfm` or other) with `--info` logging level.\nIn project logs you should see the name of a plugin:\n```\n...\nInitializing plugins\nLoaded plugins: [org.jetbrains.dokka.base.DokkaBase, template.MyAwesomeDokkaPlugin]\nLoaded: [\n...\n```\n\n### Testing\n\nThis project includes a test dependency on `dokka-test-api` and `dokka-base-test-utils` that allows for easy testing. \nWe highly encourage for you to extend tests classes with `BaseAbstractTest()` which allows you to write kotlin or java code\nin your tests without a need to provide external files.\nThis way the tests are much cleaner and easier to reason about.\n\nThis repository contains most basic example of a [test using this mechanism](src/test/kotlin/template/MyAwesomePluginTest.kt).\n\n### Debugging\n\nSometimes things don't work as we expected :) \n\nFrom our experience using debugger is the most efficient.\nApart from debugging tests you are able to debug whole projects while Dokka is running.\nEnable the debugger in the project you wish to generate documentation for using `org.gradle.debug = true` and,\nin intellij with your plugin, run the remote configuration.\n\nFor more information please visit [official intellij guide](https://www.jetbrains.com/help/idea/tutorial-remote-debug.html#67dc8)\n\n### Publishing\n\n#### Publishing locally\n\nIn order to test your plugin locally, please use the `publishToMavenLocal` task, as explained in the [Applying the plugin](#applying-the-plugin) section.\n\n#### Publishing to Maven Central\n\nPublishing extension has been preconfigured for deployment to Maven Central repository via OSSRH.\nA jar file with documentation (`javadoc.jar`) is created with Dokka.\nIn order to sigh the publication, you have to provide one of the following sets of environmental variables:\n\n1) * SIGN_KEY_ID - The public key ID (The last 8 symbols of the keyId)\n   * SIGN_KEY - The secret (private) key\n   * SIGN_KEY_PASSPHRASE - The passphrase used to protect your private key\n   \n2) * SIGN_KEY - The secret (private) key\n   * SIGN_KEY_PASSPHRASE - The passphrase used to protect your private key\n  \nFor more information about signing the publication, please refer to the [Signing Plugin readme](https://docs.gradle.org/current/userguide/signing_plugin.html).\n\nOSSRH credentials also have to be provided via\n \n* SONATYPE_USER \n* SONATYPE_PASSWORD\n    \nenvironmental variables. \n\nPlease follow the [OSSRH guide](https://central.sonatype.org/pages/ossrh-guide.html) for the detailed steps on how to get the credentials and claim the group name.\n\nFinally, the publication can be started with `./gradlew publish` command\n\n### Final words\nAfter creating a plugin please consider sharing it with the community on [official Dokka plugins list](https://kotlin.github.io/dokka/2.0.0/community/plugins-list/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkotlin%2Fdokka-plugin-template","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkotlin%2Fdokka-plugin-template","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkotlin%2Fdokka-plugin-template/lists"}