{"id":19891357,"url":"https://github.com/lightbend/sbt-paradox-apidoc","last_synced_at":"2025-06-14T20:38:00.504Z","repository":{"id":31897453,"uuid":"129261632","full_name":"lightbend/sbt-paradox-apidoc","owner":"lightbend","description":"Apidoc (javadoc and scaladoc) support for the project documentation tool paradox","archived":false,"fork":false,"pushed_at":"2025-01-23T09:56:15.000Z","size":275,"stargazers_count":4,"open_issues_count":2,"forks_count":10,"subscribers_count":8,"default_branch":"main","last_synced_at":"2025-04-07T04:36:08.192Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Scala","has_issues":true,"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/lightbend.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-04-12T14:11:03.000Z","updated_at":"2025-01-23T09:56:17.000Z","dependencies_parsed_at":"2025-01-23T10:35:11.443Z","dependency_job_id":null,"html_url":"https://github.com/lightbend/sbt-paradox-apidoc","commit_stats":null,"previous_names":[],"tags_count":13,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lightbend%2Fsbt-paradox-apidoc","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lightbend%2Fsbt-paradox-apidoc/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lightbend%2Fsbt-paradox-apidoc/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lightbend%2Fsbt-paradox-apidoc/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lightbend","download_url":"https://codeload.github.com/lightbend/sbt-paradox-apidoc/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252088406,"owners_count":21692790,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":[],"created_at":"2024-11-12T18:17:58.838Z","updated_at":"2025-05-02T18:31:16.485Z","avatar_url":"https://github.com/lightbend.png","language":"Scala","funding_links":[],"categories":[],"sub_categories":[],"readme":"# sbt-paradox-apidoc\n\nA [paradox](https://github.com/lightbend/paradox/) directive that automatically adds links for classes from documentation to scaladoc and javadoc.\n\n## Usage\n\nAdd the plugin:\n\n```scala\naddSbtPlugin(\"com.lightbend.paradox\" % \"sbt-paradox-apidoc\" % \"\u003clatest\u003e\")\n```\n\nConfigure the `apidocRootPackage` within your paradox settings:\n\n```\nimport com.lightbend.paradox.apidoc.ApidocPlugin.autoImport.apidocRootPackage\n\n(...)\n  apidocRootPackage := \"akka\",\n(...)\n```\n\n\nYou can now create 'grouped' javadoc/scaladoc references in paradox like:\n\n```\nLook into the documentation for @apidoc[MyClass].\n```\n\nThis will automatically find the FQCN of the class when it is unique. When the\nname does not uniquely identify the class, the plugin will check for the\n`scaladsl`/`javadsl` package convention found in Akka projects. If that doesn't\nproduce an unambigious result, you will have to use the FQCN.\n\n## Examples\n\n[See details in the tests](/src/test/scala/com/lightbend/paradox/apidoc/ApidocDirectiveSpec.scala)\n\n* `@apidoc[Actor]` (Just one class exists.)\n    * classes: `akka.actor.Actor`\n    * Scala:  `Actor` - `akka/actor/Actor.html`\n    * Java:  `Actor` - `akka/actor/Actor.html`\n\n* `@apidoc[Flow]` (Both scaladoc and javadoc exist.)\n    * classes: `akka.stream.scaladsl.Flow` - `akka.stream.javadsl.Flow`\n    * Scala: Flow - `akka/stream/scaladsl/Flow.html`\n    * Java: Flow -  `akka/stream/javadsl/Flow.html`\n\n* `@apidoc[Receptionist.Command]` (An inner class.)\n    * classes: `akka.actor.typed.receptionist.Receptionist$Command`\n    * Scala: Receptionist.Command - `akka/actor/typed/receptionist/Receptionist$$Command.html`\n    * Java: Receptionist.Command - `akka/actor/typed/receptionist/Receptionist.Command.html`\n\n* `@apidoc[Marshaller]` (The scaladoc/javadoc split can be on different package depth.)\n    * classes: `akka.http.scaladsl.marshalling.Marshaller`, `akka.http.javadsl.marshalling.Marshaller`\n    * Scala: Marshaller - `akka/http/scaladsl/marshalling/Marshaller.html`\n    * Java: Marshaller - `akka/http/javadsl/marshalling/Marshaller.html`\n\n* `@apidoc[typed.*.Replicator$]` (The classes exist in multiple places.)\n    * classes: `akka.cluster.ddata.Replicator$`, `akka.cluster.ddata.typed.scaladsl.Replicator$`, `akka.cluster.ddata.typed.javadsl.Replicator$`\n`   * Scala: Replicator - `akka/cluster/ddata/typed/scaladsl/Replicator$.html`\n    * Java: Replicator - `akka/cluster/ddata/typed/javadsl/Replicator.html`\n\n* `@apidoc[akka.stream.(javadsl|scaladsl).Concat]` (The classes exist in even more places.)\n    * classes: `akka.stream.impl.Concat`, `akka.stream.scaladsl.Concat$`, `akka.stream.scaladsl.Concat`, `akka.stream.javadsl.Concat$`\n    * Scala: Concat - `akka/stream/scaladsl/Concat.html`\n    * Java: Concat - `akka/stream/javadsl/Concat.html`\n\n* `@apidoc[ClusterClient$]` (Link to scala object.)\n    * classes: `akka.cluster.client.ClusterClient`\n    * Scala: ClusterClient - `akka/cluster/client/ClusterClient$.html`\n    * Java: ClusterClient - `akka/cluster/client/ClusterClient.html`\n\n* `@apidoc[Source[ServerSentEvent, \\_]]` (Show type parameters.)\n    * classes: `akka.stream.scaladsl.Source` - `akka.stream.javadsl.Source`\n    * Scala: Source\\[ServerSentEvent, _\\] - `akka/stream/scaladsl/Source.html`\n    * Java: Source\\\u003cServerSentEvent, ?\\\u003e - `akka/stream/javadsl/Source.html`\n\n* `@apidoc[TheClass.method](Flow)` (Different link text than the class name.)\n    * classes: `akka.stream.scaladsl.Flow` - `akka.stream.javadsl.Flow`\n    * Scala: TheClass.method\u003cbr\u003e`akka/stream/scaladsl/Flow.html`\n    * Java: TheClass.method\u003cbr\u003e`akka/stream/javadsl/Flow.html`\n\n* `@apidoc[method](Flow) { scala=\"#method():Unit\" java=\"#method()\" }` (Link to method anchors.)\n    * classes: `akka.stream.scaladsl.Flow` - `akka.stream.javadsl.Flow`\n    * Scala: method - `akka/stream/scaladsl/Flow.html#method():Unit`\n    * Java: method - `akka/stream/javadsl/Flow.html#method()`\n\n* `@apidoc[method](Flow) { scala=\"#method[T]():Unit\" java=\"#method()\" }` (Link to method anchors.)\n    * classes: `akka.stream.scaladsl.Flow` - `akka.stream.javadsl.Flow`\n    * Scala: method - `akka/stream/scaladsl/Flow.html#method[T]():Unit`\n    * Java: method - `akka/stream/javadsl/Flow.html#method()`\n\n* `@apidoc[method](Flow) { scala=\"#method%5BT%3C:S]():Unit\" java=\"#method()\" }` (Link to method anchors. Where the method has type bounds.)\n    * classes: `akka.stream.scaladsl.Flow` - `akka.stream.javadsl.Flow`\n    * Scala: method - `akka/stream/scaladsl/Flow.html#method[T\u003c:S]():Unit`\n    * Java: method - `akka/stream/javadsl/Flow.html#method()`\n\n* `@apidoc[method](Flow) { scala=\"#method(String=%3EInt):Unit\" java=\"#method()\" }` (Link to method anchors. Using higher-order function arguments)\n    * classes: `akka.stream.scaladsl.Flow` - `akka.stream.javadsl.Flow`\n    * Scala: method - `akka/stream/scaladsl/Flow.html#method(String=\u003eInt):Unit`\n    * Java: method - `akka/stream/javadsl/Flow.html#method()`\n\n\n### When only Scaladoc is generated\n\nIf the project does not publish Javadoc, the corresponding Javadoc base URL can be cleared and the Java links will point to the `javadsl` package in the Scaladocs.\n\nExample:\n```scala\n\"javadoc.akka.stream.alpakka.base_url\" -\u003e \"\"\n```\n\n## License\n\nThe license is Apache 2.0, see LICENSE.\n\n## Maintanance notes\n\n**This project is NOT supported under the Lightbend subscription.**\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flightbend%2Fsbt-paradox-apidoc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flightbend%2Fsbt-paradox-apidoc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flightbend%2Fsbt-paradox-apidoc/lists"}