cherry-doc
Version:
markdown to doc
151 lines (119 loc) • 4.92 kB
JavaScript
/**
* @file start commander, entry file
* @author zhangpeng53
*/
;
var _this = this;
function _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step("next", value); }, function (err) { step("throw", err); }); } } return step("next"); }); }; }
require("babel-core/register");
require('babel-polyfill');
var wpconfig = require('../webpack.config');
var webpack = require('webpack');
var walkmd = require('./walkmd');
var sh = require('child_process').execSync;
var path = require('path');
var fs = require('fs');
var parseNav = require('./parseNav');
var babelFiles = require('./babelFiles');
var node_modules = path.resolve(__dirname, '../node_modules');
var wpconfigPath = path.resolve(__dirname, '../webpack.config.js');
var watch = require('node-watch');
function parseWPConfig(config, isProduction) {
var res = wpconfig(config, isProduction);
if (config.setWebpackConfig) {
res = config.setWebpackConfig(res);
}
return res;
}
function before(config) {
var src = void 0;
var dist = path.resolve(__dirname, '../theme');
// 拷贝主题-
// 如果是默认主题则使用theme_default
if (!config.theme || config.theme == 'default') {
src = path.resolve(__dirname, '../theme_default');
} else {
src = path.resolve(process.cwd(), config.theme);
}
sh("rm -rf " + dist);
sh("cp -R " + src + " " + dist);
config.theme = dist;
//拷贝静态资源
var www = path.resolve(__dirname, '../www');
sh("rm -rf " + www);
sh("mv " + path.join(dist, './static') + " " + www);
// 处理导航数据
// parseNav(config);
};
exports.dev = function () {
var _ref = _asyncToGenerator(regeneratorRuntime.mark(function _callee(config, option) {
var server, wpConfig;
return regeneratorRuntime.wrap(function _callee$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
before(config);
if (option.watch) {
watch(path.resolve(process.cwd(), config.root), { recursive: true }, function (evt, name) {
console.log(evt, name);
walkmd(config);
parseNav(config);
});
}
_context.next = 4;
return babelFiles(config.theme, config.theme);
case 4:
_context.next = 6;
return walkmd(config);
case 6:
parseNav(config);
server = require('./server');
wpConfig = parseWPConfig(config, false);
server(config, wpConfig);
case 10:
case "end":
return _context.stop();
}
}
}, _callee, _this);
}));
return function (_x, _x2) {
return _ref.apply(this, arguments);
};
}();
exports.build = function () {
var _ref2 = _asyncToGenerator(regeneratorRuntime.mark(function _callee2(config) {
var src, out, compiler;
return regeneratorRuntime.wrap(function _callee2$(_context2) {
while (1) {
switch (_context2.prev = _context2.next) {
case 0:
before(config);
_context2.next = 3;
return babelFiles(config.theme, config.theme);
case 3:
_context2.next = 5;
return walkmd(config);
case 5:
parseNav(config);
src = path.resolve(__dirname, '../www');
out = path.resolve(process.cwd(), config.out || './site');
sh("rm -rf " + out);
compiler = webpack(parseWPConfig(config, true));
compiler.run(function (err, stats) {
// console.log(stats);
if (!err) {
sh("cp -R " + src + " " + out);
}
});
case 11:
case "end":
return _context2.stop();
}
}
}, _callee2, _this);
}));
return function (_x3) {
return _ref2.apply(this, arguments);
};
}();