Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
38 changes: 38 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -414,6 +414,44 @@ val markdown = """
Markdown(markdown)
```

### Alert Support

The library renders [GitHub alerts](https://github.com/orgs/community/discussions/16925) — `NOTE`,
`TIP`, `IMPORTANT`, `WARNING` and `CAUTION` — as an accent bar with an icon and a title.

```kotlin
val markdown = """
> [!NOTE]
> Useful information that users should know, even when skimming content.
""".trimIndent()

Markdown(markdown)
```

The accent colors, dimensions and paddings are grouped into dedicated models, the title style is
exposed via `markdownTypography(alertTitle = ...)`:

```kotlin
Markdown(
markdown,
colors = markdownColor(alert = markdownAlertColors(note = Color.Blue)),
dimens = markdownDimens(alert = markdownAlertDimens(barThickness = 2.dp)),
padding = markdownPadding(alert = markdownAlertPadding(iconSpacing = 12.dp)),
)
```

The icons are swappable via `LocalMarkdownAlertIcons`:

```kotlin
CompositionLocalProvider(
LocalMarkdownAlertIcons provides markdownAlertIcons(note = Icons.Outlined.Info)
) {
Markdown(markdown)
}
```

To fully replace the rendering, override the `alert` component through `markdownComponents()`.

</p>
</details>

Expand Down
2 changes: 1 addition & 1 deletion gradle/libs.versions.toml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
androidx-activityCompose = "1.13.0"
coil = "3.5.0"
coil2 = "2.7.0"
markdown = "0.7.5"
markdown = "0.7.6"
ktor = "3.5.1"
highlights = "1.1.0"

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ public final class com/mikepenz/markdown/m2/ComposableSingletons$MarkdownKt {
}

public final class com/mikepenz/markdown/m2/MarkdownColorsKt {
public static final fun markdownColor-zjMxDiM (JJJJJLandroidx/compose/runtime/Composer;II)Lcom/mikepenz/markdown/model/MarkdownColors;
public static final fun markdownColor-BI4oR5s (JJJJJZLcom/mikepenz/markdown/model/MarkdownAlertColors;Landroidx/compose/runtime/Composer;II)Lcom/mikepenz/markdown/model/MarkdownColors;
}

public final class com/mikepenz/markdown/m2/MarkdownKt {
Expand All @@ -22,7 +22,7 @@ public final class com/mikepenz/markdown/m2/MarkdownKt {
}

public final class com/mikepenz/markdown/m2/MarkdownTypographyKt {
public static final fun markdownTypography (Landroidx/compose/ui/text/TextStyle;Landroidx/compose/ui/text/TextStyle;Landroidx/compose/ui/text/TextStyle;Landroidx/compose/ui/text/TextStyle;Landroidx/compose/ui/text/TextStyle;Landroidx/compose/ui/text/TextStyle;Landroidx/compose/ui/text/TextStyle;Landroidx/compose/ui/text/TextStyle;Landroidx/compose/ui/text/TextStyle;Landroidx/compose/ui/text/TextStyle;Landroidx/compose/ui/text/TextStyle;Landroidx/compose/ui/text/TextStyle;Landroidx/compose/ui/text/TextStyle;Landroidx/compose/ui/text/TextStyle;Landroidx/compose/ui/text/TextLinkStyles;Landroidx/compose/ui/text/TextStyle;Landroidx/compose/runtime/Composer;III)Lcom/mikepenz/markdown/model/MarkdownTypography;
public static final fun markdownTypography (Landroidx/compose/ui/text/TextStyle;Landroidx/compose/ui/text/TextStyle;Landroidx/compose/ui/text/TextStyle;Landroidx/compose/ui/text/TextStyle;Landroidx/compose/ui/text/TextStyle;Landroidx/compose/ui/text/TextStyle;Landroidx/compose/ui/text/TextStyle;Landroidx/compose/ui/text/TextStyle;Landroidx/compose/ui/text/TextStyle;Landroidx/compose/ui/text/TextStyle;Landroidx/compose/ui/text/TextStyle;Landroidx/compose/ui/text/TextStyle;Landroidx/compose/ui/text/TextStyle;Landroidx/compose/ui/text/TextStyle;Landroidx/compose/ui/text/TextLinkStyles;Landroidx/compose/ui/text/TextStyle;Landroidx/compose/ui/text/TextStyle;Landroidx/compose/runtime/Composer;III)Lcom/mikepenz/markdown/model/MarkdownTypography;
}

public final class com/mikepenz/markdown/m2/elements/ComposableSingletons$MarkdownCheckBoxKt {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,5 +11,5 @@ final fun com.mikepenz.markdown.m2/Markdown(com.mikepenz.markdown.model/Markdown
final fun com.mikepenz.markdown.m2/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<androidx.compose.ui/Modifier, androidx.compose.runtime/Composer, kotlin/Int, kotlin/Unit>?, kotlin/Function5<com.mikepenz.markdown.model/State.Success, com.mikepenz.markdown.compose.components/MarkdownComponents, androidx.compose.ui/Modifier, androidx.compose.runtime/Composer, kotlin/Int, kotlin/Unit>?, kotlin/Function3<androidx.compose.ui/Modifier, androidx.compose.runtime/Composer, kotlin/Int, kotlin/Unit>?, androidx.compose.runtime/Composer?, kotlin/Int, kotlin/Int, kotlin/Int) // com.mikepenz.markdown.m2/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<androidx.compose.ui.Modifier,androidx.compose.runtime.Composer,kotlin.Int,kotlin.Unit>?;kotlin.Function5<com.mikepenz.markdown.model.State.Success,com.mikepenz.markdown.compose.components.MarkdownComponents,androidx.compose.ui.Modifier,androidx.compose.runtime.Composer,kotlin.Int,kotlin.Unit>?;kotlin.Function3<androidx.compose.ui.Modifier,androidx.compose.runtime.Composer,kotlin.Int,kotlin.Unit>?;androidx.compose.runtime.Composer?;kotlin.Int;kotlin.Int;kotlin.Int){}[0]
final fun com.mikepenz.markdown.m2/Markdown(com.mikepenz.markdown.model/StreamingMarkdownState, 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/Function5<com.mikepenz.markdown.model/StreamingMarkdownState.Snapshot, com.mikepenz.markdown.compose.components/MarkdownComponents, androidx.compose.ui/Modifier, androidx.compose.runtime/Composer, kotlin/Int, kotlin/Unit>?, androidx.compose.runtime/Composer?, kotlin/Int, kotlin/Int, kotlin/Int) // com.mikepenz.markdown.m2/Markdown|Markdown(com.mikepenz.markdown.model.StreamingMarkdownState;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.Function5<com.mikepenz.markdown.model.StreamingMarkdownState.Snapshot,com.mikepenz.markdown.compose.components.MarkdownComponents,androidx.compose.ui.Modifier,androidx.compose.runtime.Composer,kotlin.Int,kotlin.Unit>?;androidx.compose.runtime.Composer?;kotlin.Int;kotlin.Int;kotlin.Int){}[0]
final fun com.mikepenz.markdown.m2/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<androidx.compose.ui/Modifier, androidx.compose.runtime/Composer, kotlin/Int, kotlin/Unit>?, kotlin/Function5<com.mikepenz.markdown.model/State.Success, com.mikepenz.markdown.compose.components/MarkdownComponents, androidx.compose.ui/Modifier, androidx.compose.runtime/Composer, kotlin/Int, kotlin/Unit>?, kotlin/Function3<androidx.compose.ui/Modifier, androidx.compose.runtime/Composer, kotlin/Int, kotlin/Unit>?, androidx.compose.runtime/Composer?, kotlin/Int, kotlin/Int, kotlin/Int) // com.mikepenz.markdown.m2/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<androidx.compose.ui.Modifier,androidx.compose.runtime.Composer,kotlin.Int,kotlin.Unit>?;kotlin.Function5<com.mikepenz.markdown.model.State.Success,com.mikepenz.markdown.compose.components.MarkdownComponents,androidx.compose.ui.Modifier,androidx.compose.runtime.Composer,kotlin.Int,kotlin.Unit>?;kotlin.Function3<androidx.compose.ui.Modifier,androidx.compose.runtime.Composer,kotlin.Int,kotlin.Unit>?;androidx.compose.runtime.Composer?;kotlin.Int;kotlin.Int;kotlin.Int){}[0]
final fun com.mikepenz.markdown.m2/markdownColor(androidx.compose.ui.graphics/Color, androidx.compose.ui.graphics/Color, androidx.compose.ui.graphics/Color, androidx.compose.ui.graphics/Color, androidx.compose.ui.graphics/Color, androidx.compose.runtime/Composer?, kotlin/Int, kotlin/Int): com.mikepenz.markdown.model/MarkdownColors // com.mikepenz.markdown.m2/markdownColor|markdownColor(androidx.compose.ui.graphics.Color;androidx.compose.ui.graphics.Color;androidx.compose.ui.graphics.Color;androidx.compose.ui.graphics.Color;androidx.compose.ui.graphics.Color;androidx.compose.runtime.Composer?;kotlin.Int;kotlin.Int){}[0]
final fun com.mikepenz.markdown.m2/markdownTypography(androidx.compose.ui.text/TextStyle?, androidx.compose.ui.text/TextStyle?, androidx.compose.ui.text/TextStyle?, androidx.compose.ui.text/TextStyle?, androidx.compose.ui.text/TextStyle?, androidx.compose.ui.text/TextStyle?, androidx.compose.ui.text/TextStyle?, androidx.compose.ui.text/TextStyle?, androidx.compose.ui.text/TextStyle?, androidx.compose.ui.text/TextStyle?, androidx.compose.ui.text/TextStyle?, androidx.compose.ui.text/TextStyle?, androidx.compose.ui.text/TextStyle?, androidx.compose.ui.text/TextStyle?, androidx.compose.ui.text/TextLinkStyles?, androidx.compose.ui.text/TextStyle?, androidx.compose.runtime/Composer?, kotlin/Int, kotlin/Int, kotlin/Int): com.mikepenz.markdown.model/MarkdownTypography // com.mikepenz.markdown.m2/markdownTypography|markdownTypography(androidx.compose.ui.text.TextStyle?;androidx.compose.ui.text.TextStyle?;androidx.compose.ui.text.TextStyle?;androidx.compose.ui.text.TextStyle?;androidx.compose.ui.text.TextStyle?;androidx.compose.ui.text.TextStyle?;androidx.compose.ui.text.TextStyle?;androidx.compose.ui.text.TextStyle?;androidx.compose.ui.text.TextStyle?;androidx.compose.ui.text.TextStyle?;androidx.compose.ui.text.TextStyle?;androidx.compose.ui.text.TextStyle?;androidx.compose.ui.text.TextStyle?;androidx.compose.ui.text.TextStyle?;androidx.compose.ui.text.TextLinkStyles?;androidx.compose.ui.text.TextStyle?;androidx.compose.runtime.Composer?;kotlin.Int;kotlin.Int;kotlin.Int){}[0]
final fun com.mikepenz.markdown.m2/markdownColor(androidx.compose.ui.graphics/Color, androidx.compose.ui.graphics/Color, androidx.compose.ui.graphics/Color, androidx.compose.ui.graphics/Color, androidx.compose.ui.graphics/Color, kotlin/Boolean, com.mikepenz.markdown.model/MarkdownAlertColors?, androidx.compose.runtime/Composer?, kotlin/Int, kotlin/Int): com.mikepenz.markdown.model/MarkdownColors // com.mikepenz.markdown.m2/markdownColor|markdownColor(androidx.compose.ui.graphics.Color;androidx.compose.ui.graphics.Color;androidx.compose.ui.graphics.Color;androidx.compose.ui.graphics.Color;androidx.compose.ui.graphics.Color;kotlin.Boolean;com.mikepenz.markdown.model.MarkdownAlertColors?;androidx.compose.runtime.Composer?;kotlin.Int;kotlin.Int){}[0]
final fun com.mikepenz.markdown.m2/markdownTypography(androidx.compose.ui.text/TextStyle?, androidx.compose.ui.text/TextStyle?, androidx.compose.ui.text/TextStyle?, androidx.compose.ui.text/TextStyle?, androidx.compose.ui.text/TextStyle?, androidx.compose.ui.text/TextStyle?, androidx.compose.ui.text/TextStyle?, androidx.compose.ui.text/TextStyle?, androidx.compose.ui.text/TextStyle?, androidx.compose.ui.text/TextStyle?, androidx.compose.ui.text/TextStyle?, androidx.compose.ui.text/TextStyle?, androidx.compose.ui.text/TextStyle?, androidx.compose.ui.text/TextStyle?, androidx.compose.ui.text/TextLinkStyles?, androidx.compose.ui.text/TextStyle?, androidx.compose.ui.text/TextStyle?, androidx.compose.runtime/Composer?, kotlin/Int, kotlin/Int, kotlin/Int): com.mikepenz.markdown.model/MarkdownTypography // com.mikepenz.markdown.m2/markdownTypography|markdownTypography(androidx.compose.ui.text.TextStyle?;androidx.compose.ui.text.TextStyle?;androidx.compose.ui.text.TextStyle?;androidx.compose.ui.text.TextStyle?;androidx.compose.ui.text.TextStyle?;androidx.compose.ui.text.TextStyle?;androidx.compose.ui.text.TextStyle?;androidx.compose.ui.text.TextStyle?;androidx.compose.ui.text.TextStyle?;androidx.compose.ui.text.TextStyle?;androidx.compose.ui.text.TextStyle?;androidx.compose.ui.text.TextStyle?;androidx.compose.ui.text.TextStyle?;androidx.compose.ui.text.TextStyle?;androidx.compose.ui.text.TextLinkStyles?;androidx.compose.ui.text.TextStyle?;androidx.compose.ui.text.TextStyle?;androidx.compose.runtime.Composer?;kotlin.Int;kotlin.Int;kotlin.Int){}[0]
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,9 @@ import androidx.compose.material.MaterialTheme
import androidx.compose.runtime.Composable
import androidx.compose.ui.graphics.Color
import com.mikepenz.markdown.model.DefaultMarkdownColors
import com.mikepenz.markdown.model.MarkdownAlertColors
import com.mikepenz.markdown.model.MarkdownColors
import com.mikepenz.markdown.model.markdownAlertColors

@Composable
fun markdownColor(
Expand All @@ -13,10 +15,13 @@ fun markdownColor(
inlineCodeBackground: Color = codeBackground,
dividerColor: Color = MaterialTheme.colors.onSurface.copy(alpha = 0.12f),
tableBackground: Color = MaterialTheme.colors.onBackground.copy(alpha = 0.02f),
darkTheme: Boolean = !MaterialTheme.colors.isLight,
alert: MarkdownAlertColors = markdownAlertColors(darkTheme),
): MarkdownColors = DefaultMarkdownColors(
text = text,
codeBackground = codeBackground,
inlineCodeBackground = inlineCodeBackground,
dividerColor = dividerColor,
tableBackground = tableBackground,
alert = alert,
)
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ fun markdownTypography(
).toSpanStyle()
),
table: TextStyle = text,
alertTitle: TextStyle = MaterialTheme.typography.body1.copy(fontWeight = FontWeight.Bold),
): MarkdownTypography = DefaultMarkdownTypography(
h1 = h1,
h2 = h2,
Expand All @@ -54,4 +55,5 @@ fun markdownTypography(
list = list,
textLink = textLink,
table = table,
alertTitle = alertTitle,
)
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ public final class com/mikepenz/markdown/m3/ComposableSingletons$MarkdownKt {
}

public final class com/mikepenz/markdown/m3/MarkdownColorsKt {
public static final fun markdownColor-zjMxDiM (JJJJJLandroidx/compose/runtime/Composer;II)Lcom/mikepenz/markdown/model/MarkdownColors;
public static final fun markdownColor-BI4oR5s (JJJJJZLcom/mikepenz/markdown/model/MarkdownAlertColors;Landroidx/compose/runtime/Composer;II)Lcom/mikepenz/markdown/model/MarkdownColors;
}

public final class com/mikepenz/markdown/m3/MarkdownKt {
Expand All @@ -22,7 +22,7 @@ public final class com/mikepenz/markdown/m3/MarkdownKt {
}

public final class com/mikepenz/markdown/m3/MarkdownTypographyKt {
public static final fun markdownTypography (Landroidx/compose/ui/text/TextStyle;Landroidx/compose/ui/text/TextStyle;Landroidx/compose/ui/text/TextStyle;Landroidx/compose/ui/text/TextStyle;Landroidx/compose/ui/text/TextStyle;Landroidx/compose/ui/text/TextStyle;Landroidx/compose/ui/text/TextStyle;Landroidx/compose/ui/text/TextStyle;Landroidx/compose/ui/text/TextStyle;Landroidx/compose/ui/text/TextStyle;Landroidx/compose/ui/text/TextStyle;Landroidx/compose/ui/text/TextStyle;Landroidx/compose/ui/text/TextStyle;Landroidx/compose/ui/text/TextStyle;Landroidx/compose/ui/text/TextLinkStyles;Landroidx/compose/ui/text/TextStyle;Landroidx/compose/runtime/Composer;III)Lcom/mikepenz/markdown/model/MarkdownTypography;
public static final fun markdownTypography (Landroidx/compose/ui/text/TextStyle;Landroidx/compose/ui/text/TextStyle;Landroidx/compose/ui/text/TextStyle;Landroidx/compose/ui/text/TextStyle;Landroidx/compose/ui/text/TextStyle;Landroidx/compose/ui/text/TextStyle;Landroidx/compose/ui/text/TextStyle;Landroidx/compose/ui/text/TextStyle;Landroidx/compose/ui/text/TextStyle;Landroidx/compose/ui/text/TextStyle;Landroidx/compose/ui/text/TextStyle;Landroidx/compose/ui/text/TextStyle;Landroidx/compose/ui/text/TextStyle;Landroidx/compose/ui/text/TextStyle;Landroidx/compose/ui/text/TextLinkStyles;Landroidx/compose/ui/text/TextStyle;Landroidx/compose/ui/text/TextStyle;Landroidx/compose/runtime/Composer;III)Lcom/mikepenz/markdown/model/MarkdownTypography;
}

public final class com/mikepenz/markdown/m3/elements/ComposableSingletons$MarkdownCheckBoxKt {
Expand Down
Loading
Loading