From 7a3c9730a282ad676c436dbbac515beb4b7130ae Mon Sep 17 00:00:00 2001 From: Wynd Date: Sun, 9 Nov 2025 23:13:10 +0200 Subject: [PATCH] Updated the markdown parser with slightly better style for lists --- .../xyz/pixelatedw/recipe/utils/MarkdownParser.kt | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/xyz/pixelatedw/recipe/utils/MarkdownParser.kt b/app/src/main/java/xyz/pixelatedw/recipe/utils/MarkdownParser.kt index 70c74aa..f264e58 100644 --- a/app/src/main/java/xyz/pixelatedw/recipe/utils/MarkdownParser.kt +++ b/app/src/main/java/xyz/pixelatedw/recipe/utils/MarkdownParser.kt @@ -56,6 +56,7 @@ private fun AnnotatedString.Builder.visitMarkdownNode( style.toParagraphStyle().merge(ParagraphStyle(textAlign = TextAlign.Center)) ) { withStyle(style.toSpanStyle().copy(color = headingColor)) { + appendLine() visitChildren(node, typography) appendLine() } @@ -133,8 +134,15 @@ private fun AnnotatedString.Builder.visitMarkdownNode( } is ListItem -> { - withStyle(ParagraphStyle(lineHeight = 18.sp)) { + var newLine = false + var indent = node.contentIndent * 4 + if ( node.parents.any { it is BulletList } && node.parents.any {it is OrderedList} ) { + indent += 20 + } + + withStyle(ParagraphStyle(lineHeight = 18.sp, textIndent = TextIndent(firstLine = indent.sp, restLine = (indent - 10).sp))) { if (node.parents.any { it is BulletList }) { + appendLine() append("• ") } else if (node.parents.any { it is OrderedList }) { val startNumber = @@ -142,9 +150,12 @@ private fun AnnotatedString.Builder.visitMarkdownNode( val index = startNumber + node.previousSiblings.filterIsInstance().size append("$index. ") + newLine = true } visitChildren(node, typography) - appendLine() + if (newLine) { + appendLine() + } } }