generated from rnentjes/kotlin-server-web-empty
99 lines
1.8 KiB
Kotlin
99 lines
1.8 KiB
Kotlin
package nl.astraeus.markdown.parser
|
|
|
|
data class ListItem(
|
|
val text: String,
|
|
val order: Int,
|
|
val indentation: Int = 0
|
|
)
|
|
|
|
data class CheckboxItem(
|
|
val line: Int,
|
|
val checked: Boolean,
|
|
val text: String,
|
|
val indentation: Int = 0
|
|
)
|
|
|
|
sealed class MarkdownPart {
|
|
|
|
data object NewLine : MarkdownPart()
|
|
|
|
data object PageBreak : MarkdownPart()
|
|
|
|
sealed class ParagraphPart {
|
|
data class Text(
|
|
val text: String
|
|
) : ParagraphPart()
|
|
|
|
data object LineBreak : ParagraphPart()
|
|
|
|
data class Link(
|
|
val url: String,
|
|
val label: String? = null,
|
|
val title: String? = null,
|
|
) : ParagraphPart()
|
|
|
|
data class Image(
|
|
val alt: String,
|
|
val src: String,
|
|
val url: String? = null,
|
|
) : ParagraphPart()
|
|
|
|
data class Bold(
|
|
val text: String
|
|
) : ParagraphPart()
|
|
|
|
data class Italic(
|
|
val text: String
|
|
) : ParagraphPart()
|
|
|
|
class BoldItalic(
|
|
val text: String
|
|
) : ParagraphPart()
|
|
|
|
class StrikeThrough(
|
|
val text: String
|
|
) : ParagraphPart()
|
|
|
|
class InlineCode(
|
|
val text: String
|
|
) : ParagraphPart()
|
|
|
|
data class IndentedCode(
|
|
val code: String
|
|
) : ParagraphPart()
|
|
}
|
|
|
|
data class Paragraph(
|
|
val parts: List<ParagraphPart>
|
|
) : MarkdownPart()
|
|
|
|
data class Header(
|
|
val text: String,
|
|
val size: Int
|
|
) : MarkdownPart()
|
|
|
|
data class UnorderedList(
|
|
val lines: List<ListItem>,
|
|
) : MarkdownPart()
|
|
|
|
data class CheckboxList(
|
|
val lines: List<CheckboxItem>,
|
|
) : MarkdownPart()
|
|
|
|
data class OrderedList(
|
|
val lines: List<ListItem>,
|
|
) : MarkdownPart()
|
|
|
|
data class CodeBlock(
|
|
val text: String,
|
|
val language: String
|
|
) : MarkdownPart()
|
|
|
|
data class Table(
|
|
val headers: List<String>,
|
|
val rows: List<List<String>>,
|
|
) : MarkdownPart()
|
|
|
|
class Ruler() : MarkdownPart()
|
|
}
|