aboutsummaryrefslogtreecommitdiff
path: root/core/src/main/kotlin/pages/contentNodeProperties.kt
blob: 3c9bd42208e89edfdee00e2131e726aa1475b944 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
package org.jetbrains.dokka.pages

import org.jetbrains.dokka.model.properties.ExtraProperty

class SimpleAttr(val extraKey: String, val extraValue: String) : ExtraProperty<ContentNode> {
    data class SimpleAttrKey(val key: String) : ExtraProperty.Key<ContentNode, SimpleAttr>
    override val key: ExtraProperty.Key<ContentNode, SimpleAttr> = SimpleAttrKey(extraKey)

}

enum class BasicTabbedContentType : TabbedContentType {
    TYPE, CONSTRUCTOR, FUNCTION, PROPERTY, ENTRY, EXTENSION_PROPERTY, EXTENSION_FUNCTION
}

/**
 * It is used only to mark content for tabs in HTML format
 */
interface TabbedContentType

/**
 * @see TabbedContentType
 */
class TabbedContentTypeExtra(val value: TabbedContentType) : ExtraProperty<ContentNode> {
    companion object : ExtraProperty.Key<ContentNode, TabbedContentTypeExtra>
    override val key: ExtraProperty.Key<ContentNode, TabbedContentTypeExtra> = TabbedContentTypeExtra
}

object HtmlContent : ExtraProperty<ContentNode>, ExtraProperty.Key<ContentNode, HtmlContent> {
    override val key: ExtraProperty.Key<ContentNode, *> = this
}