react-showdown
Render React components within markdown and markdown as React components!
Features
- Render markdown as React components.
- Render React components within the markdown!
- Full TypeScript Support.
- Fully tested.
- Supports all Showdown extensions, like the Twitter Extension and the Youtube Extension.
- New in 2.0: Supports for Showdown Flavors
Installation
npm install --save react-showdown
or
yarn add react-showdown
Use as React component
Example with ES6/JSX:
{ const markdown = `# Welcome to React Showdown :+1: To get started, edit the markdown in \`example/src/App.tsx\`. | Column 1 | Column 2 ||----------|----------|| A1 | B1 || A2 | B2 |`; return <MarkdownView = = /> ;};
Use a React component and use it within the markdown with ES6 / TypeScript:
import MarkdownView from 'react-showdown'; { return <span>Hello name!</span>;} const markdown = `# A custom component: <CustomComponent name="world" />`; <MarkdownView = = />
Available props
- markdown, string, required
- flavor, Flavor, optional
- options, ConverterOptions, optional
- extensions, showdown extensions, optional
- components, components, optional
Converter options will be pushed forward to the showdown converter, please checkout the valid options section.
Credits
Project is based on the markdown parser Showdown and the html parser htmlparser2.
Alternatives
- reactdown
- react-markdown, based on commonmark.js
- commonmark-react-renderer, based on commonmark.js