Render Markdown as React components using marked.
dangerouslySetInnerHTML
$ npm i marked-react
import ReactDOM from 'react-dom';
import Markdown from 'marked-react';
const domContainer = document.getElementById('root');
const root = ReactDOM.createRoot(domContainer);
root.render(<Markdown># Hello world!</Markdown>);
string
] - Markdown content.string
] - A prefix url for any relative link.boolean
] - Attribute target=_blank
will be added to link elementsstring
] - A string to prefix the className in a <code>
block. Useful for syntax highlighting. Defaults to language-
.boolean
] - Add br
tag on single line breaks. Requires gfm
to be true
boolean
] - Use approved Github Flavoured Markdownboolean
] - Parse inline markdown.An example with react-lowlight
import ReactDOM from 'react-dom';
import Markdown from 'marked-react';
import Lowlight from 'react-lowlight';
import javascript from 'highlight.js/lib/languages/javascript';
Lowlight.registerLanguage('js', javascript);
const renderer = {
code(snippet, lang) {
return <Lowlight key={this.elementId} language={lang} value={snippet} />;
},
};
const markdown = 'console.log("Hello world!")';
const domContainer = document.getElementById('root');
const root = ReactDOM.createRoot(domContainer);
root.render(<Markdown value={markdown} renderer={renderer} />);
Some awesome options available to highlight code