aboutsummaryrefslogtreecommitdiff
path: root/core/src
diff options
context:
space:
mode:
authorAndrzej Ratajczak <32793002+BarkingBad@users.noreply.github.com>2022-01-27 10:39:56 +0100
committerGitHub <noreply@github.com>2022-01-27 12:39:56 +0300
commit7c44db1ef0075e2b80a4723e0747bbf57c32e775 (patch)
treed20079f969fbb977603852ef4ea2234e54851f98 /core/src
parentd884fa7ce3088ac9ae0ca1bbad70e698888610fa (diff)
downloaddokka-7c44db1ef0075e2b80a4723e0747bbf57c32e775.tar.gz
dokka-7c44db1ef0075e2b80a4723e0747bbf57c32e775.tar.bz2
dokka-7c44db1ef0075e2b80a4723e0747bbf57c32e775.zip
Fix resolving DRIs of Enum Entries (#2305)
* Fix resolving DRIs of Enum Entries * Unify DRIs for Kotlin and Java enums. Add EnumEntry linking tests * Updates EnumEntry extras in documentable translators * Fix tests * Apply requested changes * Apply requested changes
Diffstat (limited to 'core/src')
-rw-r--r--core/src/main/kotlin/links/DRI.kt12
-rw-r--r--core/src/main/kotlin/utilities/Html.kt4
2 files changed, 13 insertions, 3 deletions
diff --git a/core/src/main/kotlin/links/DRI.kt b/core/src/main/kotlin/links/DRI.kt
index 2cbae8cc..a1322ef6 100644
--- a/core/src/main/kotlin/links/DRI.kt
+++ b/core/src/main/kotlin/links/DRI.kt
@@ -56,9 +56,19 @@ fun DRI.withClass(name: String) = copy(classNames = if (classNames.isNullOrBlank
fun DRI.withTargetToDeclaration() = copy(target = PointingToDeclaration)
+fun DRI.withEnumEntryExtra() = copy(
+ extra = DRIExtraContainer(this.extra).also { it[EnumEntryDRIExtra] = EnumEntryDRIExtra }.encode()
+)
+
val DRI.parent: DRI
get() = when {
- extra != null -> copy(extra = null)
+ extra != null -> when {
+ DRIExtraContainer(extra)[EnumEntryDRIExtra] != null -> copy(
+ classNames = classNames?.substringBeforeLast(".", "")?.takeIf { it.isNotBlank() },
+ extra = null
+ )
+ else -> copy(extra = null)
+ }
target != PointingToDeclaration -> copy(target = PointingToDeclaration)
callable != null -> copy(callable = null)
classNames != null -> copy(classNames = classNames.substringBeforeLast(".", "").takeIf { it.isNotBlank() })
diff --git a/core/src/main/kotlin/utilities/Html.kt b/core/src/main/kotlin/utilities/Html.kt
index 3226ca9d..874c9fb1 100644
--- a/core/src/main/kotlin/utilities/Html.kt
+++ b/core/src/main/kotlin/utilities/Html.kt
@@ -7,9 +7,9 @@ import java.net.URLEncoder
* Replaces symbols reserved in HTML with their respective entities.
* Replaces & with &amp;, < with &lt; and > with &gt;
*/
-fun String.htmlEscape(): String = replace("&", "&amp;").replace("<", "&lt;").replace(">", "&gt;")
+fun String.htmlEscape(): String = replace("&", "&amp;").replace("<", "&lt;").replace(">", "&gt;").replace("\"", "&quot;")
fun String.urlEncoded(): String = URLEncoder.encode(this, "UTF-8")
fun String.formatToEndWithHtml() =
- if (endsWith(".html") || contains(Regex("\\.html#"))) this else "$this.html" \ No newline at end of file
+ if (endsWith(".html") || contains(Regex("\\.html#"))) this else "$this.html"