aboutsummaryrefslogtreecommitdiff
path: root/src/Model
diff options
context:
space:
mode:
authorIlya Ryzhenkov <orangy@jetbrains.com>2014-10-03 20:20:02 +0400
committerIlya Ryzhenkov <orangy@jetbrains.com>2014-10-03 20:20:02 +0400
commitd6fd04521ba4c4c430286078dd56309111c180e6 (patch)
treecd02584ade5cd0c0cfa8da30da5ccb0ea7b2131c /src/Model
parent7c6da4babd01da31c57c5c6c827eb2957c989b1c (diff)
downloaddokka-d6fd04521ba4c4c430286078dd56309111c180e6.tar.gz
dokka-d6fd04521ba4c4c430286078dd56309111c180e6.tar.bz2
dokka-d6fd04521ba4c4c430286078dd56309111c180e6.zip
Cross-reference links on types, relative locations.
Diffstat (limited to 'src/Model')
-rw-r--r--src/Model/Content.kt18
1 files changed, 13 insertions, 5 deletions
diff --git a/src/Model/Content.kt b/src/Model/Content.kt
index 1b00bd34..4b92a958 100644
--- a/src/Model/Content.kt
+++ b/src/Model/Content.kt
@@ -18,16 +18,18 @@ public abstract class ContentNode {
}
public object ContentEmpty : ContentNode()
+public open class ContentBlock() : ContentNode()
public class ContentText(val text: String) : ContentNode()
public class ContentKeyword(val text: String) : ContentNode()
public class ContentIdentifier(val text: String) : ContentNode()
public class ContentSymbol(val text: String) : ContentNode()
-public class ContentBlock() : ContentNode()
-public class ContentEmphasis() : ContentNode()
-public class ContentStrong() : ContentNode()
-public class ContentList() : ContentNode()
-public class ContentSection(public val label: String) : ContentNode()
+public class ContentEmphasis() : ContentBlock()
+public class ContentNodeLink(val node : DocumentationNode) : ContentBlock()
+public class ContentExternalLink(val href : String) : ContentBlock()
+public class ContentStrong() : ContentBlock()
+public class ContentList() : ContentBlock()
+public class ContentSection(public val label: String) : ContentBlock()
fun content(body: ContentNode.() -> Unit): ContentNode {
val block = ContentBlock()
@@ -40,6 +42,12 @@ fun ContentNode.keyword(value: String) = append(ContentKeyword(value))
fun ContentNode.symbol(value: String) = append(ContentSymbol(value))
fun ContentNode.identifier(value: String) = append(ContentIdentifier(value))
+fun ContentNode.link(to: DocumentationNode, body: ContentNode.() -> Unit) {
+ val block = ContentNodeLink(to)
+ block.body()
+ append(block)
+}
+
public class Content() : ContentNode() {
public val sections: Map<String, ContentSection> by Delegates.lazy {
val map = hashMapOf<String, ContentSection>()