A markdown editor component for react based on marked, you can edit and preview at same time.
npm install --save react-markdown-preview-editor
Minimal usage:
import { render } from 'react-dom';
import { MarkdownEditor } from 'react-markdown-preview-editor';
import 'react-markdown-preview-editor/lib/css/style.css';
render(
<MarkdownPreview />,
document.getElementById('root')
);
Attention: style.css must be import.
You can use also Editor or Preview alone. Of course, style.css is needed.
import { Editor, MarkdownPreview } from 'react-markdown-preview-editor';
import 'react-markdown-preview-editor/lib/css/style.css';
Type: string
Default: 300px
Height of the whole editor, can be 'px' or '%'
Type: string
Initial value of editor and preview
Type: boolean
Default: true
Show editor or not
Type: boolean
Default: true
Show editor nav or not
Type: boolean
Default: true
Show preview or not
Type: boolean
Default: true
Change order of editor and preview
Type: object
Regist custom markdown buttons for markBtns
option.
{
heading: {
mark: '# ',
type: 'insert',
icon: 'icon-font-size',
iconTheme: 'color',
tips: 'heading',
text: 'test'
},
italic: {
mark: ['*','*'],
type: 'around',
icon: 'icon-italic',
tips: 'italic'
},
}
heading: name of the button.
mark: markdown sign, string for insert or array for around.
type: define the way markdown insert in, insert
and around
can be used.insert
is insert mark at cursor, around
is add mark on both sides of selected part.
icon: the button icon, is a class add to span, icomoon and font awesome are avalible.
iconTheme: define the appearance of button, such as color, hover .
tips: tips when mouse hover.
text: define text after icon.
Type: array
Default buttons:
- heading
- bold
- italic
- underline
- strikethrough
- blockquote
- code
- list-ol
- list-ul
- link
- table
- line
- picture
You can also add buttons registed. For example, new button code
is registed, you can set prop markBtns=['*', 'code']
to add code
button to the navbar.
Attention: *
in markBtns array means keep default buttons, if set prop markBtns=['code']
, the navbar will only have a code
button.
<MarkdownEditor
registMarkBtns={{
code: {
mark: ['`','`'],
type: 'around',
icon: 'icon-code',
tips: 'code'
}
}}
markBtns={['*', 'code']}
/>
Type: object
Default:
gfm: true,
tables: true,
breaks: true,
pedantic: false,
sanitize: false,
smartLists: true,
smartypants: false
You can click Here to get detail infomation.
Type: object
define the apprance and behavior of editor
you can click here for detail.
You can set theme of edditor. Theme files can be found in node_modules/codemirror/theme
, and used like the example below:
import 'codemirror/theme/monokai.css';
<MarkdownEditor codemirrorOptions={{theme:'monokai'}}/>
The code color of preview can be setted.Just import highlight style file what you like. Style files can be found in node_modules/highlight.js/style
, you can do like this:
import '/highlight.js/style/gitbub.css';
See LICENSE for more info.