11import React , { Component } from 'react' ;
22import Editor from 'draft-js-plugins-editor' ;
3- import PrismDecorator from 'draft-js-prism' ;
4- import Prism from 'prismjs' ;
5- import 'prismjs/components/prism-java' ;
6- import 'prismjs/components/prism-scala' ;
7- import 'prismjs/components/prism-go' ;
8- import 'prismjs/components/prism-sql' ;
9- import 'prismjs/components/prism-bash' ;
10- import 'prismjs/components/prism-c' ;
11- import 'prismjs/components/prism-cpp' ;
12- import 'prismjs/components/prism-kotlin' ;
13- import 'prismjs/components/prism-perl' ;
14- import 'prismjs/components/prism-ruby' ;
15- import 'prismjs/components/prism-swift' ;
163
174import createMarkdownShortcutsPlugin from 'draft-js-markdown-shortcuts-plugin' ; // eslint-disable-line
185import Draft , {
@@ -22,29 +9,15 @@ import Draft, {
229 EditorState ,
2310} from 'draft-js' ;
2411import styles from './styles.css' ;
25- // import initialState from './initialState ';
12+ import prismPlugin from '../../plugins/prism ' ;
2613
2714window . Draft = Draft ;
2815
29- const plugins = [ createMarkdownShortcutsPlugin ( ) ] ;
30-
31- const decorators = [
32- new PrismDecorator ( {
33- prism : Prism ,
34- getSyntax ( block ) {
35- const language = block . getData ( ) . get ( 'language' ) ;
36- if ( typeof Prism . languages [ language ] === 'object' ) {
37- return language ;
38- }
39- return null ;
40- } ,
41- render ( { type, children } ) {
42- return < span className = { `prism-token token ${ type } ` } > { children } </ span > ;
43- }
44- } )
16+ const plugins = [
17+ prismPlugin ,
18+ createMarkdownShortcutsPlugin ( )
4519] ;
4620
47- // const contentState = ContentState.createFromBlockArray(convertFromRaw(initialState));
4821const contentState = ContentState . createFromText ( '' ) ;
4922const initialEditorState = EditorState . createWithContent ( contentState ) ;
5023
@@ -78,7 +51,6 @@ export default class DemoEditor extends Component {
7851 { placeholder }
7952 < div className = { styles . editor } onClick = { this . focus } >
8053 < Editor
81- decorators = { decorators }
8254 editorState = { editorState }
8355 onChange = { this . onChange }
8456 plugins = { plugins }
0 commit comments