UNPKG

nyx_server

Version:

Node内容发布

56 lines (46 loc) 1.75 kB
"use strict"; 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;