diff options
-rw-r--r-- | runners/cli/src/main/kotlin/cli/main.kt | 20 | ||||
-rw-r--r-- | runners/maven-plugin/src/main/kotlin/DokkaMojo.kt | 19 |
2 files changed, 37 insertions, 2 deletions
diff --git a/runners/cli/src/main/kotlin/cli/main.kt b/runners/cli/src/main/kotlin/cli/main.kt index 644ecee4..731b09d9 100644 --- a/runners/cli/src/main/kotlin/cli/main.kt +++ b/runners/cli/src/main/kotlin/cli/main.kt @@ -192,12 +192,27 @@ class Arguments(val parser: DokkaArgumentsParser) : DokkaConfiguration.PassConfi } object MainKt { + fun defaultLinks(config: DokkaConfiguration.PassConfiguration): List<ExternalDocumentationLink> { + val links = mutableListOf<ExternalDocumentationLinkImpl>() + if (!config.noJdkLink) + links += DokkaConfiguration.ExternalDocumentationLink + .Builder("https://docs.oracle.com/javase/${config.jdkVersion}/docs/api/") + .build() as ExternalDocumentationLinkImpl + + if (!config.noStdlibLink) + links += DokkaConfiguration.ExternalDocumentationLink + .Builder("https://kotlinlang.org/api/latest/jvm/stdlib/") + .build() as ExternalDocumentationLinkImpl + return links + } + fun parseLinks(links: String): List<ExternalDocumentationLink> { val (parsedLinks, parsedOfflineLinks) = links.split("^^") .map { it.split("^").map { it.trim() }.filter { it.isNotBlank() } } .filter { it.isNotEmpty() } .partition { it.size == 1 } + return parsedLinks.map { (root) -> ExternalDocumentationLink.Builder(root).build() } + parsedOfflineLinks.map { (root, packageList) -> val rootUrl = URL(root) @@ -256,6 +271,7 @@ object MainKt { val parser = DokkaArgumentsParser(args, parseContext) val configuration = GlobalArguments(parser) + parseContext.cli.singleAction( listOf("-globalPackageOptions"), "List of package passConfiguration in format \"prefix,-deprecated,-privateApi,+warnUndocumented,+suppress;...\" " @@ -291,8 +307,10 @@ object MainKt { it.sourceLinks.toMutableList().addAll(newSourceLinks) } } - parser.parseInto(configuration) + configuration.passesConfigurations.forEach { + it.externalDocumentationLinks.addAll(defaultLinks(it)) + } return configuration } diff --git a/runners/maven-plugin/src/main/kotlin/DokkaMojo.kt b/runners/maven-plugin/src/main/kotlin/DokkaMojo.kt index cfe278ce..49c6fba6 100644 --- a/runners/maven-plugin/src/main/kotlin/DokkaMojo.kt +++ b/runners/maven-plugin/src/main/kotlin/DokkaMojo.kt @@ -185,6 +185,19 @@ abstract class AbstractDokkaMojo : AbstractMojo() { throw MojoExecutionException("Incorrect path property, only Unix based path allowed.") } } + fun defaultLinks(config: PassConfigurationImpl): List<ExternalDocumentationLinkImpl> { + val links = mutableListOf<ExternalDocumentationLinkImpl>() + if (!config.noJdkLink) + links += DokkaConfiguration.ExternalDocumentationLink + .Builder("https://docs.oracle.com/javase/${config.jdkVersion}/docs/api/") + .build() as ExternalDocumentationLinkImpl + + if (!config.noStdlibLink) + links += DokkaConfiguration.ExternalDocumentationLink + .Builder("https://kotlinlang.org/api/latest/jvm/stdlib/") + .build() as ExternalDocumentationLinkImpl + return links + } val passConfiguration = PassConfigurationImpl( classpath = classpath, @@ -218,7 +231,11 @@ abstract class AbstractDokkaMojo : AbstractMojo() { targets = targets, includeNonPublic = includeNonPublic, includeRootPackage = includeRootPackage - ) + ).let{ + it.copy( + externalDocumentationLinks = defaultLinks(it) + it.externalDocumentationLinks + ) + } val logger = MavenDokkaLogger(log) |