Compatibility
The table below shows which versions of react-native-enriched-markdown
support which React Native versions. The standalone native packages have their
own sections: iOS package and Android package.
| 0.82 | 0.83 | 0.84 | 0.85 | 0.86 | 0.87 | 0.88 | |
|---|---|---|---|---|---|---|---|
nightly | no | yes | yes | yes | yes | yes | yes |
1.1.x | no | yes | yes | yes | yes | yes | yes |
1.0.x | no | yes | yes | yes | yes | yes | yes |
0.7.0 | no | yes | yes | yes | yes | yes | yes |
0.6.0 | no | yes | yes | yes | no | no | no |
0.5.0 | no | yes | yes | yes | no | no | no |
0.4.x | yes | yes | yes | no | no | no | no |
0.3.0 | yes | yes | yes | no | no | no | no |
The nightly row is the automated build published from main every day. It is
ahead of every numbered release, so treat it as a preview rather than a
supported version - see Nightly builds.
Platform requirements
The React Native package also needs these minimum platform versions:
| Platform | Minimum |
|---|---|
| Android | minSdk 24 (Android 7.0) |
| iOS | React Native's minimum deployment target; contextMenuItems, selectionMenuConfig and formatMenuConfig additionally require iOS 16+ |
| macOS | 14.0, via react-native-macos |
| Web | Any browser with WebAssembly; MathML rendering for LaTeX math needs Chrome 109+, Firefox, or Safari |
The React Native package also requires the New Architecture (Fabric).
The macOS row is the deployment target, not a react-native-macos version. The
library's own macOS example app is built against react-native-macos 0.81,
which trails the React Native versions in the table above. See
macOS support.
Dependencies
| Runtime dependencies | None |
| Peer dependencies | react, react-native (no version floor declared beyond the table above) |
| Optional peer dependency | katex >=0.16.0, used only by the web build to typeset LaTeX |
| Expo | Supported through npx expo install and a development build. The library's compile-time settings cannot apply in Expo Go. There is no config plugin - see Installation. |
iOS package
The standalone Swift package,
enriched-markdown-ios, versions 0.4.0 and newer.
| Deployment target | iOS 16.0 |
| Platforms | iOS only. The package declares platforms: [.iOS(.v16)] and its sources import UIKit, so a macOS, watchOS or tvOS target cannot depend on it |
| Swift tools | 5.9 (Xcode 15 or newer) |
| UI framework | SwiftUI - the package exports a View |
| Distribution | Swift Package Manager (software-mansion-labs/enriched-markdown-ios) |
It ships three products:
EnrichedMarkdown- the renderer.EnrichedMarkdownLaTeX(optional) - adds$...$typesetting. It links the prebuilt RaTeX engine plus the KaTeX fonts, about 3-5 MB of app size. See LaTeX math.EnrichedMarkdownSyntaxHighlighting(optional) - colors fenced code blocks. It compiles tree-sitter with all its grammars, about 8 MB of app size, with no way to compile in only some languages. See Syntax highlighting.
Android package
The standalone Android library,
enriched-markdown-android, versions 0.3.0 and
newer.
| Min SDK | 24 (Android 7.0) |
| Compile SDK | 36 or newer - a floor, not a suggestion: AGP fails the build when a dependency was compiled against a newer SDK than the consumer |
| Java | 11 as the bytecode target. Running Gradle for AGP 9.x and Kotlin 2.4 needs JDK 17 (what CI uses) |
| Kotlin | 2.3 or newer, with the Compose compiler plugin. The library is built with Kotlin 2.4.0 - see Requirements |
| UI toolkit | Jetpack Compose with Material 3 |
| AndroidX | Required |
It is published to Maven Central under the com.swmansion.enriched.markdown
group as five artifacts: parser,
ui, compose (the one apps depend on; it pulls in ui and parser) and two
optional ones that compose never pulls in:
math- renders LaTeX; new in 0.3.0. See LaTeX math. The math engine ships no 32-bitx86library (arm64-v8a,armeabi-v7aandx86_64only), so only apps that addmathtake on that ABI limit.code-highlight- colors fenced code blocks. It compiles tree-sitter and its 14 grammars into one native library for all four ABIs (arm64-v8a,armeabi-v7a,x86andx86_64): about 8 MB per ABI uncompressed and about 1.1 MB per ABI compressed, with no way to compile in only some languages. See Code highlighting.