UNPKG

asset-rack

Version:

Asset management framework for nodejs

33 lines (29 loc) 1.26 kB
fs = require 'fs' pathutil = require 'path' nib = require 'nib' stylus = require 'stylus' Asset = require('../.').Asset class exports.StylusAsset extends Asset create: (options) -> @filename = pathutil.resolve options.filename @compress = options.compress @compress ?= false fs.readFile @filename, 'utf8', (error, data) => return @emit 'error', error if error? stylus(data) .set('filename', @filename) .set('compress', @compress) .set('include css', true) .use(nib()) .render (error, css) => return @emit 'error', error if error? if @rack? urlRegex = "url\s*\(\s*'([^']+)'\s*\)" results = css.match /url\s*\(\s*'([^']+)'\s*\)/g for result in results match = /url\s*\(\s*'([^']+)'\s*\)/.exec result url = match[1] specificUrl = @rack.url url if specificUrl? css = css.replace result, "url('#{specificUrl}')" @emit 'created', contents: css