Просмотр исходного кода

enhance PageEditor

* auto close tags
* continue list
* indent list
Yuki Takei 8 лет назад
Родитель
Сommit
7f2375b331
3 измененных файлов с 27 добавлено и 3 удалено
  1. 1 0
      package.json
  2. 19 2
      resource/js/components/PageEditor/Editor.js
  3. 7 1
      yarn.lock

+ 1 - 0
package.json

@@ -62,6 +62,7 @@
     "bootstrap-sass": "~3.3.6",
     "check-node-version": "^3.1.1",
     "codemirror": "^5.33.0",
+    "codemirror-markdown-list-autoindent": "^1.0.1",
     "connect-flash": "~0.1.1",
     "connect-redis": "^3.3.0",
     "cookie-parser": "^1.4.3",

+ 19 - 2
resource/js/components/PageEditor/Editor.js

@@ -2,9 +2,13 @@ import React from 'react';
 import PropTypes from 'prop-types';
 
 import { UnControlled as CodeMirror } from 'react-codemirror2';
+require('codemirror/lib/codemirror.css');
 require('codemirror/addon/display/autorefresh');
+require('codemirror/addon/edit/matchtags');
+require('codemirror/addon/edit/closetag');
+require('codemirror/addon/edit/continuelist');
+require('codemirror/addon/edit/indentlist');
 require('codemirror/mode/gfm/gfm');
-require('codemirror/lib/codemirror.css');
 
 export default class Editor extends React.Component {
 
@@ -24,7 +28,20 @@ export default class Editor extends React.Component {
         options={{
           mode: 'gfm',
           lineNumbers: true,
-          autoRefresh: true
+          tabSize: 4,
+          indentUnit: 4,
+          autoRefresh: true,
+          autoCloseTags: true,
+          matchTags: {bothTags: true},
+          lineWrapping: true,
+          // markdown mode options
+          highlightFormatting: true,
+          // continuelist, indentlist
+          extraKeys: {
+            "Enter": "newlineAndIndentContinueMarkdownList",
+            "Tab": "autoIndentMarkdownList",
+            "Shift-Tab": "autoUnindentMarkdownList"
+          }
         }}
         onChange={(editor, data, value) => {
           if (this.props.onChange != null) {

+ 7 - 1
yarn.lock

@@ -1413,7 +1413,13 @@ code-point-at@^1.0.0:
   version "1.1.0"
   resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77"
 
-codemirror@^5.33.0:
+codemirror-markdown-list-autoindent@^1.0.1:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/codemirror-markdown-list-autoindent/-/codemirror-markdown-list-autoindent-1.0.1.tgz#712ec4a9cc636f5070d40253f74fa353a56f0092"
+  dependencies:
+    codemirror "^5.x"
+
+codemirror@^5.33.0, codemirror@^5.x:
   version "5.33.0"
   resolved "https://registry.yarnpkg.com/codemirror/-/codemirror-5.33.0.tgz#462ad9a6fe8d38b541a9536a3997e1ef93b40c6a"