cssminify update
2007-12-05 @ 11:18#
i updated my cssminify tool this week. it now handles whitespace and newlines a bit better. no other big changes as this script is all about making the file smaller (not making it *better* like CSSTidy).
below is the entire script. i have this in my environment path and use it from the command line.
' *************************************************** ' cssminify.vbs ' 2007-10-03 (mca) ' 2007-12-05 (mca) : improved regexp & space-handling ' remove comments and whitespace from CSS files ' no tidying up here, just minifying ' usage: ' cssminify infile.css [outfile.css] ["comment"] ' *************************************************** ' vars Dim fso,f,cmt,rex,data,re_cmt,re_ws,re_sp,ifile,ofile re_cmt = "/\*[\s\S]*?\*/" re_ws = "[\t\r\n]]*" re_sp = "[\s]{2,}" re_nl = "\} " ' get input file If WScript.Arguments.Count=0 Then WScript.Echo "Missing Input File" WScript.Quit Else ifile = WScript.Arguments.Item(0) End If ' get output file (or set default) If WScript.Arguments.Count>1 Then ofile = WScript.Arguments.Item(1) Else ofile = "min-" & WScript.Arguments.Item(0) End If ' get comment line If WScript.Arguments.Count=3 Then cmt = "/* " & WScript.Arguments.Item(2) & " */" Else cmt = "" End If ' set file object Set fso = CreateObject("Scripting.FileSystemObject") ' read data in Set f = fso.OpenTextFile(ifile,1,False) data = f.ReadAll() f.Close Set f = Nothing ' do regexp work Set rex = new RegExp rex.MultiLine = True rex.Global = True rex.Pattern = re_cmt data = rex.Replace(data,"") rex.Pattern = re_ws data = rex.Replace(data," ") rex.Pattern = re_sp data = rex.Replace(data," ") rex.Pattern = re_nl data = rex.Replace(data,"}" & Chr(13) & Chr(10)) Set rex = Nothing ' write data out Set f = fso.CreateTextFile(ofile,1,False) f.WriteLine("/* cssminify @ " & Now() & " */") If cmt<>"" Then f.WriteLine(cmt) f.Write(Trim(data)) f.Close Set f = Nothing ' all done WScript.Quit