fis3-spriter-csssprite
Version:
基于fis-spriter-csssprites,增加输出相对路径的支持
39 lines (36 loc) • 1.11 kB
JavaScript
/**
* fis.baidu.com
* @type {Function}
*/
;
var path = require('path');
var Rules = require('./css/rules.js');
module.exports = function (content, images, file) {
var _arr_css = []
, _content;
var reg = /(?:\/\*[\s\S]*?(?:\*\/|$))|([^\{\}\/]*)\{([^\{\}]*)\}/gi;
var filePath = path.dirname(file.url || file.release || file.subpath);
_content = content.replace(reg, function(m, selector, css) {
if (css) {
var rules = Rules.wrap(selector.trim(), css.trim());
var imgUrl;
if (rules.isSprites()) {
imgUrl = rules.getImageUrl();
if (!path.isAbsolute(imgUrl)) {
imgUrl = path.join(filePath, imgUrl).replace(/\\/g, '/');
}
if (images.hasOwnProperty(imgUrl)) {
rules.image = imgUrl;
_arr_css.push(rules);
css = rules.getCss();
}
}
return selector + '{' + css + '}';
}
return m;
});
return {
content: _content,
map: _arr_css
};
};