diff options
author | Vladimir Kryachko <vkryachko@google.com> | 2020-07-21 14:44:49 +0000 |
---|---|---|
committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | 2020-07-21 14:44:49 +0000 |
commit | 447bde28e4208046a835d3ba932d37c3126e860c (patch) | |
tree | 5877b4faa12c2640c1c0ba4a9f22cd433f761bb8 | |
parent | 4f83421fc507a33f4d179a1e331f793dad81975d (diff) | |
parent | 9b8280a227848c53045cabc5a86cd013d720c63c (diff) | |
download | dokka-447bde28e4208046a835d3ba932d37c3126e860c.tar.gz |
Fix external link rendering. am: 9b8280a227
Original change: https://android-review.googlesource.com/c/platform/external/dokka/+/1365296
Change-Id: I2bad1da75bfa562a1e7a7c43f3d6d024316f0207
-rw-r--r-- | core/src/main/kotlin/Java/JavadocParser.kt | 8 |
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 |