diff --git a/app/src/main/java/ru/sweetbread/unn/ui/composes/Blogpost.kt b/app/src/main/java/ru/sweetbread/unn/ui/composes/Blogpost.kt index f58c8db..0d6ca49 100644 --- a/app/src/main/java/ru/sweetbread/unn/ui/composes/Blogpost.kt +++ b/app/src/main/java/ru/sweetbread/unn/ui/composes/Blogpost.kt @@ -219,13 +219,39 @@ private fun toHtml( processor: TextProcessor, post: Post ): String { - val html = processor.process(post.content) - return html.replace("""\[URL=(.+)](.+)\[/URL]""".toRegex()) { - Log.d("replace", it.groups.toString()) - "${it.groups[2]?.value}" - }.replace("""(\[FONT=.+]|\[CENTER])(.+)(\[/FONT]|\[/CENTER])""".toRegex()) { - it.groups[2]?.value.toString() - }.replace("""\[IMG .+].+\[/IMG]""".toRegex(), "") + Log.d("toHTML | original", post.content) + + val result = + post.content.replace("""\[URL=(.+?)](.+?)\[/URL]""".toRegex(RegexOption.DOT_MATCHES_ALL)) { + "${it.groups[2]?.value}" + }.replace("""\[FONT=(.+?)](.*?)\[/FONT]""".toRegex(RegexOption.DOT_MATCHES_ALL)) { + "${it.groups[2]?.value}" + }.replace("""\[SIZE=(.+?)](.*?)\[/SIZE]""".toRegex(RegexOption.DOT_MATCHES_ALL)) { + "${it.groups[2]?.value}" + }.replace( + """\[CENTER]\[JUSTIFY]\[CENTER](.*?)\[/CENTER]\[/JUSTIFY]\[/CENTER]""".toRegex( + RegexOption.DOT_MATCHES_ALL + ) + ) { + "${it.groups[1]?.value}
" + }.replace("""\[CENTER](.*?)\[/CENTER]""".toRegex(RegexOption.DOT_MATCHES_ALL)) { + "${it.groups[1]?.value}
" + }.replace("""\[JUSTIFY](.*?)\[/JUSTIFY]""".toRegex(RegexOption.DOT_MATCHES_ALL)) { + "${it.groups[1]?.value}
" + }.replace("""\[B](.*?)\[/B]""".toRegex(RegexOption.DOT_MATCHES_ALL)) { + "${it.groups[1]?.value}" + }.replace("""\[U](.*?)\[/U]""".toRegex(RegexOption.DOT_MATCHES_ALL)) { + "${it.groups[1]?.value}" + }.replace("""\[P](.*?)\[/P]""".toRegex(RegexOption.DOT_MATCHES_ALL)) { + "

${it.groups[1]?.value}

" + /*}.replace("""\[DISK FILE ID=n(\d+)]""".toRegex(RegexOption.DOT_MATCHES_ALL)) { + ""*/ + }.replace("""\[IMG .+].+?\[/IMG]""".toRegex(RegexOption.DOT_MATCHES_ALL), "") + /*.replace("\n", "\n
")*/ + + Log.d("toHTML | result", result) + + return result }