manager: add markdown-ext-tables

This commit is contained in:
YuKongA
2025-11-27 16:14:19 +08:00
committed by shirkneko
parent 8b06df3468
commit f81023246f
5 changed files with 20 additions and 22 deletions

View File

@@ -138,15 +138,14 @@ dependencies {
implementation(libs.kotlinx.coroutines.core)
implementation(libs.markdown)
implementation(libs.markdown.ext.tables)
implementation(libs.androidx.webkit)
implementation(libs.lsposed.cxx)
implementation(libs.miuix)
implementation(libs.haze)
implementation(libs.capsule)
implementation(libs.twain)
}

View File

@@ -29,7 +29,6 @@ import androidx.compose.ui.layout.Layout
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.unit.dp
import com.colintheshots.twain.MarkdownText
import kotlinx.coroutines.CancellableContinuation
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.async
@@ -418,12 +417,7 @@ private fun ConfirmDialog(
content = {
visuals.content?.let {
if (visuals.isMarkdown) {
MarkdownText(
markdown = visuals.content!!,
color = MiuixTheme.colorScheme.onSurface,
modifier = Modifier
.fillMaxWidth()
)
MarkdownContent(content = visuals.content!!)
} else {
Text(text = visuals.content!!)
}

View File

@@ -15,6 +15,9 @@ import androidx.compose.ui.draw.clipToBounds
import androidx.compose.ui.graphics.toArgb
import androidx.compose.ui.viewinterop.AndroidView
import io.noties.markwon.Markwon
import io.noties.markwon.ext.tables.TableAwareMovementMethod
import io.noties.markwon.ext.tables.TablePlugin
import io.noties.markwon.movement.MovementMethodPlugin
import io.noties.markwon.utils.NoCopySpannableFactory
import top.yukonga.miuix.kmp.theme.MiuixTheme
@@ -45,7 +48,11 @@ fun MarkdownContent(content: String) {
.clipToBounds(),
update = {
val textView = it.getChildAt(0) as TextView
Markwon.create(textView.context).setMarkdown(textView, content)
val markwon = Markwon.builder(textView.context)
.usePlugin(TablePlugin.create(textView.context))
.usePlugin(MovementMethodPlugin.create(TableAwareMovementMethod.create()))
.build()
markwon.setMarkdown(textView, content)
textView.setTextColor(contentColor)
}
)

View File

@@ -49,7 +49,6 @@ import androidx.compose.ui.text.style.TextOverflow
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
import androidx.lifecycle.viewmodel.compose.viewModel
import com.colintheshots.twain.MarkdownText
import com.ramcosta.composedestinations.annotation.Destination
import com.ramcosta.composedestinations.annotation.RootGraph
import com.ramcosta.composedestinations.generated.destinations.FlashScreenDestination
@@ -67,6 +66,7 @@ import kotlinx.coroutines.withContext
import kotlinx.parcelize.Parcelize
import com.sukisu.ultra.R
import com.sukisu.ultra.ksuApp
import com.sukisu.ultra.ui.component.MarkdownContent
import com.sukisu.ultra.ui.component.SearchBox
import com.sukisu.ultra.ui.component.SearchPager
import com.sukisu.ultra.ui.component.rememberConfirmDialog
@@ -92,7 +92,6 @@ import top.yukonga.miuix.kmp.icon.MiuixIcons
import top.yukonga.miuix.kmp.icon.icons.useful.Back
import top.yukonga.miuix.kmp.icon.icons.useful.NavigatorSwitch
import top.yukonga.miuix.kmp.icon.icons.useful.Save
import top.yukonga.miuix.kmp.theme.MiuixTheme
import top.yukonga.miuix.kmp.theme.MiuixTheme.colorScheme
import top.yukonga.miuix.kmp.utils.PressFeedbackType
import top.yukonga.miuix.kmp.utils.getWindowSize
@@ -622,12 +621,7 @@ fun ModuleRepoDetailScreen(
insideMargin = PaddingValues(16.dp)
) {
Column {
MarkdownText(
markdown = readmeText!!,
color = colorScheme.onSurface,
modifier = Modifier
.fillMaxWidth()
)
MarkdownContent(content = readmeText!!)
}
}
}

View File

@@ -10,7 +10,7 @@ activity-compose = "1.11.0"
kotlinx-coroutines = "1.10.2"
coil-compose = "2.7.0"
compose-destination = "2.3.0"
twain = "0.3.2"
markdown = "4.6.2"
webkit = "1.14.0"
parcelablelist = "2.0.1"
ndk = "29.0.14206865"
@@ -66,6 +66,9 @@ kotlinx-coroutines-core = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-c
compose-destinations-core = { group = "io.github.raamcosta.compose-destinations", name = "core", version.ref = "compose-destination" }
compose-destinations-ksp = { group = "io.github.raamcosta.compose-destinations", name = "ksp", version.ref = "compose-destination" }
markdown = { group = "io.noties.markwon", name = "core", version.ref = "markdown" }
markdown-ext-tables = { group = "io.noties.markwon", name = "ext-tables", version.ref = "markdown" }
lsposed-cxx = { module = "org.lsposed.libcxx:libcxx", version.ref = "ndk" }
miuix = { module = "top.yukonga.miuix.kmp:miuix-android", version.ref = "miuix" }
@@ -73,6 +76,7 @@ miuix = { module = "top.yukonga.miuix.kmp:miuix-android", version.ref = "miuix"
haze = { module = "dev.chrisbanes.haze:haze-android", version.ref = "haze" }
capsule = { module = "io.github.kyant0:capsule", version.ref = "capsule" }
twain = { module = "com.colintheshots:twain", version.ref = "twain" }
androidx-documentfile = { group = "androidx.documentfile", name = "documentfile", version.ref = "documentfile" }