From ad33e2410e0a24d2193fbd79f3e81214e9e06af3 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Fri, 24 Oct 2014 04:31:57 -0400 Subject: [PATCH] feature(edit) add minify --- HELP.md | 1 + lib/client/edit.js | 25 +++++++++++++++++++++++-- lib/client/rest.js | 6 ++++-- lib/server/rest/fs/get.js | 7 ++++++- 4 files changed, 34 insertions(+), 5 deletions(-) diff --git a/HELP.md b/HELP.md index eac97b62..ff4dbe21 100644 --- a/HELP.md +++ b/HELP.md @@ -158,6 +158,7 @@ Edit | `Ctrl + h` | replace | `Ctrl + g` | go to line | `Ctrl + b` | beautify js, css or html +| `Ctrl + m` | minify js, css or html | `Esc` | close For more details see [Ace keyboard shortcuts](https://github.com/ajaxorg/ace/wiki/Default-Keyboard-Shortcuts "Ace keyboard shortcuts"). diff --git a/lib/client/edit.js b/lib/client/edit.js index 7941f06b..5e02810d 100644 --- a/lib/client/edit.js +++ b/lib/client/edit.js @@ -247,6 +247,14 @@ var CloudCmd, Util, DOM, CloudFunc, ace, DiffProto, diff_match_patch, Zip, MenuI } }); + Ace.commands.addCommand({ + name : 'minify', + bindKey : { win: 'Ctrl-M', mac: 'Command-M' }, + exec : function() { + Edit.minify(); + } + }); + ace.require('ace/ext/language_tools'); Modelist = ace.require('ace/ext/modelist'); @@ -411,6 +419,9 @@ var CloudCmd, Util, DOM, CloudFunc, ace, DiffProto, diff_match_patch, Zip, MenuI 'Beautify Ctrl+B' : function() { Edit.beautify(); }, + 'Minify Ctrl+M' : function() { + Edit.minify(); + }, 'Close Esc' : Edit.hide }; @@ -483,14 +494,24 @@ var CloudCmd, Util, DOM, CloudFunc, ace, DiffProto, diff_match_patch, Zip, MenuI } Edit.beautify = function() { + readWithFlag('beautify'); + }; + + Edit.minify = function() { + readWithFlag('minify'); + }; + + function readWithFlag(flag) { var path = Info.path; - RESTful.read(path + '?beautify', function(data) { + Util.checkArgs(arguments, ['flag']); + + RESTful.read(path + '?' + flag, function(data) { Ace.setValue(data); Ace.clearSelection(); Ace.moveCursorTo(0, 0); }); - }; + } function onDrop(event) { var reader, files, diff --git a/lib/client/rest.js b/lib/client/rest.js index 1ca46a14..abcb3f7b 100644 --- a/lib/client/rest.js +++ b/lib/client/rest.js @@ -49,7 +49,9 @@ var Util, DOM, CloudFunc, CloudCmd; this.read = function(url, dataType, callback) { var isQuery = /\?/.test(url), - isBeautify = /.?beautify$/.test(url), + isBeautify = /\?beautify$/.test(url), + isMinify = /\?minify$/.test(url), + notLog = !isQuery || isBeautify || isMinify, isFunc = Util.type.function(dataType); if (!callback && isFunc) { @@ -61,7 +63,7 @@ var Util, DOM, CloudFunc, CloudCmd; method : 'GET', url : CloudFunc.FS + url, callback : callback, - notLog : !isQuery || isBeautify, + notLog : notLog, dataType : dataType }); }; diff --git a/lib/server/rest/fs/get.js b/lib/server/rest/fs/get.js index f7146a09..8eb8d649 100644 --- a/lib/server/rest/fs/get.js +++ b/lib/server/rest/fs/get.js @@ -9,6 +9,7 @@ hash = require(DIR_SERVER + 'hash'), mellow = require(DIR_SERVER + 'mellow'), beautify = require(DIR_SERVER + 'beautify'), + minify = require(DIR_SERVER + 'minify'), Util = require(DIR + 'util'); module.exports = function(query, name, callback) { @@ -32,7 +33,11 @@ case 'beautify': beautify(name, callback); break; - + + case 'minify': + minify(name, callback); + break; + case 'hash': hashStream = hash();