UNPKG

wintersmith-nap

Version:

Minimalistic plugin to connect wintersmith with nap

51 lines (40 loc) 1.59 kB
nap = require 'nap' path = require 'path' module.exports = (env, callback) -> preview = 'preview' == env.mode roots = contents: env.config.contents output: env.config.output # Reading config from wintersmith config object (config.json) napCfg = env.config.nap # prefix with location of `contents` directory for ext of napCfg.assets for section of napCfg.assets[ext] for index of napCfg.assets[ext][section] napCfg.assets[ext][section][index] = if preview then napCfg.assets[ext][section][index] else roots.contents + napCfg.assets[ext][section][index] # Setting various `nap` configs if preview napCfg.appDir = path.resolve(env.workDir, roots.contents); else napCfg.appDir = env.workDir napCfg.mode = if preview then 'development' else 'production' # napCfg.publicDir = if preview then roots.contents else roots.output napCfg.publicDir = if preview then '.' else roots.output # Instantiate nap! nap napCfg if preview # development # Refer to https://github.com/etabits/wintersmith-nap/pull/3#issuecomment-31646159 assetsRx = new RegExp(path.resolve('/assets/', roots.contents)+'/', 'g') createNapWrapper = (ext) -> (section) -> 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' # we're done callback() else # production env.locals.nap = nap env.logger.info('nap.package()...') nap.package(callback)