1: /// <summary>
2: /// Strips whitespace from a CSS file
3: /// </summary>
4: /// <param name="Input">Input text</param>
5: /// <returns>A stripped CSS file</returns>
6: public static string StripWhitespace(string Input)
7: {
8: Input = Input.Replace(" ", string.Empty);
9: Input = Input.Replace(System.Environment.NewLine, string.Empty);
10: Input = Input.Replace("\t", string.Empty);
11: Input = Input.Replace(" {", "{");
12: Input = Input.Replace(" :", ":");
13: Input = Input.Replace(": ", ":");
14: Input = Input.Replace(", ", ",");
15: Input = Input.Replace("; ", ";");
16: Input = Input.Replace(";}", "}");
17: Input = Regex.Replace(Input, @"(?<=[>])\s{2,}(?=[<])|(?<=[>])\s{2,}(?= )|(?<= )\s{2,}(?=[<])", string.Empty);
18: Input = Regex.Replace(Input, "([!{}:;>+([,])s+", "$1");
19: Input = Regex.Replace(Input, "([^;}])}", "$1;}");
20: Input = Regex.Replace(Input, "([s:])(0)(px|em|%|in|cm|mm|pc|pt|ex)", "$1$2");
21: Input = Regex.Replace(Input, ":0 0 0 0;", ":0;");
22: Input = Regex.Replace(Input, ":0 0 0;", ":0;");
23: Input = Regex.Replace(Input, ":0 0;", ":0;");
24: Input = Regex.Replace(Input, "background-position:0;", "background-position:0 0;");
25: Input = Regex.Replace(Input, "(:|s)0+.(d+)", "$1.$2");
26: Input = Regex.Replace(Input, "[^}]+{;}", "");
27: Input = Regex.Replace(Input, "(/" + Regex.Escape("*") + ".*?" + Regex.Escape("*") + "/)", string.Empty);
28: return Input;
29: }