in richtext-commonmark/src/commonMain/kotlin/com/halilibo/richtext/markdown/MarkdownRichText.kt [100:160]
fun defaultContent(currentNode: AstNode): Int? {
return when (val currentNodeType = currentNode.type) {
is AstCode -> {
richTextStringBuilder.withFormat(RichTextString.Format.Code) {
append(currentNodeType.literal)
}
null
}
is AstEmphasis -> richTextStringBuilder.pushFormat(RichTextString.Format.Italic)
is AstStrikethrough -> richTextStringBuilder.pushFormat(
RichTextString.Format.Strikethrough
)
is AstImage -> {
richTextStringBuilder.appendInlineContent(
content = InlineContent(
initialSize = {
IntSize(128.dp.roundToPx(), 128.dp.roundToPx())
}
) {
RemoteImage(
url = currentNodeType.destination,
contentDescription = currentNodeType.title,
modifier = Modifier.fillMaxWidth(),
contentScale = ContentScale.Inside,
)
}
)
null
}
is AstLink -> richTextStringBuilder.pushFormat(RichTextString.Format.Link(
onClick = { onLinkClicked(currentNodeType.destination) }
))
is AstSoftLineBreak -> {
richTextStringBuilder.append(" ")
null
}
is AstHardLineBreak -> {
richTextStringBuilder.append("\n")
null
}
is AstStrongEmphasis -> richTextStringBuilder.pushFormat(RichTextString.Format.Bold)
is AstText -> {
richTextStringBuilder.append(currentNodeType.literal)
null
}
is AstLinkReferenceDefinition -> richTextStringBuilder.pushFormat(
RichTextString.Format.Link(
onClick = { onLinkClicked(currentNodeType.destination) }
))
else -> null
}
}