mirror of
https://github.com/vitorpamplona/amethyst.git
synced 2025-11-10 13:17:34 +01:00
Updates markdown parser to the latest
This commit is contained in:
@@ -26,15 +26,17 @@ import androidx.compose.foundation.verticalScroll
|
|||||||
import androidx.compose.material3.MaterialTheme
|
import androidx.compose.material3.MaterialTheme
|
||||||
import androidx.compose.material3.ProvideTextStyle
|
import androidx.compose.material3.ProvideTextStyle
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
|
import androidx.compose.runtime.CompositionLocalProvider
|
||||||
import androidx.compose.runtime.MutableState
|
import androidx.compose.runtime.MutableState
|
||||||
import androidx.compose.runtime.mutableStateOf
|
import androidx.compose.runtime.mutableStateOf
|
||||||
import androidx.compose.runtime.remember
|
import androidx.compose.runtime.remember
|
||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
import androidx.compose.ui.graphics.Color
|
import androidx.compose.ui.graphics.Color
|
||||||
import androidx.compose.ui.platform.LocalUriHandler
|
import androidx.compose.ui.platform.LocalUriHandler
|
||||||
|
import androidx.compose.ui.platform.UriHandler
|
||||||
import androidx.compose.ui.tooling.preview.Preview
|
import androidx.compose.ui.tooling.preview.Preview
|
||||||
|
import com.halilibo.richtext.commonmark.CommonMarkdownParseOptions
|
||||||
import com.halilibo.richtext.commonmark.CommonmarkAstNodeParser
|
import com.halilibo.richtext.commonmark.CommonmarkAstNodeParser
|
||||||
import com.halilibo.richtext.commonmark.MarkdownParseOptions
|
|
||||||
import com.halilibo.richtext.markdown.BasicMarkdown
|
import com.halilibo.richtext.markdown.BasicMarkdown
|
||||||
import com.halilibo.richtext.ui.material3.RichText
|
import com.halilibo.richtext.ui.material3.RichText
|
||||||
import com.vitorpamplona.amethyst.model.LocalCache
|
import com.vitorpamplona.amethyst.model.LocalCache
|
||||||
@@ -69,24 +71,25 @@ fun RenderContentAsMarkdown(
|
|||||||
accountViewModel: AccountViewModel,
|
accountViewModel: AccountViewModel,
|
||||||
nav: INav,
|
nav: INav,
|
||||||
) {
|
) {
|
||||||
val uri = LocalUriHandler.current
|
val uriHandler = LocalUriHandler.current
|
||||||
val onClick =
|
val onClick =
|
||||||
remember {
|
remember(uriHandler) {
|
||||||
{ link: String ->
|
object : UriHandler {
|
||||||
val route = uriToRoute(link, accountViewModel.account)
|
override fun openUri(uri: String) {
|
||||||
if (route != null) {
|
val route = uriToRoute(uri, accountViewModel.account)
|
||||||
nav.nav(route)
|
if (route != null) {
|
||||||
} else {
|
nav.nav(route)
|
||||||
runCatching { uri.openUri(link) }
|
} else {
|
||||||
|
runCatching { uriHandler.openUri(uri) }
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Unit
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
ProvideTextStyle(MarkdownTextStyle) {
|
ProvideTextStyle(MarkdownTextStyle) {
|
||||||
val astNode =
|
val astNode =
|
||||||
remember(content) {
|
remember(content) {
|
||||||
CommonmarkAstNodeParser(MarkdownParseOptions.MarkdownWithLinks).parse(content)
|
CommonmarkAstNodeParser(CommonMarkdownParseOptions.MarkdownWithLinks).parse(content)
|
||||||
}
|
}
|
||||||
|
|
||||||
val renderer =
|
val renderer =
|
||||||
@@ -103,12 +106,13 @@ fun RenderContentAsMarkdown(
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
RichText(
|
CompositionLocalProvider(LocalUriHandler provides onClick) {
|
||||||
style = MaterialTheme.colorScheme.markdownStyle,
|
RichText(
|
||||||
linkClickHandler = onClick,
|
style = MaterialTheme.colorScheme.markdownStyle,
|
||||||
renderer = renderer,
|
renderer = renderer,
|
||||||
) {
|
) {
|
||||||
BasicMarkdown(astNode)
|
BasicMarkdown(astNode)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -83,8 +83,8 @@ import androidx.compose.ui.unit.dp
|
|||||||
import androidx.compose.ui.window.Dialog
|
import androidx.compose.ui.window.Dialog
|
||||||
import androidx.compose.ui.window.DialogProperties
|
import androidx.compose.ui.window.DialogProperties
|
||||||
import androidx.fragment.app.FragmentActivity
|
import androidx.fragment.app.FragmentActivity
|
||||||
|
import com.halilibo.richtext.commonmark.CommonMarkdownParseOptions
|
||||||
import com.halilibo.richtext.commonmark.CommonmarkAstNodeParser
|
import com.halilibo.richtext.commonmark.CommonmarkAstNodeParser
|
||||||
import com.halilibo.richtext.commonmark.MarkdownParseOptions
|
|
||||||
import com.halilibo.richtext.markdown.BasicMarkdown
|
import com.halilibo.richtext.markdown.BasicMarkdown
|
||||||
import com.halilibo.richtext.ui.RichTextStyle
|
import com.halilibo.richtext.ui.RichTextStyle
|
||||||
import com.halilibo.richtext.ui.material3.RichText
|
import com.halilibo.richtext.ui.material3.RichText
|
||||||
@@ -177,7 +177,7 @@ private fun DialogContents(
|
|||||||
|
|
||||||
val astNode1 =
|
val astNode1 =
|
||||||
remember {
|
remember {
|
||||||
CommonmarkAstNodeParser(MarkdownParseOptions.MarkdownWithLinks).parse(content1)
|
CommonmarkAstNodeParser(CommonMarkdownParseOptions.MarkdownWithLinks).parse(content1)
|
||||||
}
|
}
|
||||||
|
|
||||||
RichText(
|
RichText(
|
||||||
@@ -205,7 +205,7 @@ private fun DialogContents(
|
|||||||
|
|
||||||
val astNode =
|
val astNode =
|
||||||
remember {
|
remember {
|
||||||
CommonmarkAstNodeParser(MarkdownParseOptions.MarkdownWithLinks).parse(content)
|
CommonmarkAstNodeParser(CommonMarkdownParseOptions.MarkdownWithLinks).parse(content)
|
||||||
}
|
}
|
||||||
|
|
||||||
RichText(
|
RichText(
|
||||||
|
|||||||
@@ -20,6 +20,8 @@
|
|||||||
*/
|
*/
|
||||||
package com.vitorpamplona.amethyst.ui.theme
|
package com.vitorpamplona.amethyst.ui.theme
|
||||||
|
|
||||||
|
import android.R.attr.fontFamily
|
||||||
|
import android.R.id.primary
|
||||||
import android.app.Activity
|
import android.app.Activity
|
||||||
import android.app.UiModeManager
|
import android.app.UiModeManager
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
@@ -49,6 +51,7 @@ import androidx.compose.ui.graphics.toArgb
|
|||||||
import androidx.compose.ui.platform.LocalContext
|
import androidx.compose.ui.platform.LocalContext
|
||||||
import androidx.compose.ui.platform.LocalView
|
import androidx.compose.ui.platform.LocalView
|
||||||
import androidx.compose.ui.text.SpanStyle
|
import androidx.compose.ui.text.SpanStyle
|
||||||
|
import androidx.compose.ui.text.TextLinkStyles
|
||||||
import androidx.compose.ui.text.TextStyle
|
import androidx.compose.ui.text.TextStyle
|
||||||
import androidx.compose.ui.text.font.FontFamily
|
import androidx.compose.ui.text.font.FontFamily
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
@@ -292,8 +295,11 @@ val MarkDownStyleOnDark =
|
|||||||
stringStyle =
|
stringStyle =
|
||||||
RichTextDefaults.stringStyle?.copy(
|
RichTextDefaults.stringStyle?.copy(
|
||||||
linkStyle =
|
linkStyle =
|
||||||
SpanStyle(
|
TextLinkStyles(
|
||||||
color = DarkColorPalette.primary,
|
style =
|
||||||
|
SpanStyle(
|
||||||
|
color = DarkColorPalette.primary,
|
||||||
|
),
|
||||||
),
|
),
|
||||||
codeStyle =
|
codeStyle =
|
||||||
SpanStyle(
|
SpanStyle(
|
||||||
@@ -330,8 +336,11 @@ val MarkDownStyleOnLight =
|
|||||||
stringStyle =
|
stringStyle =
|
||||||
RichTextDefaults.stringStyle?.copy(
|
RichTextDefaults.stringStyle?.copy(
|
||||||
linkStyle =
|
linkStyle =
|
||||||
SpanStyle(
|
TextLinkStyles(
|
||||||
color = LightColorPalette.primary,
|
style =
|
||||||
|
SpanStyle(
|
||||||
|
color = LightColorPalette.primary,
|
||||||
|
),
|
||||||
),
|
),
|
||||||
codeStyle =
|
codeStyle =
|
||||||
SpanStyle(
|
SpanStyle(
|
||||||
|
|||||||
@@ -34,7 +34,7 @@ lazysodiumAndroid = "5.2.0"
|
|||||||
lazysodiumJava = "5.2.0"
|
lazysodiumJava = "5.2.0"
|
||||||
lifecycleRuntimeKtx = "2.9.4"
|
lifecycleRuntimeKtx = "2.9.4"
|
||||||
lightcompressor = "1.3.3"
|
lightcompressor = "1.3.3"
|
||||||
markdown = "e1151c8"
|
markdown = "f92ef49c9d"
|
||||||
media3 = "1.8.0"
|
media3 = "1.8.0"
|
||||||
mockk = "1.14.5"
|
mockk = "1.14.5"
|
||||||
kotlinx-coroutines-test = "1.10.2"
|
kotlinx-coroutines-test = "1.10.2"
|
||||||
|
|||||||
Reference in New Issue
Block a user