nyx_server
Version:
Node内容发布
63 lines (48 loc) • 1.91 kB
JavaScript
var ProcessorBase = require('./processorBase'); //处理器的基类
var util = require('util');
var cssmin = require('cssmin');
var matchRegex = function(){
return /([\s]*)<link[^\>]+href=['"]([^"']+)["'][^>]*>[\r|\n]*/gi;
};
var CssProcessor = function(){
ProcessorBase.apply(this , arguments);
this.getBlocks = function getBlocks(blockContent){
var blocks = blockContent.match(matchRegex());
var ret = [];
if(!blocks){
return ret;
}
for(var i=0 ; i<blocks.length ; i++){
var block = blocks[i];
var arr = matchRegex().exec(block);
ret.push({
filePath : arr[2],
blockContent : block,
space: arr[1]
});
}
return ret;
};
var replaced = false;
this.replaceContent = function replaceContent(orgiContent , block , targetFileName , returnType){
if(!replaced){
replaced = true;
return orgiContent.replace(block.blockContent , block.space+'<link rel="stylesheet" href="'+targetFileName+'">'+returnType);
}else{
return orgiContent.replace(block.blockContent , '');
}
};
this.processContent = function(/*[]*/contents , targetFileName , returnType){
var concatContent = [];
for(var i=0 ; i<contents.length ; i++){
concatContent.push(contents[i].content , returnType);
}
return concatContent.join('\n');
};
this.compressContent = function compressContent(content){
var minContent = cssmin(content);
return minContent;
}
};
module.exports = CssProcessor;
;