aboutsummaryrefslogtreecommitdiff
path: root/runners/cli/src/main
diff options
context:
space:
mode:
authorSimon Ogorodnik <Simon.Ogorodnik@jetbrains.com>2017-05-03 13:45:30 +0300
committerSimon Ogorodnik <Simon.Ogorodnik@jetbrains.com>2017-05-11 19:52:40 +0300
commita86c859eba6154524f3b42461aad6b45f26e3650 (patch)
tree6772882331daf29c8d19e4a3ed77ef938d45b1ac /runners/cli/src/main
parent022a6a6bc9a1d61f190715dec56c3bef31887388 (diff)
downloaddokka-a86c859eba6154524f3b42461aad6b45f26e3650.tar.gz
dokka-a86c859eba6154524f3b42461aad6b45f26e3650.tar.bz2
dokka-a86c859eba6154524f3b42461aad6b45f26e3650.zip
Support linking of external documentation
Introduce PackageListService #KT-16309 fixed
Diffstat (limited to 'runners/cli/src/main')
-rw-r--r--runners/cli/src/main/kotlin/cli/main.kt28
1 files changed, 27 insertions, 1 deletions
diff --git a/runners/cli/src/main/kotlin/cli/main.kt b/runners/cli/src/main/kotlin/cli/main.kt
index 0d1ff76c..f8a01c38 100644
--- a/runners/cli/src/main/kotlin/cli/main.kt
+++ b/runners/cli/src/main/kotlin/cli/main.kt
@@ -5,6 +5,8 @@ import org.jetbrains.kotlin.cli.common.arguments.ValueDescription
import org.jetbrains.kotlin.cli.common.parser.com.sampullara.cli.Args
import org.jetbrains.kotlin.cli.common.parser.com.sampullara.cli.Argument
import java.io.File
+import java.net.MalformedURLException
+import java.net.URL
import java.net.URLClassLoader
class DokkaArguments {
@@ -51,11 +53,33 @@ class DokkaArguments {
@set:Argument(value = "packageOptions", description = "List of package options in format \"prefix,-deprecated,-privateApi,+warnUndocumented;...\" ")
var packageOptions: String = ""
+
+ @set:Argument(value = "links", description = "")
+ var links: String = ""
}
object MainKt {
+ fun parseLinks(links: String): List<DokkaConfiguration.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) -> ExternalDocumentationLinkImpl(root) } +
+ parsedOfflineLinks.map { (root, packageList) ->
+ val rootUrl = URL(root)
+ val packageListUrl =
+ try {
+ URL(packageList)
+ } catch (ex: MalformedURLException) {
+ File(packageList).toURI().toURL()
+ }
+ ExternalDocumentationLinkImpl(rootUrl, packageListUrl)
+ }
+ }
+
@JvmStatic
fun entry(args: Array<String>) {
val arguments = DokkaArguments()
@@ -81,7 +105,9 @@ object MainKt {
skipDeprecated = arguments.nodeprecated,
sourceLinks = sourceLinks,
impliedPlatforms = arguments.impliedPlatforms.split(','),
- perPackageOptions = parsePerPackageOptions(arguments.packageOptions)
+ perPackageOptions = parsePerPackageOptions(arguments.packageOptions),
+ jdkVersion = arguments.jdkVersion,
+ externalDocumentationLinks = parseLinks(arguments.links)
)
val generator = DokkaGenerator(