diff --git a/lib/client/help.js b/lib/client/help.js index f9875554..a81f9f9d 100644 --- a/lib/client/help.js +++ b/lib/client/help.js @@ -27,24 +27,17 @@ var CloudCmd, Util, DOM; top:true }); - DOM.ajax({ - url : '/HELP.md', - success : function (data) { - Markdown.render(data, function(result) { - var div = DOM.anyload({ - name : 'div', - className : 'help', - inner : result - }); - - Images.hideLoad(); - - CloudCmd.View.show(div); + Markdown.read('/HELP.md', function(result) { + var div = DOM.anyload({ + name : 'div', + className : 'help', + inner : result }); - }, - error : Images.showError - }); + Images.hideLoad(); + + CloudCmd.View.show(div); + }, '?relative'); }; this.hide = function() { diff --git a/lib/client/rest.js b/lib/client/rest.js index 3a04a551..9f74ddd3 100644 --- a/lib/client/rest.js +++ b/lib/client/rest.js @@ -79,7 +79,17 @@ var Util, DOM, CloudCmd; }; this.Markdown = { - render : function(data, callback) { + read : function(url, callback, query) { + sendRequest({ + method : 'GET', + url : '/markdown' + url+ (query || ''), + callback : callback, + imgPosition : { top: true }, + doNotLog : true + }); + }, + + render : function(data, callback) { sendRequest({ method : 'PUT', url : '/markdown', diff --git a/lib/server/rest.js b/lib/server/rest.js index 1ee78e7c..00bf4a90 100644 --- a/lib/server/rest.js +++ b/lib/server/rest.js @@ -105,7 +105,7 @@ if (isFS) onFS(pParams); else if (isMD) - markdown.operate(p.request, function(error, data) { + markdown.operate(p.name, p.request, function(error, data) { if (error) sendError(p, error); else diff --git a/lib/server/rest/markdown.js b/lib/server/rest/markdown.js index 51150e6a..f7fb8a69 100644 --- a/lib/server/rest/markdown.js +++ b/lib/server/rest/markdown.js @@ -2,27 +2,54 @@ 'use strict'; var main = global.cloudcmd.main, + marked = main.require('marked'), + Util = main.util, DIR = main.DIR, - MD_DIR = 'rest/markdown/', - pipe = main.pipe, - parse = main.srvrequire(MD_DIR + 'put').parse, - Util = main.util; + fs = require('fs'), + pipe = main.pipe; exports.operate = operate; - function operate(request, callback) { - var method = request.method; - + function operate(name, request, callback) { + var query, + method = request.method; switch(method) { case 'GET': + name = Util.removeStrOneTime(name, '/markdown'); + query = main.getQuery(request); + + if (query === 'relative') + name = DIR + name; + + fs.readFile(name, 'utf8', function(error, data) { + if (error) + callback(error); + else + parse(data, callback); + }); break; case 'PUT': + pipe.getBody(request, function(data) { parse(data, callback); }); break; } } + + function parse(data, callback) { + var md; + + process.nextTick(function() { + if (marked) + md = marked(data); + else + md = '
' + data + '
'; + + Util.exec(callback, null, md); + }); + } + })(); diff --git a/lib/server/rest/markdown/put.js b/lib/server/rest/markdown/put.js deleted file mode 100644 index f72d9388..00000000 --- a/lib/server/rest/markdown/put.js +++ /dev/null @@ -1,22 +0,0 @@ -(function(){ - 'use strict'; - - var main = global.cloudcmd.main, - marked = main.require('marked'), - Util = main.util; - - exports.parse = parse; - - function parse(data, callback) { - var md; - - process.nextTick(function() { - if (marked) - md = marked(data); - else - md = '
' + data + '
'; - - Util.exec(callback, null, md); - }); - } -})();