
Declarative Compose Markdown renderer using CommonMark parsing, modular plugin architecture for tables/images/HTML, themeable typography/colors, and extensible parser extensions for customizable rendering.
A Compose Multiplatform Markdown rendering library that supports Android, iOS, Desktop (JVM), and WebAssembly (Wasm).
Looking for Android-only with richer Markdown compatibility? Check out ComposeMarkdown — it offers deeper Markdown spec support (powered by Flexmark) and more rendering features for Android projects.
| Desktop | Android | WebAssembly (Wasm) |
|---|---|---|
![]() |
![]() |
![]() |
commonmark-kotlin parser (pure Kotlin Multiplatform)| Platform | Status |
|---|---|
| Android | Supported |
| iOS (arm64, x64, simulator) | Supported |
| Desktop (JVM) | Supported |
| WebAssembly (Wasm) | Supported |
Add the dependency to your project's build.gradle.kts:
// In your shared module's build.gradle.kts
kotlin {
sourceSets {
val commonMain by getting {
dependencies {
implementation("io.github.feiyin0719:markdown-multiplatform:<version>")
}
}
}
}| Plugin | Artifact | Description |
|---|---|---|
| Table | markdown-multiplatform-table |
GFM table support |
| Image | markdown-multiplatform-image |
Markdown image rendering |
| HTML | markdown-multiplatform-html |
HTML inline tag support |
dependencies {
implementation("io.github.feiyin0719:markdown-multiplatform-table:<version>")
implementation("io.github.feiyin0719:markdown-multiplatform-image:<version>")
implementation("io.github.feiyin0719:markdown-multiplatform-html:<version>")
}import io.github.feiyin0719.markdown.multiplatform.MarkdownView
@Composable
fun SimpleMarkdownExample() {
val markdownContent = """
# Hello Compose Markdown Multiplatform
This is a **cross-platform** Markdown rendering library.
- Android
- iOS
- Desktop
- Web (Wasm)
""".trimIndent()
MarkdownView(
content = markdownContent,
modifier = Modifier.fillMaxSize(),
)
}| Technology | Purpose |
|---|---|
| Compose Multiplatform | Cross-platform UI framework |
| commonmark-kotlin | Markdown parsing engine (pure Kotlin Multiplatform) |
| Kotlin Coroutines | Asynchronous processing |
| Material Design 3 | Design language specification |
For full API signatures and detailed parameter explanations, see the dedicated API document:
We welcome contributions! To get started:
git checkout -b feat/my-feature
./gradlew ktlintFormat
./gradlew ktlintCheck
./gradlew assemble
feat:, fix:, docs:, etc.)Released under the MIT License. See LICENSE for details.
Made with love by the Compose Markdown team
A Compose Multiplatform Markdown rendering library that supports Android, iOS, Desktop (JVM), and WebAssembly (Wasm).
Looking for Android-only with richer Markdown compatibility? Check out ComposeMarkdown — it offers deeper Markdown spec support (powered by Flexmark) and more rendering features for Android projects.
| Desktop | Android | WebAssembly (Wasm) |
|---|---|---|
![]() |
![]() |
![]() |
commonmark-kotlin parser (pure Kotlin Multiplatform)| Platform | Status |
|---|---|
| Android | Supported |
| iOS (arm64, x64, simulator) | Supported |
| Desktop (JVM) | Supported |
| WebAssembly (Wasm) | Supported |
Add the dependency to your project's build.gradle.kts:
// In your shared module's build.gradle.kts
kotlin {
sourceSets {
val commonMain by getting {
dependencies {
implementation("io.github.feiyin0719:markdown-multiplatform:<version>")
}
}
}
}| Plugin | Artifact | Description |
|---|---|---|
| Table | markdown-multiplatform-table |
GFM table support |
| Image | markdown-multiplatform-image |
Markdown image rendering |
| HTML | markdown-multiplatform-html |
HTML inline tag support |
dependencies {
implementation("io.github.feiyin0719:markdown-multiplatform-table:<version>")
implementation("io.github.feiyin0719:markdown-multiplatform-image:<version>")
implementation("io.github.feiyin0719:markdown-multiplatform-html:<version>")
}import io.github.feiyin0719.markdown.multiplatform.MarkdownView
@Composable
fun SimpleMarkdownExample() {
val markdownContent = """
# Hello Compose Markdown Multiplatform
This is a **cross-platform** Markdown rendering library.
- Android
- iOS
- Desktop
- Web (Wasm)
""".trimIndent()
MarkdownView(
content = markdownContent,
modifier = Modifier.fillMaxSize(),
)
}| Technology | Purpose |
|---|---|
| Compose Multiplatform | Cross-platform UI framework |
| commonmark-kotlin | Markdown parsing engine (pure Kotlin Multiplatform) |
| Kotlin Coroutines | Asynchronous processing |
| Material Design 3 | Design language specification |
For full API signatures and detailed parameter explanations, see the dedicated API document:
We welcome contributions! To get started:
git checkout -b feat/my-feature
./gradlew ktlintFormat
./gradlew ktlintCheck
./gradlew assemble
feat:, fix:, docs:, etc.)Released under the MIT License. See LICENSE for details.
Made with love by the Compose Markdown team