UNPKG

nyx_server

Version:

Node内容发布

63 lines (48 loc) 1.91 kB
"use strict"; 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;