From 09c91267417d439ac4df2bd2734841d921dce9de Mon Sep 17 00:00:00 2001 From: PhantomX Date: Wed, 14 Oct 2015 12:04:22 +0300 Subject: [PATCH] add browserify-shim for spell-checker revert tablist.js --- .gitignore | 4 +++- gulpfile.js | 7 ++++-- package.json | 28 ++++++++++++++++++++--- src/js/codemirror/tablist.js | 44 ++++++++++++++++++++++++++++++++++++ src/js/simplemde.js | 4 ++-- 5 files changed, 79 insertions(+), 8 deletions(-) create mode 100644 src/js/codemirror/tablist.js diff --git a/.gitignore b/.gitignore index 8f6f65f..faa55ad 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,8 @@ localtesting/* node_modules/ + +#For IDE *.iml *.ipr *.iws -dist/ +.idea/ diff --git a/gulpfile.js b/gulpfile.js index e251cde..9acccab 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -10,6 +10,7 @@ var gulp = require("gulp"), prettify = require("gulp-jsbeautifier"); var browserify = require("browserify"); var source = require("vinyl-source-stream"); +var rename = require("gulp-rename"); var banner = ["/**", @@ -36,7 +37,7 @@ function taskBrowserify(opts) { gulp.task("browserify:dev", [], function() { return taskBrowserify({debug:true, standalone:"SimpleMDE"}) .pipe(source("simplemde.debug.js")) - .pipe(gulp.dest("./dist/")); + .pipe(gulp.dest("./debug/")); }); gulp.task("browserify:prod", [], function() { @@ -61,8 +62,10 @@ gulp.task("styles", function() { "./node_modules/codemirror-spell-checker/src/css/spell-checker.css" ]; return gulp.src(css_files) - .pipe(concat("simplemde.min.css")) + .pipe(concat("simplemde.css")) + .pipe(gulp.dest("./debug/")) .pipe(minifycss()) + .pipe(rename("simplemde.min.css")) .pipe(header(banner, {pkg: pkg})) .pipe(gulp.dest("./dist/")); }); diff --git a/package.json b/package.json index 3aa8df1..e0858ce 100644 --- a/package.json +++ b/package.json @@ -21,12 +21,13 @@ "url": "https://github.com/NextStepWebs/simplemde-markdown-editor/issues" }, "dependencies": { - "codemirror": "^5.7.0", - "codemirror-spell-checker": "NextStepWebs/codemirror-spell-checker", + "codemirror": "codemirror/CodeMirror", + "codemirror-spell-checker": "nextstepwebs/codemirror-spell-checker", "marked": "chjj/marked" }, "devDependencies": { "browserify": "^11.2.0", + "browserify-shim": "^3.8.10", "debug": "^2.2.0", "eslint": "^1.6.0", "gulp": "*", @@ -35,10 +36,31 @@ "gulp-eslint": "^1.0.0", "gulp-header": "*", "gulp-jsbeautifier": "*", - "gulp-minify-css": "*", + "gulp-minify-css": "^1.2.1", + "gulp-rename": "^1.2.2", "gulp-uglify": "*", "vinyl-source-stream": "^1.1.0" }, + "browserify": { + "transform": [ + "browserify-shim" + ] + }, + "browser":{ + "spell-checker":"./node_modules/codemirror-spell-checker/src/js/spell-checker.js", + "typo":"./node_modules/codemirror-spell-checker/src/js/typo.js" + }, + "browserify-shim": { + "spell-checker": { + "depends": [ + "typo:Typo", + "codemirror:CodeMirror" + ] + }, + "typo": { + "exports": "Typo" + } + }, "repository": { "type": "git", "url": "https://github.com/NextStepWebs/simplemde-markdown-editor" diff --git a/src/js/codemirror/tablist.js b/src/js/codemirror/tablist.js new file mode 100644 index 0000000..e6cf2d4 --- /dev/null +++ b/src/js/codemirror/tablist.js @@ -0,0 +1,44 @@ +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: http://codemirror.net/LICENSE + +var CodeMirror = require("codemirror"); + +CodeMirror.commands.tabAndIndentMarkdownList = function (cm) { + var ranges = cm.listSelections(); + var pos = ranges[0].head; + var eolState = cm.getStateAfter(pos.line); + var inList = eolState.list !== false; + + if (inList) { + cm.execCommand("indentMore"); + return; + } + + if (cm.options.indentWithTabs) { + cm.execCommand("insertTab"); + } + else { + var spaces = Array(cm.options.tabSize + 1).join(" "); + cm.replaceSelection(spaces); + } +}; + +CodeMirror.commands.shiftTabAndUnindentMarkdownList = function (cm) { + var ranges = cm.listSelections(); + var pos = ranges[0].head; + var eolState = cm.getStateAfter(pos.line); + var inList = eolState.list !== false; + + if (inList) { + cm.execCommand("indentLess"); + return; + } + + if (cm.options.indentWithTabs) { + cm.execCommand("insertTab"); + } + else { + var spaces = Array(cm.options.tabSize + 1).join(" "); + cm.replaceSelection(spaces); + } +}; diff --git a/src/js/simplemde.js b/src/js/simplemde.js index aa18c17..34dd55a 100644 --- a/src/js/simplemde.js +++ b/src/js/simplemde.js @@ -8,8 +8,8 @@ require("codemirror/mode/markdown/markdown.js"); require("codemirror/addon/mode/overlay.js"); require("codemirror/mode/xml/xml.js"); require("marked"); -//require("codemirror-spell-checker/src/js/spell-checker.js"); //todo module must support CommonJS -require("codemirror-spell-checker/src/js/typo.js"); +require("spell-checker"); +require("./codemirror/tablist"); var isMac = /Mac/.test(navigator.platform);