manager: add markdown-ext-tables
This commit is contained in:
@@ -138,15 +138,14 @@ dependencies {
|
|||||||
|
|
||||||
implementation(libs.kotlinx.coroutines.core)
|
implementation(libs.kotlinx.coroutines.core)
|
||||||
|
|
||||||
|
implementation(libs.markdown)
|
||||||
|
implementation(libs.markdown.ext.tables)
|
||||||
|
|
||||||
implementation(libs.androidx.webkit)
|
implementation(libs.androidx.webkit)
|
||||||
|
|
||||||
implementation(libs.lsposed.cxx)
|
implementation(libs.lsposed.cxx)
|
||||||
|
|
||||||
implementation(libs.miuix)
|
implementation(libs.miuix)
|
||||||
|
|
||||||
implementation(libs.haze)
|
implementation(libs.haze)
|
||||||
|
|
||||||
implementation(libs.capsule)
|
implementation(libs.capsule)
|
||||||
|
|
||||||
implementation(libs.twain)
|
|
||||||
}
|
}
|
||||||
@@ -29,7 +29,6 @@ import androidx.compose.ui.layout.Layout
|
|||||||
import androidx.compose.ui.res.stringResource
|
import androidx.compose.ui.res.stringResource
|
||||||
import androidx.compose.ui.text.font.FontWeight
|
import androidx.compose.ui.text.font.FontWeight
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
import com.colintheshots.twain.MarkdownText
|
|
||||||
import kotlinx.coroutines.CancellableContinuation
|
import kotlinx.coroutines.CancellableContinuation
|
||||||
import kotlinx.coroutines.CoroutineScope
|
import kotlinx.coroutines.CoroutineScope
|
||||||
import kotlinx.coroutines.async
|
import kotlinx.coroutines.async
|
||||||
@@ -418,12 +417,7 @@ private fun ConfirmDialog(
|
|||||||
content = {
|
content = {
|
||||||
visuals.content?.let {
|
visuals.content?.let {
|
||||||
if (visuals.isMarkdown) {
|
if (visuals.isMarkdown) {
|
||||||
MarkdownText(
|
MarkdownContent(content = visuals.content!!)
|
||||||
markdown = visuals.content!!,
|
|
||||||
color = MiuixTheme.colorScheme.onSurface,
|
|
||||||
modifier = Modifier
|
|
||||||
.fillMaxWidth()
|
|
||||||
)
|
|
||||||
} else {
|
} else {
|
||||||
Text(text = visuals.content!!)
|
Text(text = visuals.content!!)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,6 +15,9 @@ import androidx.compose.ui.draw.clipToBounds
|
|||||||
import androidx.compose.ui.graphics.toArgb
|
import androidx.compose.ui.graphics.toArgb
|
||||||
import androidx.compose.ui.viewinterop.AndroidView
|
import androidx.compose.ui.viewinterop.AndroidView
|
||||||
import io.noties.markwon.Markwon
|
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 io.noties.markwon.utils.NoCopySpannableFactory
|
||||||
import top.yukonga.miuix.kmp.theme.MiuixTheme
|
import top.yukonga.miuix.kmp.theme.MiuixTheme
|
||||||
|
|
||||||
@@ -45,7 +48,11 @@ fun MarkdownContent(content: String) {
|
|||||||
.clipToBounds(),
|
.clipToBounds(),
|
||||||
update = {
|
update = {
|
||||||
val textView = it.getChildAt(0) as TextView
|
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)
|
textView.setTextColor(contentColor)
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -49,7 +49,6 @@ import androidx.compose.ui.text.style.TextOverflow
|
|||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
import androidx.compose.ui.unit.sp
|
import androidx.compose.ui.unit.sp
|
||||||
import androidx.lifecycle.viewmodel.compose.viewModel
|
import androidx.lifecycle.viewmodel.compose.viewModel
|
||||||
import com.colintheshots.twain.MarkdownText
|
|
||||||
import com.ramcosta.composedestinations.annotation.Destination
|
import com.ramcosta.composedestinations.annotation.Destination
|
||||||
import com.ramcosta.composedestinations.annotation.RootGraph
|
import com.ramcosta.composedestinations.annotation.RootGraph
|
||||||
import com.ramcosta.composedestinations.generated.destinations.FlashScreenDestination
|
import com.ramcosta.composedestinations.generated.destinations.FlashScreenDestination
|
||||||
@@ -67,6 +66,7 @@ import kotlinx.coroutines.withContext
|
|||||||
import kotlinx.parcelize.Parcelize
|
import kotlinx.parcelize.Parcelize
|
||||||
import com.sukisu.ultra.R
|
import com.sukisu.ultra.R
|
||||||
import com.sukisu.ultra.ksuApp
|
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.SearchBox
|
||||||
import com.sukisu.ultra.ui.component.SearchPager
|
import com.sukisu.ultra.ui.component.SearchPager
|
||||||
import com.sukisu.ultra.ui.component.rememberConfirmDialog
|
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.Back
|
||||||
import top.yukonga.miuix.kmp.icon.icons.useful.NavigatorSwitch
|
import top.yukonga.miuix.kmp.icon.icons.useful.NavigatorSwitch
|
||||||
import top.yukonga.miuix.kmp.icon.icons.useful.Save
|
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.theme.MiuixTheme.colorScheme
|
||||||
import top.yukonga.miuix.kmp.utils.PressFeedbackType
|
import top.yukonga.miuix.kmp.utils.PressFeedbackType
|
||||||
import top.yukonga.miuix.kmp.utils.getWindowSize
|
import top.yukonga.miuix.kmp.utils.getWindowSize
|
||||||
@@ -622,12 +621,7 @@ fun ModuleRepoDetailScreen(
|
|||||||
insideMargin = PaddingValues(16.dp)
|
insideMargin = PaddingValues(16.dp)
|
||||||
) {
|
) {
|
||||||
Column {
|
Column {
|
||||||
MarkdownText(
|
MarkdownContent(content = readmeText!!)
|
||||||
markdown = readmeText!!,
|
|
||||||
color = colorScheme.onSurface,
|
|
||||||
modifier = Modifier
|
|
||||||
.fillMaxWidth()
|
|
||||||
)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ activity-compose = "1.11.0"
|
|||||||
kotlinx-coroutines = "1.10.2"
|
kotlinx-coroutines = "1.10.2"
|
||||||
coil-compose = "2.7.0"
|
coil-compose = "2.7.0"
|
||||||
compose-destination = "2.3.0"
|
compose-destination = "2.3.0"
|
||||||
twain = "0.3.2"
|
markdown = "4.6.2"
|
||||||
webkit = "1.14.0"
|
webkit = "1.14.0"
|
||||||
parcelablelist = "2.0.1"
|
parcelablelist = "2.0.1"
|
||||||
ndk = "29.0.14206865"
|
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-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" }
|
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" }
|
lsposed-cxx = { module = "org.lsposed.libcxx:libcxx", version.ref = "ndk" }
|
||||||
|
|
||||||
miuix = { module = "top.yukonga.miuix.kmp:miuix-android", version.ref = "miuix" }
|
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" }
|
haze = { module = "dev.chrisbanes.haze:haze-android", version.ref = "haze" }
|
||||||
|
|
||||||
capsule = { module = "io.github.kyant0:capsule", version.ref = "capsule" }
|
capsule = { module = "io.github.kyant0:capsule", version.ref = "capsule" }
|
||||||
|
|
||||||
twain = { module = "com.colintheshots:twain", version.ref = "twain" }
|
twain = { module = "com.colintheshots:twain", version.ref = "twain" }
|
||||||
|
|
||||||
androidx-documentfile = { group = "androidx.documentfile", name = "documentfile", version.ref = "documentfile" }
|
androidx-documentfile = { group = "androidx.documentfile", name = "documentfile", version.ref = "documentfile" }
|
||||||
|
|||||||
Reference in New Issue
Block a user