File tree Expand file tree Collapse file tree
printing/src/main/java/com/zachklipp/richtext/ui/printing
androidMain/kotlin/com/halilibo/richtext/markdown
commonMain/kotlin/com/halilibo/richtext/markdown
jvmMain/kotlin/com/halilibo/richtext/markdown Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -32,8 +32,9 @@ val ktlint = "org.jlleitschuh.gradle:ktlint-gradle:10.0.0"
3232object Compose {
3333 val version = " 1.5.4"
3434 val compilerVersion = " 1.5.8"
35- val desktopVersion = " 1.5.12"
36- val activity = " androidx.activity:activity-compose:1.7.2"
35+ val desktopVersion = " 1.6.0"
36+ val activity = " androidx.activity:activity-compose:1.8.2"
37+ val annotatedText = " io.github.aghajari:AnnotatedText:1.0.3"
3738 val toolingData = " androidx.compose.ui:ui-tooling-data:$version "
3839 val multiplatformUiUtil = " org.jetbrains.compose.ui:ui-util:$desktopVersion "
3940 val coil = " io.coil-kt:coil-compose:2.5.0"
Original file line number Diff line number Diff line change @@ -22,7 +22,7 @@ kotlin.code.style=official
2222systemProp.org.gradle.internal.publish.checksums.insecure =true
2323
2424GROUP =com.halilibo.compose-richtext
25- VERSION_NAME =0.20.0
25+ VERSION_NAME =1.0.0-alpha01
2626
2727POM_DESCRIPTION =A collection of Compose libraries for advanced text formatting and alternative display types.
2828
Original file line number Diff line number Diff line change @@ -165,9 +165,7 @@ public abstract class PrintableController {
165165 onDispose { controller.unregisterComposable(printable) }
166166 }
167167
168- BoxWithConstraints {
169- Box (modifier) { content() }
170- }
168+ Box (modifier) { content() }
171169}
172170
173171private tailrec fun Context.findComponentActivity (): ComponentActivity ? {
Original file line number Diff line number Diff line change @@ -26,6 +26,7 @@ kotlin {
2626 val androidMain by getting {
2727 dependencies {
2828 implementation(Compose .coil)
29+ implementation(Compose .annotatedText)
2930
3031 implementation(Commonmark .core)
3132 implementation(Commonmark .tables)
Original file line number Diff line number Diff line change @@ -5,22 +5,23 @@ import android.os.Build.VERSION_CODES
55import android.text.Html
66import android.widget.TextView
77import androidx.compose.runtime.Composable
8+ import androidx.compose.runtime.remember
9+ import androidx.compose.ui.util.fastForEach
810import androidx.compose.ui.viewinterop.AndroidView
11+ import com.aghajari.compose.text.BasicAnnotatedText
12+ import com.aghajari.compose.text.fromHtml
13+ import com.halilibo.richtext.ui.RichTextScope
14+ import com.halilibo.richtext.ui.string.Text
15+ import com.halilibo.richtext.ui.string.richTextString
916
1017@Composable
11- internal actual fun HtmlBlock (content : String ) {
12- AndroidView (
13- factory = { context ->
14- // TODO: pass current styling to legacy TextView
15- TextView (context)
16- },
17- update = {
18- it.text = if (VERSION .SDK_INT >= VERSION_CODES .N ) {
19- Html .fromHtml(content, 0 )
20- } else {
21- @Suppress(" DEPRECATION" )
22- Html .fromHtml(content)
18+ internal actual fun RichTextScope.HtmlBlock (content : String ) {
19+ val richTextString = remember(content) {
20+ richTextString {
21+ withAnnotatedString {
22+ append(content.fromHtml().annotatedString)
2323 }
2424 }
25- )
25+ }
26+ Text (richTextString)
2627}
Original file line number Diff line number Diff line change 11package com.halilibo.richtext.markdown
22
33import androidx.compose.runtime.Composable
4+ import com.halilibo.richtext.ui.RichTextScope
45
56/* *
67 * Android and JVM can have different WebView or HTML rendering implementations.
78 * We are leaving HTML rendering to platform side.
89 */
910@Composable
10- internal expect fun HtmlBlock (content : String )
11+ internal expect fun RichTextScope. HtmlBlock (content : String )
Original file line number Diff line number Diff line change @@ -3,9 +3,10 @@ package com.halilibo.richtext.markdown
33import androidx.compose.foundation.text.BasicText
44import androidx.compose.runtime.Composable
55import androidx.compose.runtime.DisposableEffect
6+ import com.halilibo.richtext.ui.RichTextScope
67
78@Composable
8- internal actual fun HtmlBlock (content : String ) {
9+ internal actual fun RichTextScope. HtmlBlock (content : String ) {
910 DisposableEffect (Unit ) {
1011 println (" Html blocks are rendered literally in Compose Desktop!" )
1112 onDispose { }
You can’t perform that action at this time.
0 commit comments