public ICssMinifier CreateMinifier(string minifierName) { #if DNXCORE50 ICssMinifier minifier = new KristensenCssMinifier(); #else ICssMinifier minifier; switch (minifierName) { case "KristensenCssMinifier": minifier = new KristensenCssMinifier(); break; case "MsAjaxCssMinifier": minifier = new MsAjaxCssMinifier(); break; case "YuiCssMinifier": minifier = new YuiCssMinifier(); break; default: throw new NotSupportedException(); } #endif return(minifier); }
public ICssMinifier CreateMinifier(string minifierName) { ICssMinifier minifier; switch (minifierName) { case "KristensenCssMinifier": minifier = new KristensenCssMinifier(); break; #if !NETSTANDARD1_6 case "MsAjaxCssMinifier": minifier = new MsAjaxCssMinifier(); break; case "YuiCssMinifier": minifier = new YuiCssMinifier(); break; #endif case "NUglifyCssMinifier": minifier = new NUglifyCssMinifier(); break; default: throw new NotSupportedException(); } return(minifier); }
/// <summary> /// method to minify the file /// </summary> /// <param name="results"></param> /// <param name="resultCss"></param> public void Minify(List <AnalysisResult> results, string resultCss) { try { string fileToProcess; if (InternalLinkCheck()) //Local file { if (_file[0].Equals('/')) { _file = _file.Replace('/', Path.DirectorySeparatorChar); _file = _file.Substring(1); //Remove first char } fileToProcess = Path.Combine(ProjectPath, _file); } else //Download { var webClient = new WebClient(); webClient.DownloadFile(_file, "temp"); fileToProcess = "temp"; } var fileInfo = new FileInfo(fileToProcess); Stadistics.TotalCssSize += fileInfo.Length; //Get size without minify var content = File.ReadAllText(fileToProcess); var minifier = new MsAjaxCssMinifier(); var minifyResult = minifier.Minify(content, false); //Save file File.AppendAllText(Path.Combine(ProjectPath, "css", resultCss), minifyResult.MinifiedContent); //Errors results.AddRange( minifyResult.Errors.Select( error => new AnalysisResult(_file.Replace("release", "src"), error.LineNumber, Strings.Name, error.Message, ErrorType.Instance))); results.AddRange( minifyResult.Warnings.Select( warning => new AnalysisResult(_file.Replace("release", "src"), warning.LineNumber, Strings.Name, warning.Message, WarningType.Instance))); } catch (Exception) { results.Add(new AnalysisResult(_file, 0, Strings.Name, Strings.FileProblem, ErrorType.Instance)); } }