diff --git a/MIGRATION.md b/MIGRATION.md index 4590da3..26bc538 100644 --- a/MIGRATION.md +++ b/MIGRATION.md @@ -1,5 +1,9 @@ ### Upgrade Notes +#### Version 0.38.0 + +- **Breaking Change**: Removes prior deprecated APIs and functionality (`PlaceholderConfig.animate`) + #### Version 0.36.0 - **Dependency Upgrade**: Kotlin 2.2.x / Compose 1.8.3 / Compose Multiplatform 1.8.2 diff --git a/README.md b/README.md index 97fe718..c386dda 100644 --- a/README.md +++ b/README.md @@ -128,9 +128,15 @@ Markdown( ) ``` -**Note:** Import either `com.mikepenz.markdown.m3.Markdown` for Material 3 or +> [!NOTE] +> Import either `com.mikepenz.markdown.m3.Markdown` for Material 3 or `com.mikepenz.markdown.m2.Markdown` for Material 2 themed applications. +> [!NOTE] +> By default, when the markdown `content` changes, the component will display a loading state while +> parsing the new content. To keep the previous content visible during updates and avoid showing the +> loading state, set `retainState` to `true`. +
Advanced Usage

@@ -158,6 +164,33 @@ val markdownState = rememberMarkdownState(markdown) val markdownState = rememberMarkdownState(markdown, immediate = true) ``` +#### Retaining State During Updates + +By default, when the markdown content changes, the component shows a loading state while parsing the +new content. You can use the `retainState` parameter to keep the previous rendered content visible +while the new content is being parsed: + +```kotlin +// Retain previous content during updates (avoids showing loading state) +val markdownState = rememberMarkdownState( + markdown, + retainState = true +) +Markdown(markdownState) + +// With dynamic content loading +val markdownState = rememberMarkdownState( + key, // key that triggers re-parsing + retainState = true +) { + "# Dynamic content $counter" +} +Markdown(markdownState) +``` + +This is particularly useful when content updates frequently or when you want to avoid flickering +between the old content and the loading state. + ### Lazy Loading for Large Documents Since version 0.33.0, the library supports rendering large markdown documents efficiently using diff --git a/gradle.properties b/gradle.properties index a46f33a..59d22bc 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,7 +1,7 @@ # Maven stuff GROUP=com.mikepenz -VERSION_NAME=0.38.0 -VERSION_CODE=3800 +VERSION_NAME=0.38.1 +VERSION_CODE=3801 # POM_URL=https://github.com/mikepenz/multiplatform-markdown-renderer POM_SCM_URL=https://github.com/mikepenz/multiplatform-markdown-renderer diff --git a/multiplatform-markdown-renderer/api/android/multiplatform-markdown-renderer.api b/multiplatform-markdown-renderer/api/android/multiplatform-markdown-renderer.api index 3acaaf5..ecc8fe8 100644 --- a/multiplatform-markdown-renderer/api/android/multiplatform-markdown-renderer.api +++ b/multiplatform-markdown-renderer/api/android/multiplatform-markdown-renderer.api @@ -37,9 +37,9 @@ public final class com/mikepenz/markdown/annotator/DefaultAnnotatorSettings : co public final class com/mikepenz/markdown/compose/ComposableSingletons$MarkdownKt { public static final field INSTANCE Lcom/mikepenz/markdown/compose/ComposableSingletons$MarkdownKt; public fun ()V - public final fun getLambda$-1129650913$multiplatform_markdown_renderer_release ()Lkotlin/jvm/functions/Function5; public final fun getLambda$-2063790006$multiplatform_markdown_renderer_release ()Lkotlin/jvm/functions/Function5; public final fun getLambda$-322200773$multiplatform_markdown_renderer_release ()Lkotlin/jvm/functions/Function5; + public final fun getLambda$-830612685$multiplatform_markdown_renderer_release ()Lkotlin/jvm/functions/Function5; } public final class com/mikepenz/markdown/compose/ComposeLocalKt { @@ -69,7 +69,7 @@ public final class com/mikepenz/markdown/compose/MarkdownExtensionKt { public final class com/mikepenz/markdown/compose/MarkdownKt { public static final fun Markdown (Lcom/mikepenz/markdown/model/MarkdownState;Lcom/mikepenz/markdown/model/MarkdownColors;Lcom/mikepenz/markdown/model/MarkdownTypography;Landroidx/compose/ui/Modifier;Lcom/mikepenz/markdown/model/MarkdownPadding;Lcom/mikepenz/markdown/model/MarkdownDimens;Lcom/mikepenz/markdown/model/ImageTransformer;Lcom/mikepenz/markdown/model/MarkdownAnnotator;Lcom/mikepenz/markdown/model/MarkdownExtendedSpans;Lcom/mikepenz/markdown/model/MarkdownInlineContent;Lcom/mikepenz/markdown/compose/components/MarkdownComponents;Lcom/mikepenz/markdown/model/MarkdownAnimations;Lkotlin/jvm/functions/Function3;Lkotlin/jvm/functions/Function5;Lkotlin/jvm/functions/Function3;Landroidx/compose/runtime/Composer;III)V public static final fun Markdown (Lcom/mikepenz/markdown/model/State;Lcom/mikepenz/markdown/model/MarkdownColors;Lcom/mikepenz/markdown/model/MarkdownTypography;Landroidx/compose/ui/Modifier;Lcom/mikepenz/markdown/model/MarkdownPadding;Lcom/mikepenz/markdown/model/MarkdownDimens;Lcom/mikepenz/markdown/model/ImageTransformer;Lcom/mikepenz/markdown/model/MarkdownAnnotator;Lcom/mikepenz/markdown/model/MarkdownExtendedSpans;Lcom/mikepenz/markdown/model/MarkdownInlineContent;Lcom/mikepenz/markdown/compose/components/MarkdownComponents;Lcom/mikepenz/markdown/model/MarkdownAnimations;Lkotlin/jvm/functions/Function3;Lkotlin/jvm/functions/Function5;Lkotlin/jvm/functions/Function3;Landroidx/compose/runtime/Composer;III)V - public static final fun Markdown (Ljava/lang/String;Lcom/mikepenz/markdown/model/MarkdownColors;Lcom/mikepenz/markdown/model/MarkdownTypography;Landroidx/compose/ui/Modifier;Lcom/mikepenz/markdown/model/MarkdownPadding;Lcom/mikepenz/markdown/model/MarkdownDimens;Lorg/intellij/markdown/flavours/MarkdownFlavourDescriptor;Lorg/intellij/markdown/parser/MarkdownParser;Lcom/mikepenz/markdown/model/ImageTransformer;Lcom/mikepenz/markdown/model/MarkdownAnnotator;Lcom/mikepenz/markdown/model/MarkdownExtendedSpans;Lcom/mikepenz/markdown/model/MarkdownInlineContent;Lcom/mikepenz/markdown/compose/components/MarkdownComponents;Lcom/mikepenz/markdown/model/MarkdownAnimations;Lcom/mikepenz/markdown/model/ReferenceLinkHandler;Lkotlin/jvm/functions/Function3;Lkotlin/jvm/functions/Function5;Lkotlin/jvm/functions/Function3;Landroidx/compose/runtime/Composer;III)V + public static final fun Markdown (Ljava/lang/String;Lcom/mikepenz/markdown/model/MarkdownColors;Lcom/mikepenz/markdown/model/MarkdownTypography;Landroidx/compose/ui/Modifier;Lcom/mikepenz/markdown/model/MarkdownPadding;Lcom/mikepenz/markdown/model/MarkdownDimens;Lorg/intellij/markdown/flavours/MarkdownFlavourDescriptor;Lorg/intellij/markdown/parser/MarkdownParser;Lcom/mikepenz/markdown/model/ImageTransformer;Lcom/mikepenz/markdown/model/MarkdownAnnotator;Lcom/mikepenz/markdown/model/MarkdownExtendedSpans;Lcom/mikepenz/markdown/model/MarkdownInlineContent;Lcom/mikepenz/markdown/compose/components/MarkdownComponents;Lcom/mikepenz/markdown/model/MarkdownAnimations;Lcom/mikepenz/markdown/model/ReferenceLinkHandler;ZZZLkotlin/jvm/functions/Function3;Lkotlin/jvm/functions/Function5;Lkotlin/jvm/functions/Function3;Landroidx/compose/runtime/Composer;IIII)V public static final fun MarkdownSuccess (Lcom/mikepenz/markdown/model/State$Success;Lcom/mikepenz/markdown/compose/components/MarkdownComponents;Landroidx/compose/ui/Modifier;Landroidx/compose/runtime/Composer;II)V } diff --git a/multiplatform-markdown-renderer/api/jvm/multiplatform-markdown-renderer.api b/multiplatform-markdown-renderer/api/jvm/multiplatform-markdown-renderer.api index 33253f4..2c61613 100644 --- a/multiplatform-markdown-renderer/api/jvm/multiplatform-markdown-renderer.api +++ b/multiplatform-markdown-renderer/api/jvm/multiplatform-markdown-renderer.api @@ -37,9 +37,9 @@ public final class com/mikepenz/markdown/annotator/DefaultAnnotatorSettings : co public final class com/mikepenz/markdown/compose/ComposableSingletons$MarkdownKt { public static final field INSTANCE Lcom/mikepenz/markdown/compose/ComposableSingletons$MarkdownKt; public fun ()V - public final fun getLambda$-1129650913$multiplatform_markdown_renderer ()Lkotlin/jvm/functions/Function5; public final fun getLambda$-2063790006$multiplatform_markdown_renderer ()Lkotlin/jvm/functions/Function5; public final fun getLambda$-322200773$multiplatform_markdown_renderer ()Lkotlin/jvm/functions/Function5; + public final fun getLambda$-830612685$multiplatform_markdown_renderer ()Lkotlin/jvm/functions/Function5; } public final class com/mikepenz/markdown/compose/ComposeLocalKt { @@ -69,7 +69,7 @@ public final class com/mikepenz/markdown/compose/MarkdownExtensionKt { public final class com/mikepenz/markdown/compose/MarkdownKt { public static final fun Markdown (Lcom/mikepenz/markdown/model/MarkdownState;Lcom/mikepenz/markdown/model/MarkdownColors;Lcom/mikepenz/markdown/model/MarkdownTypography;Landroidx/compose/ui/Modifier;Lcom/mikepenz/markdown/model/MarkdownPadding;Lcom/mikepenz/markdown/model/MarkdownDimens;Lcom/mikepenz/markdown/model/ImageTransformer;Lcom/mikepenz/markdown/model/MarkdownAnnotator;Lcom/mikepenz/markdown/model/MarkdownExtendedSpans;Lcom/mikepenz/markdown/model/MarkdownInlineContent;Lcom/mikepenz/markdown/compose/components/MarkdownComponents;Lcom/mikepenz/markdown/model/MarkdownAnimations;Lkotlin/jvm/functions/Function3;Lkotlin/jvm/functions/Function5;Lkotlin/jvm/functions/Function3;Landroidx/compose/runtime/Composer;III)V public static final fun Markdown (Lcom/mikepenz/markdown/model/State;Lcom/mikepenz/markdown/model/MarkdownColors;Lcom/mikepenz/markdown/model/MarkdownTypography;Landroidx/compose/ui/Modifier;Lcom/mikepenz/markdown/model/MarkdownPadding;Lcom/mikepenz/markdown/model/MarkdownDimens;Lcom/mikepenz/markdown/model/ImageTransformer;Lcom/mikepenz/markdown/model/MarkdownAnnotator;Lcom/mikepenz/markdown/model/MarkdownExtendedSpans;Lcom/mikepenz/markdown/model/MarkdownInlineContent;Lcom/mikepenz/markdown/compose/components/MarkdownComponents;Lcom/mikepenz/markdown/model/MarkdownAnimations;Lkotlin/jvm/functions/Function3;Lkotlin/jvm/functions/Function5;Lkotlin/jvm/functions/Function3;Landroidx/compose/runtime/Composer;III)V - public static final fun Markdown (Ljava/lang/String;Lcom/mikepenz/markdown/model/MarkdownColors;Lcom/mikepenz/markdown/model/MarkdownTypography;Landroidx/compose/ui/Modifier;Lcom/mikepenz/markdown/model/MarkdownPadding;Lcom/mikepenz/markdown/model/MarkdownDimens;Lorg/intellij/markdown/flavours/MarkdownFlavourDescriptor;Lorg/intellij/markdown/parser/MarkdownParser;Lcom/mikepenz/markdown/model/ImageTransformer;Lcom/mikepenz/markdown/model/MarkdownAnnotator;Lcom/mikepenz/markdown/model/MarkdownExtendedSpans;Lcom/mikepenz/markdown/model/MarkdownInlineContent;Lcom/mikepenz/markdown/compose/components/MarkdownComponents;Lcom/mikepenz/markdown/model/MarkdownAnimations;Lcom/mikepenz/markdown/model/ReferenceLinkHandler;Lkotlin/jvm/functions/Function3;Lkotlin/jvm/functions/Function5;Lkotlin/jvm/functions/Function3;Landroidx/compose/runtime/Composer;III)V + public static final fun Markdown (Ljava/lang/String;Lcom/mikepenz/markdown/model/MarkdownColors;Lcom/mikepenz/markdown/model/MarkdownTypography;Landroidx/compose/ui/Modifier;Lcom/mikepenz/markdown/model/MarkdownPadding;Lcom/mikepenz/markdown/model/MarkdownDimens;Lorg/intellij/markdown/flavours/MarkdownFlavourDescriptor;Lorg/intellij/markdown/parser/MarkdownParser;Lcom/mikepenz/markdown/model/ImageTransformer;Lcom/mikepenz/markdown/model/MarkdownAnnotator;Lcom/mikepenz/markdown/model/MarkdownExtendedSpans;Lcom/mikepenz/markdown/model/MarkdownInlineContent;Lcom/mikepenz/markdown/compose/components/MarkdownComponents;Lcom/mikepenz/markdown/model/MarkdownAnimations;Lcom/mikepenz/markdown/model/ReferenceLinkHandler;ZZZLkotlin/jvm/functions/Function3;Lkotlin/jvm/functions/Function5;Lkotlin/jvm/functions/Function3;Landroidx/compose/runtime/Composer;IIII)V public static final fun MarkdownSuccess (Lcom/mikepenz/markdown/model/State$Success;Lcom/mikepenz/markdown/compose/components/MarkdownComponents;Landroidx/compose/ui/Modifier;Landroidx/compose/runtime/Composer;II)V } diff --git a/multiplatform-markdown-renderer/api/multiplatform-markdown-renderer.klib.api b/multiplatform-markdown-renderer/api/multiplatform-markdown-renderer.klib.api index 832decd..bf2b60a 100644 --- a/multiplatform-markdown-renderer/api/multiplatform-markdown-renderer.klib.api +++ b/multiplatform-markdown-renderer/api/multiplatform-markdown-renderer.klib.api @@ -788,7 +788,7 @@ final fun com.mikepenz.markdown.compose.extendedspans/rememberSquigglyUnderlineA final fun com.mikepenz.markdown.compose/LazyMarkdownSuccess(com.mikepenz.markdown.model/State.Success, com.mikepenz.markdown.compose.components/MarkdownComponents, androidx.compose.ui/Modifier?, androidx.compose.foundation.layout/PaddingValues?, androidx.compose.runtime/Composer?, kotlin/Int, kotlin/Int) // com.mikepenz.markdown.compose/LazyMarkdownSuccess|LazyMarkdownSuccess(com.mikepenz.markdown.model.State.Success;com.mikepenz.markdown.compose.components.MarkdownComponents;androidx.compose.ui.Modifier?;androidx.compose.foundation.layout.PaddingValues?;androidx.compose.runtime.Composer?;kotlin.Int;kotlin.Int){}[0] final fun com.mikepenz.markdown.compose/Markdown(com.mikepenz.markdown.model/MarkdownState, com.mikepenz.markdown.model/MarkdownColors, com.mikepenz.markdown.model/MarkdownTypography, androidx.compose.ui/Modifier?, com.mikepenz.markdown.model/MarkdownPadding?, com.mikepenz.markdown.model/MarkdownDimens?, com.mikepenz.markdown.model/ImageTransformer?, com.mikepenz.markdown.model/MarkdownAnnotator?, com.mikepenz.markdown.model/MarkdownExtendedSpans?, com.mikepenz.markdown.model/MarkdownInlineContent?, com.mikepenz.markdown.compose.components/MarkdownComponents?, com.mikepenz.markdown.model/MarkdownAnimations?, kotlin/Function3?, kotlin/Function5?, kotlin/Function3?, androidx.compose.runtime/Composer?, kotlin/Int, kotlin/Int, kotlin/Int) // com.mikepenz.markdown.compose/Markdown|Markdown(com.mikepenz.markdown.model.MarkdownState;com.mikepenz.markdown.model.MarkdownColors;com.mikepenz.markdown.model.MarkdownTypography;androidx.compose.ui.Modifier?;com.mikepenz.markdown.model.MarkdownPadding?;com.mikepenz.markdown.model.MarkdownDimens?;com.mikepenz.markdown.model.ImageTransformer?;com.mikepenz.markdown.model.MarkdownAnnotator?;com.mikepenz.markdown.model.MarkdownExtendedSpans?;com.mikepenz.markdown.model.MarkdownInlineContent?;com.mikepenz.markdown.compose.components.MarkdownComponents?;com.mikepenz.markdown.model.MarkdownAnimations?;kotlin.Function3?;kotlin.Function5?;kotlin.Function3?;androidx.compose.runtime.Composer?;kotlin.Int;kotlin.Int;kotlin.Int){}[0] final fun com.mikepenz.markdown.compose/Markdown(com.mikepenz.markdown.model/State, com.mikepenz.markdown.model/MarkdownColors, com.mikepenz.markdown.model/MarkdownTypography, androidx.compose.ui/Modifier?, com.mikepenz.markdown.model/MarkdownPadding?, com.mikepenz.markdown.model/MarkdownDimens?, com.mikepenz.markdown.model/ImageTransformer?, com.mikepenz.markdown.model/MarkdownAnnotator?, com.mikepenz.markdown.model/MarkdownExtendedSpans?, com.mikepenz.markdown.model/MarkdownInlineContent?, com.mikepenz.markdown.compose.components/MarkdownComponents?, com.mikepenz.markdown.model/MarkdownAnimations?, kotlin/Function3?, kotlin/Function5?, kotlin/Function3?, androidx.compose.runtime/Composer?, kotlin/Int, kotlin/Int, kotlin/Int) // com.mikepenz.markdown.compose/Markdown|Markdown(com.mikepenz.markdown.model.State;com.mikepenz.markdown.model.MarkdownColors;com.mikepenz.markdown.model.MarkdownTypography;androidx.compose.ui.Modifier?;com.mikepenz.markdown.model.MarkdownPadding?;com.mikepenz.markdown.model.MarkdownDimens?;com.mikepenz.markdown.model.ImageTransformer?;com.mikepenz.markdown.model.MarkdownAnnotator?;com.mikepenz.markdown.model.MarkdownExtendedSpans?;com.mikepenz.markdown.model.MarkdownInlineContent?;com.mikepenz.markdown.compose.components.MarkdownComponents?;com.mikepenz.markdown.model.MarkdownAnimations?;kotlin.Function3?;kotlin.Function5?;kotlin.Function3?;androidx.compose.runtime.Composer?;kotlin.Int;kotlin.Int;kotlin.Int){}[0] -final fun com.mikepenz.markdown.compose/Markdown(kotlin/String, com.mikepenz.markdown.model/MarkdownColors, com.mikepenz.markdown.model/MarkdownTypography, androidx.compose.ui/Modifier?, com.mikepenz.markdown.model/MarkdownPadding?, com.mikepenz.markdown.model/MarkdownDimens?, org.intellij.markdown.flavours/MarkdownFlavourDescriptor?, org.intellij.markdown.parser/MarkdownParser?, com.mikepenz.markdown.model/ImageTransformer?, com.mikepenz.markdown.model/MarkdownAnnotator?, com.mikepenz.markdown.model/MarkdownExtendedSpans?, com.mikepenz.markdown.model/MarkdownInlineContent?, com.mikepenz.markdown.compose.components/MarkdownComponents?, com.mikepenz.markdown.model/MarkdownAnimations?, com.mikepenz.markdown.model/ReferenceLinkHandler?, kotlin/Function3?, kotlin/Function5?, kotlin/Function3?, androidx.compose.runtime/Composer?, kotlin/Int, kotlin/Int, kotlin/Int) // com.mikepenz.markdown.compose/Markdown|Markdown(kotlin.String;com.mikepenz.markdown.model.MarkdownColors;com.mikepenz.markdown.model.MarkdownTypography;androidx.compose.ui.Modifier?;com.mikepenz.markdown.model.MarkdownPadding?;com.mikepenz.markdown.model.MarkdownDimens?;org.intellij.markdown.flavours.MarkdownFlavourDescriptor?;org.intellij.markdown.parser.MarkdownParser?;com.mikepenz.markdown.model.ImageTransformer?;com.mikepenz.markdown.model.MarkdownAnnotator?;com.mikepenz.markdown.model.MarkdownExtendedSpans?;com.mikepenz.markdown.model.MarkdownInlineContent?;com.mikepenz.markdown.compose.components.MarkdownComponents?;com.mikepenz.markdown.model.MarkdownAnimations?;com.mikepenz.markdown.model.ReferenceLinkHandler?;kotlin.Function3?;kotlin.Function5?;kotlin.Function3?;androidx.compose.runtime.Composer?;kotlin.Int;kotlin.Int;kotlin.Int){}[0] +final fun com.mikepenz.markdown.compose/Markdown(kotlin/String, com.mikepenz.markdown.model/MarkdownColors, com.mikepenz.markdown.model/MarkdownTypography, androidx.compose.ui/Modifier?, com.mikepenz.markdown.model/MarkdownPadding?, com.mikepenz.markdown.model/MarkdownDimens?, org.intellij.markdown.flavours/MarkdownFlavourDescriptor?, org.intellij.markdown.parser/MarkdownParser?, com.mikepenz.markdown.model/ImageTransformer?, com.mikepenz.markdown.model/MarkdownAnnotator?, com.mikepenz.markdown.model/MarkdownExtendedSpans?, com.mikepenz.markdown.model/MarkdownInlineContent?, com.mikepenz.markdown.compose.components/MarkdownComponents?, com.mikepenz.markdown.model/MarkdownAnimations?, com.mikepenz.markdown.model/ReferenceLinkHandler?, kotlin/Boolean, kotlin/Boolean, kotlin/Boolean, kotlin/Function3?, kotlin/Function5?, kotlin/Function3?, androidx.compose.runtime/Composer?, kotlin/Int, kotlin/Int, kotlin/Int, kotlin/Int) // com.mikepenz.markdown.compose/Markdown|Markdown(kotlin.String;com.mikepenz.markdown.model.MarkdownColors;com.mikepenz.markdown.model.MarkdownTypography;androidx.compose.ui.Modifier?;com.mikepenz.markdown.model.MarkdownPadding?;com.mikepenz.markdown.model.MarkdownDimens?;org.intellij.markdown.flavours.MarkdownFlavourDescriptor?;org.intellij.markdown.parser.MarkdownParser?;com.mikepenz.markdown.model.ImageTransformer?;com.mikepenz.markdown.model.MarkdownAnnotator?;com.mikepenz.markdown.model.MarkdownExtendedSpans?;com.mikepenz.markdown.model.MarkdownInlineContent?;com.mikepenz.markdown.compose.components.MarkdownComponents?;com.mikepenz.markdown.model.MarkdownAnimations?;com.mikepenz.markdown.model.ReferenceLinkHandler?;kotlin.Boolean;kotlin.Boolean;kotlin.Boolean;kotlin.Function3?;kotlin.Function5?;kotlin.Function3?;androidx.compose.runtime.Composer?;kotlin.Int;kotlin.Int;kotlin.Int;kotlin.Int){}[0] final fun com.mikepenz.markdown.compose/MarkdownElement(org.intellij.markdown.ast/ASTNode, com.mikepenz.markdown.compose.components/MarkdownComponents, kotlin/String, kotlin/Boolean, androidx.compose.runtime/Composer?, kotlin/Int, kotlin/Int) // com.mikepenz.markdown.compose/MarkdownElement|MarkdownElement(org.intellij.markdown.ast.ASTNode;com.mikepenz.markdown.compose.components.MarkdownComponents;kotlin.String;kotlin.Boolean;androidx.compose.runtime.Composer?;kotlin.Int;kotlin.Int){}[0] final fun com.mikepenz.markdown.compose/MarkdownSuccess(com.mikepenz.markdown.model/State.Success, com.mikepenz.markdown.compose.components/MarkdownComponents, androidx.compose.ui/Modifier?, androidx.compose.runtime/Composer?, kotlin/Int, kotlin/Int) // com.mikepenz.markdown.compose/MarkdownSuccess|MarkdownSuccess(com.mikepenz.markdown.model.State.Success;com.mikepenz.markdown.compose.components.MarkdownComponents;androidx.compose.ui.Modifier?;androidx.compose.runtime.Composer?;kotlin.Int;kotlin.Int){}[0] final fun com.mikepenz.markdown.model/com_mikepenz_markdown_model_DefaultMarkdownAnimation$stableprop_getter(): kotlin/Int // com.mikepenz.markdown.model/com_mikepenz_markdown_model_DefaultMarkdownAnimation$stableprop_getter|com_mikepenz_markdown_model_DefaultMarkdownAnimation$stableprop_getter(){}[0] diff --git a/multiplatform-markdown-renderer/src/commonMain/kotlin/com/mikepenz/markdown/compose/Markdown.kt b/multiplatform-markdown-renderer/src/commonMain/kotlin/com/mikepenz/markdown/compose/Markdown.kt index 00fc000..4a328ce 100644 --- a/multiplatform-markdown-renderer/src/commonMain/kotlin/com/mikepenz/markdown/compose/Markdown.kt +++ b/multiplatform-markdown-renderer/src/commonMain/kotlin/com/mikepenz/markdown/compose/Markdown.kt @@ -8,6 +8,7 @@ import androidx.compose.runtime.CompositionLocalProvider import androidx.compose.runtime.collectAsState import androidx.compose.runtime.getValue import androidx.compose.ui.Modifier +import androidx.compose.ui.platform.LocalInspectionMode import com.mikepenz.markdown.compose.components.MarkdownComponents import com.mikepenz.markdown.compose.components.markdownComponents import com.mikepenz.markdown.model.ImageTransformer @@ -74,6 +75,13 @@ import org.intellij.markdown.parser.MarkdownParser * @param components The custom components to be used for rendering different markdown elements. * @param referenceLinkHandler The handler for resolving reference-style links in markdown. * @param animations The animation configurations for interactive elements. + * @param lookupLinks Whether to lookup and resolve links in the parsed markdown tree. Defaults to true. + * @param retainState Whether to retain the previous rendered content when the markdown content changes, + * avoiding the display of a loading state during updates. Defaults to false. + * When true, the previous content remains visible while new content is being parsed. + * @param immediate Whether to parse the content immediately in a blocking manner. Defaults to false + * (true in inspection mode). WARNING: Setting this to true is not advised as it will + * block the composition and may cause UI performance issues. * @param loading A composable function to be displayed while the content is being parsed and prepared. * @param success A composable function to be displayed with the successfully parsed markdown content. * It receives the state, components, and modifier as parameters. @@ -98,6 +106,9 @@ fun Markdown( components: MarkdownComponents = markdownComponents(), animations: MarkdownAnimations = markdownAnimations(), referenceLinkHandler: ReferenceLinkHandler = ReferenceLinkHandlerImpl(), + lookupLinks: Boolean = true, + retainState: Boolean = false, + immediate: Boolean = LocalInspectionMode.current, loading: @Composable (modifier: Modifier) -> Unit = { Box(modifier) }, success: @Composable (state: State.Success, components: MarkdownComponents, modifier: Modifier) -> Unit = { state, components, modifier -> MarkdownSuccess(state = state, components = components, modifier = modifier) @@ -106,9 +117,12 @@ fun Markdown( ) { val markdownState = rememberMarkdownState( content = content, + lookupLinks = lookupLinks, + retainState = retainState, flavour = flavour, parser = parser, referenceLinkHandler = referenceLinkHandler, + immediate = immediate, ) Markdown(