Skip to main content

Roadmap

Where the library stands today and what is being worked on next. For what already ships, see Feature support, and for the rough edges in what ships, Known limitations - this page covers the gaps.

note

This is a snapshot, not a release plan: nothing here has a date, and the order can change. In progress means the work is underway and expected in one of the next releases; planned means it is on the list without a timeline yet.

Status at a glance​

The React Native package ships on iOS, Android, macOS and the web - the iOS / Android column below is that package. The web build covers EnrichedMarkdownText, plus an experimental editor, and macOS runs the iOS code with a few gaps of its own. The standalone iOS package (0.4.0) and Android package (0.3.0) are renderers for SwiftUI and Jetpack Compose apps, and have their own columns.

AreaiOS / AndroidiOS packageAndroid packagemacOSWeb
CommonMarkYesYesYesYesYes
GFM (tables, task lists, strikethrough, autolinks)YesYesYesYesYes
AdmonitionsYesYesYesYesYes
Extended Markdown (underline, superscript, subscript, highlight)YesYesYesYesYes
SpoilersYesYesYesYesPlanned
VideosYesPlannedPlannedYesYes
LaTeX mathYesYesYesInline onlyYes
Code-block highlightingYesYesYesYesPlanned
Markdown streamingYesPlannedPlannedInstant revealPlanned
Smart copyYesPlain text + HTMLYesYesPlanned
AccessibilityYesYesPartialPlannedPartial
RTLYesYesYesYesContainer-level
EnrichedMarkdownTextInput (editor)YesPlannedPlannedYesExperimental

In the native columns, LaTeX math comes from an optional add-on - the EnrichedMarkdownLaTeX product on iOS, the math artifact on Android - and so does code-block highlighting: the EnrichedMarkdownSyntaxHighlighting product on iOS, the code-highlight artifact on Android. The iOS package's smart copy writes plain text and HTML, with no RTF or RTFD flavor. The Android package's accessibility strings are hard-coded English with no way to override them.

In progress​

macOS​

  • Block math. A $$...$$ equation under flavor="github" currently produces no segment and no fallback text, so it disappears from the output. Inline math renders correctly today.
  • VoiceOver, pending an NSAccessibility implementation - a no-op stub ships now.
  • Tail fade-in animation, which falls back to an instant reveal.
  • System font-scale observation.

Planned​

Container blocks​

Container blocks are the elements that hold other blocks as children. Blockquotes already do this correctly in the React Native package - a quote's content is a recursive container that can nest paragraphs, code, and further quotes. We want the same treatment for the other container types, so all list kinds (ordered, unordered, and task lists) render arbitrary block content in their items the way blockquotes do, on every target.

Native renderer parity​

  • Block context menus. Tables, block math and code blocks have one on both native packages (on Android, code blocks only with the scrollable layout), but neither package lets you add your own items.
  • Nested blocks on Android. The Android segment splitter emits only Text, Table and Custom (plugin) segments, so a table inside a list item or blockquote is not rendered. Lists and blockquotes should hold arbitrary block content, as described under Container blocks.

The Compose API surface​

EnrichedMarkdownText on Android does not yet expose selection colors, font scaling, the copy actions, label localization or break strategy, and accessibility labels cannot be overridden at any layer.

The editor on native​

Both native packages render Markdown but do not edit it; there is no editable rich text field on either yet. On React Native, EnrichedMarkdownTextInput is available today.

Web​

The web build ships the renderer. Still to come:

  • A stable editor. EnrichedMarkdownTextInput runs on web as an experimental build. Still missing there: Markdown shortcuts, link and mention commands, auto-link detection, custom menus and markdownStyle.linkVariants.
  • Spoilers, which are currently dropped along with their text - the most important gap on this list.
  • Code-block highlighting, including the header and copy button.
  • Streaming and smart copy, neither of which has a web implementation.
  • Localizable accessibility strings. Everything the web renderer speaks is hard-coded English today, and accessibilityLabels is stripped.

Shared core​

  • HTML line breaks (<br>) - today the tag is raw HTML like any other: an inline <br> stays in the output as literal text, and one on its own line is dropped. Parser-level support is on the list, but no work has started.

Accessibility​

  • Task list items have no accessibility handling in the React Native package, on either platform - a checkbox is read as plain list text, with no state and no toggle action.
  • Admonitions carry no accessibility role.

Asking for something​

Need a feature that is not available yet, or need one of the planned items sooner? Open an issue describing what you are building - demand is what decides the order of this list. Pull requests are welcome too, see Contributing.