nyx_server
Version:
Node内容发布
56 lines (46 loc) • 1.75 kB
JavaScript
var ProcessorBase = require('./processorBase'); //处理器的基类
var util = require("../utils");
var matchRegex = function(){
return /([\s]*)<script[^\>]+src=['"]([^"']+)["'][^>]*>((\r|\n|\s)(?!<script))*<\/script>[\r|\n]*/gi;
};
var JsProcessor = function(){
ProcessorBase.apply(this , arguments);
var replaced = false;
this.replaceContent = function(orgiContent , block , targetFileName , returnType){
if(!replaced){
replaced = true;
return orgiContent.replace(block.blockContent , block.space+'<script src="'+targetFileName+'"></script>'+returnType);
}else{
return orgiContent.replace(block.blockContent , '');
}
};
this.getBlocks = function(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;
};
this.processContent = function(contents , returnType , globalConfig , logger){
var codes = [];
for(var i =0 ; i<contents.length ; i++){
codes.push(contents[i].content);
}
return codes.join('\n');
};
this.compressContent = function compressContent(content){
return util.compressContent(content);
}
};
module.exports = JsProcessor;
;