aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVladimir Kryachko <vkryachko@google.com>2020-07-21 15:48:42 +0000
committerAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>2020-07-21 15:48:42 +0000
commit01085e90fed9d0da8570c9db349b2272e395fe21 (patch)
tree5877b4faa12c2640c1c0ba4a9f22cd433f761bb8
parent730a18741e20c2195738be4786833e648d4fedbd (diff)
parenta3a0472dff9aced0968414c64fca8bdd008b60cf (diff)
downloaddokka-01085e90fed9d0da8570c9db349b2272e395fe21.tar.gz
Fix external link rendering. am: 9b8280a227 am: 447bde28e4 am: 68f29f82aa am: 71a17de909 am: a3a0472dff
Original change: https://android-review.googlesource.com/c/platform/external/dokka/+/1365296 Change-Id: Ib107f181e438b106e9412da859f360144864503b
-rw-r--r--core/src/main/kotlin/Java/JavadocParser.kt8
1 files changed, 7 insertions, 1 deletions
diff --git a/core/src/main/kotlin/Java/JavadocParser.kt b/core/src/main/kotlin/Java/JavadocParser.kt
index 27cca9177..f446a998d 100644
--- a/core/src/main/kotlin/Java/JavadocParser.kt
+++ b/core/src/main/kotlin/Java/JavadocParser.kt
@@ -439,7 +439,13 @@ class JavadocParser(
val externalLink = resolveExternalLink(valueElement)
val linkSignature by lazy { resolveInternalLink(valueElement) }
if (externalLink != null || linkSignature != null) {
- val labelText = tag.dataElements.firstOrNull { it is PsiDocToken }?.text ?: valueElement!!.text
+
+ // sometimes `dataElements` contains multiple `PsiDocToken` elements and some have whitespace in them
+ // this is best effort to find the first non-empty one before falling back to using the symbol name.
+ val labelText = tag.dataElements.firstOrNull {
+ it is PsiDocToken && it.text?.trim()?.isNotEmpty() ?: false
+ }?.text ?: valueElement!!.text
+
val linkTarget = if (externalLink != null) "href=\"$externalLink\"" else "docref=\"$linkSignature\""
val link = "<a $linkTarget>$labelText</a>"
if (tag.name == "link") "<code>$link</code>" else link