🚀 Big News: Socket Acquires Coana to Bring Reachability Analysis to Every Appsec Team.Learn more

react-markdown

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

react-markdown - npm Package Versions

2345
10
wooorm
published 10.1.0 •
wooorm
published 10.0.1 •
wooorm
published 10.0.0 •

Changelog

Source

10.0.0 - 2025-02-20

  • aaaa40b Remove support for className prop migrate: see “Remove className” below

Remove className

The className prop was removed. If you want to add classes to some element that wraps the markdown you can explicitly write that element and add the class to it. You can then choose yourself which tag name to use and whether to add other props.

Before:

<Markdown className="markdown-body">{markdown}</Markdown>

After:

<div className="markdown-body">
  <Markdown>{markdown}</Markdown>
</div>
wooorm
published 9.1.0 •

Changelog

Source

9.1.0 - 2025-02-20

  • 6ce120e Add support for async plugins
wooorm
published 9.0.3 •

Changelog

Source

9.0.3 - 2025-01-06

(same as 9.0.2 but now with d.ts files)

wooorm
published 9.0.2 •

Changelog

Source

9.0.2 - 2025-01-06

  • b151a90 Fix types for React 19
  • 6962af7 Add declaration maps
  • aa5933b Refactor to use @import to import types
wooorm
published 9.0.1 •

Changelog

Source

9.0.1 - 2023-11-13

  • d8e3787 Fix double encoding in new url transform
wooorm
published 9.0.0 •

Changelog

Source

9.0.0 - 2023-09-27

  • b67d714 Change to require Node.js 16
    migrate: update too
  • ec2b134 Change to require React 18
    migrate: update too
  • bf5824f Change to use exports
    migrate: don’t use private APIs
  • c383a45 Update @types/hast, utilities, plugins, etc
    migrate: update too
  • eca5e6b 08ead9e Replace transformImageUri, transformLinkUri w/ urlTransform
    migrate: see “Add urlTransform” below
  • de29396 Remove linkTarget option
    migrate: see “Remove linkTarget” below
  • 4346276 Remove support for passing custom props to components
    migrate: see “Remove includeElementIndex”, “Remove rawSourcePos”, “Remove sourcePos”, “Remove extra props passed to certain components” below
  • c0dfbd6 Remove UMD bundle from package
    migrate: use esm.sh or a CDN or so
  • e12b5e9 Remove prop-types
    migrate: use TypeScript
  • 4eb7aa0 Change to throw errors for removed props
    migrate: don’t pass options that don’t do things
  • 8aabf74 Change to improve error messages
    migrate: expect better messages

Add urlTransform

The transformImageUri and transformLinkUri were removed. Having two functions is a bit much, particularly because there are more URLs you might want to change (or which might be unsafe so we make them safe). And their name and APIs were a bit weird. You can use the new urlTransform prop instead to change all your URLs.

Remove linkTarget

The linkTarget option was removed; you should likely not set targets. If you want to, use rehype-external-links.

Remove includeElementIndex

The includeElementIndex option was removed, so index is never passed to components. Write a plugin to pass index:

<details> <summary>Show example of plugin</summary>
import {visit} from 'unist-util-visit'

function rehypePluginAddingIndex() {
  /**
   * @param {import('hast').Root} tree
   * @returns {undefined}
   */
  return function (tree) {
    visit(tree, function (node, index) {
      if (node.type === 'element' && typeof index === 'number') {
        node.properties.index = index
      }
    })
  }
}
</details>

Remove rawSourcePos

The rawSourcePos option was removed, so sourcePos is never passed to components. All components are passed node, so you can get node.position from them.

Remove sourcePos

The sourcePos option was removed, so data-sourcepos is never passed to elements. Write a plugin to pass index:

<details> <summary>Show example of plugin</summary>
import {stringifyPosition} from 'unist-util-stringify-position'
import {visit} from 'unist-util-visit'

function rehypePluginAddingIndex() {
  /**
   * @param {import('hast').Root} tree
   * @returns {undefined}
   */
  return function (tree) {
    visit(tree, function (node) {
      if (node.type === 'element') {
        node.properties.dataSourcepos = stringifyPosition(node.position)
      }
    })
  }
}
</details>

Remove extra props passed to certain components

When overwriting components, these props are no longer passed:

  • inline on code — create a plugin or use pre for the block
  • level on h1, h2, h3, h4, h5, h6 — check node.tagName instead
  • checked on li — check task-list-item class or check props.children
  • index on li — create a plugin
  • ordered on li — create a plugin or check the parent
  • depth on ol, ul — create a plugin
  • ordered on ol, ul — check node.tagName instead
  • isHeader on td, th — check node.tagName instead
  • isHeader on tr — create a plugin or check children
wooorm
published 8.0.7 •

Changelog

Source

8.0.7 - 2023-04-12

Full Changelog: https://github.com/remarkjs/react-markdown/compare/8.0.6...8.0.7

wooorm
published 8.0.6 •

Changelog

Source

8.0.6 - 2023-03-20

2345
10