markdown 展示效果测试
BackA demo of react-markdown
​
react-markdown
is a markdown component for React.
👉 Changes are re-rendered as you type.
👈 Try writing some markdown on the left.
Overview ​
- Follows CommonMark
- Optionally follows GitHub Flavored Markdown
- Renders actual React elements instead of using
dangerouslySetInnerHTML
- Lets you define your own components (to render
MyHeading
instead ofh1
) - Has a lot of plugins
Table of contents ​
Here is an example of a plugin in action
(remark-toc
).
This section is replaced by an actual table of contents.
Syntax highlighting ​
Here is an example of a plugin to highlight code:
rehype-highlight
.
import React from 'react'
import ReactDOM from 'react-dom'
import Markdown from 'react-markdown'
import rehypeHighlight from 'rehype-highlight'
ReactDOM.render(
<Markdown rehypePlugins={[rehypeHighlight]}>{'# Your markdown here'}</Markdown>,
document.querySelector('#content')
)
Pretty neat, eh?
GitHub flavored markdown (GFM) ​
For GFM, you can also use a plugin:
remark-gfm
.
It adds support for GitHub-specific extensions to the language:
tables, strikethrough, tasklists, and literal URLs.
These features do not work by default. 👆 Use the toggle above to add the plugin.
Feature | Support |
---|---|
CommonMark | 100% |
GFM | 100% w/ remark-gfm |
strikethrough
- [ ] task list
- [x] checked item
https://example.com
HTML in markdown ​
⚠️ HTML in markdown is quite unsafe, but if you want to support it, you can
use rehype-raw
.
You should probably combine it with
rehype-sanitize
.
👆 Use the toggle above to add the plugin.
Components ​
You can pass components to change things:
import React from 'react';
import ReactDOM from 'react-dom';
import Markdown from 'react-markdown';
import MyFancyRule from './components/my-fancy-rule.js';
console.log('啥也没有,就是玩耍');
More info? ​
Much more info is available in the readme on GitHub!
A component by Espen Hovlandsdal