wintersmith-nap
Version:
Minimalistic plugin to connect wintersmith with nap
49 lines (45 loc) • 1.46 kB
JavaScript
// Generated by CoffeeScript 1.6.3
var nap, path;
nap = require('nap');
path = require('path');
module.exports = function(env, callback) {
var assetsRx, createNapWrapper, ext, index, napCfg, preview, roots, section;
preview = 'preview' === env.mode;
roots = {
contents: env.config.contents,
output: env.config.output
};
napCfg = env.config.nap;
for (ext in napCfg.assets) {
for (section in napCfg.assets[ext]) {
for (index in napCfg.assets[ext][section]) {
napCfg.assets[ext][section][index] = preview ? napCfg.assets[ext][section][index] : roots.contents + napCfg.assets[ext][section][index];
}
}
}
if (preview) {
napCfg.appDir = path.resolve(env.workDir, roots.contents);
} else {
napCfg.appDir = env.workDir;
}
napCfg.mode = preview ? 'development' : 'production';
napCfg.publicDir = preview ? '.' : roots.output;
nap(napCfg);
if (preview) {
assetsRx = new RegExp(path.resolve('/assets/', roots.contents) + '/', 'g');
createNapWrapper = function(ext) {
return function(section) {
return nap[ext](section).replace(assetsRx, '/');
};
};
env.locals.nap = {};
env.locals.nap.css = createNapWrapper('css');
env.locals.nap.js = createNapWrapper('js');
env.locals.nap.jst = createNapWrapper('jst');
return callback();
} else {
env.locals.nap = nap;
env.logger.info('nap.package()...');
return nap["package"](callback);
}
};