A paradox directive that automatically adds links for classes from documentation to scaladoc and javadoc.
Add the plugin:
addSbtPlugin("com.lightbend.paradox" % "sbt-paradox-apidoc" % "<latest>")
Configure the apidocRootPackage
within your paradox settings:
import com.lightbend.paradox.apidoc.ApidocPlugin.autoImport.apidocRootPackage
(...)
apidocRootPackage := "akka",
(...)
You can now create 'grouped' javadoc/scaladoc references in paradox like:
Look into the documentation for @apidoc[MyClass].
This will automatically find the FQCN of the class when it is unique. When the
name does not uniquely identify the class, the plugin will check for the
scaladsl
/javadsl
package convention found in Akka projects. If that doesn't
produce an unambigious result, you will have to use the FQCN.
-
@apidoc[Actor]
(Just one class exists.)- classes:
akka.actor.Actor
- Scala:
Actor
-akka/actor/Actor.html
- Java:
Actor
-akka/actor/Actor.html
- classes:
-
@apidoc[Flow]
(Both scaladoc and javadoc exist.)- classes:
akka.stream.scaladsl.Flow
-akka.stream.javadsl.Flow
- Scala: Flow -
akka/stream/scaladsl/Flow.html
- Java: Flow -
akka/stream/javadsl/Flow.html
- classes:
-
@apidoc[Receptionist.Command]
(An inner class.)- classes:
akka.actor.typed.receptionist.Receptionist$Command
- Scala: Receptionist.Command -
akka/actor/typed/receptionist/Receptionist$$Command.html
- Java: Receptionist.Command -
akka/actor/typed/receptionist/Receptionist.Command.html
- classes:
-
@apidoc[Marshaller]
(The scaladoc/javadoc split can be on different package depth.)- classes:
akka.http.scaladsl.marshalling.Marshaller
,akka.http.javadsl.marshalling.Marshaller
- Scala: Marshaller -
akka/http/scaladsl/marshalling/Marshaller.html
- Java: Marshaller -
akka/http/javadsl/marshalling/Marshaller.html
- classes:
-
@apidoc[typed.*.Replicator$]
(The classes exist in multiple places.)- classes:
akka.cluster.ddata.Replicator$
,akka.cluster.ddata.typed.scaladsl.Replicator$
,akka.cluster.ddata.typed.javadsl.Replicator$
* Scala: Replicator -
akka/cluster/ddata/typed/scaladsl/Replicator$.html` - Java: Replicator -
akka/cluster/ddata/typed/javadsl/Replicator.html
- classes:
-
@apidoc[akka.stream.(javadsl|scaladsl).Concat]
(The classes exist in even more places.)- classes:
akka.stream.impl.Concat
,akka.stream.scaladsl.Concat$
,akka.stream.scaladsl.Concat
,akka.stream.javadsl.Concat$
- Scala: Concat -
akka/stream/scaladsl/Concat.html
- Java: Concat -
akka/stream/javadsl/Concat.html
- classes:
-
@apidoc[ClusterClient$]
(Link to scala object.)- classes:
akka.cluster.client.ClusterClient
- Scala: ClusterClient -
akka/cluster/client/ClusterClient$.html
- Java: ClusterClient -
akka/cluster/client/ClusterClient.html
- classes:
-
@apidoc[Source[ServerSentEvent, \_]]
(Show type parameters.)- classes:
akka.stream.scaladsl.Source
-akka.stream.javadsl.Source
- Scala: Source[ServerSentEvent, _] -
akka/stream/scaladsl/Source.html
- Java: Source<ServerSentEvent, ?> -
akka/stream/javadsl/Source.html
- classes:
-
@apidoc[TheClass.method](Flow)
(Different link text than the class name.)- classes:
akka.stream.scaladsl.Flow
-akka.stream.javadsl.Flow
- Scala: TheClass.method
akka/stream/scaladsl/Flow.html
- Java: TheClass.method
akka/stream/javadsl/Flow.html
- classes:
-
@apidoc[method](Flow) { scala="#method():Unit" java="#method()" }
(Link to method anchors.)- classes:
akka.stream.scaladsl.Flow
-akka.stream.javadsl.Flow
- Scala: method -
akka/stream/scaladsl/Flow.html#method():Unit
- Java: method -
akka/stream/javadsl/Flow.html#method()
- classes:
-
@apidoc[method](Flow) { scala="#method[T]():Unit" java="#method()" }
(Link to method anchors.)- classes:
akka.stream.scaladsl.Flow
-akka.stream.javadsl.Flow
- Scala: method -
akka/stream/scaladsl/Flow.html#method[T]():Unit
- Java: method -
akka/stream/javadsl/Flow.html#method()
- classes:
-
@apidoc[method](Flow) { scala="#method%5BT%3C:S]():Unit" java="#method()" }
(Link to method anchors. Where the method has type bounds.)- classes:
akka.stream.scaladsl.Flow
-akka.stream.javadsl.Flow
- Scala: method -
akka/stream/scaladsl/Flow.html#method[T<:S]():Unit
- Java: method -
akka/stream/javadsl/Flow.html#method()
- classes:
-
@apidoc[method](Flow) { scala="#method(String=%3EInt):Unit" java="#method()" }
(Link to method anchors. Using higher-order function arguments)- classes:
akka.stream.scaladsl.Flow
-akka.stream.javadsl.Flow
- Scala: method -
akka/stream/scaladsl/Flow.html#method(String=>Int):Unit
- Java: method -
akka/stream/javadsl/Flow.html#method()
- classes:
If 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.
Example:
"javadoc.akka.stream.alpakka.base_url" -> ""
The license is Apache 2.0, see LICENSE.
This project is NOT supported under the Lightbend subscription.