Back to Explore

remarkjs/react-markdown

GitHub
2 watchersOpen source

Last release:

React component that safely renders Markdown strings into React elements. Useful for displaying CommonMark and GFM content in React, with support for pluggable transformations and custom React components for specific HTML-like tags.

Project status

  • Maintenance status: Evidence from the newest upstream push (2025-04-21) and the most recent tagged update notes (10.1.0 in 2025-03) suggests the project is quiet or in maintenance mode as of 2026-06-09.
  • Update cadence: Updates were relatively close together in early 2025 (10.1.0, then 10.0.1, then 10.0.0, and earlier 9.x updates), but there is a gap of over a year with no newer updates shown.

AI summary generated

AI-generated from public sources. May be inaccurate. Report

Recent updates

  • 10.1.0

    Release 10.1.0 introduces a new `fallback` prop for `MarkdownHooks` and includes a fix for a race condition. The implementation also changes how `MarkdownHooks` renders before the markdown processor finishes and adjusts internal hook lifecycle handling.

    Features
  • 10.0.1

    Release 10.0.1 is described as a TypeScript performance fix around how components are typed. The diff shows no runtime logic changes, but there are multiple TypeScript-relevant type definition adjustments in the main entrypoint’s JSDoc, plus README and internal type-test harness changes.

  • 10.0.0

    Release 10.0.0 removes support for the `className` prop from `react-markdown`. The change eliminates the automatic wrapping `div` that previously applied the provided `className` to the rendered markdown output.

    Breaking
  • 9.1.0

    Release 9.1.0 introduces support for async Remark/Rehype plugins. The implementation adds new React components that route unified’s processing through sync, async-await, or client-side hook-based execution.

    Features
  • 9.0.3

    Release 9.0.3 appears to be a packaging-only update. The provided code diff shows only a version bump in package.json from 9.0.2 to 9.0.3, with no other code changes visible.

  • 9.0.2

    Release 9.0.2 focuses on TypeScript type updates intended to fix React 19 compatibility, and on enabling declaration maps. It also includes minor documentation fixes (typos) in the changelog.

  • 9.0.1

    Release 9.0.1 mainly updates the default URL sanitization logic to fix an issue with double encoding, and refreshes documentation examples to use React 18+ `createRoot`. The code changes also remove a dependency and reimplement the “safe protocol” decision logic directly in `defaultUrlTransform`.

  • 9.0.0

    react-markdown 9.0.0 is a major release that modernizes the package to ESM exports, requires Node.js 16 and React 18, and consolidates URL rewriting into a single urlTransform option. It also removes multiple legacy/unsafe options and changes runtime behavior to surface errors for removed props with improved messaging.

    BreakingFeatures
  • 8.0.7

    react-markdown 8.0.7 includes a documented performance tweak related to React element keys and a documentation/types fix for the syntax highlight example. The code change for keys is more substantial than the release notes describe, as it changes how element keys are generated during rendering.

  • 8.0.6

    Release 8.0.6 is presented as an update to TypeScript 5. The actual diff is small, with only minor type-definition changes plus a dev dependency and test update.