Skip to content

Instantly share code, notes, and snippets.

@clipperhouse
Created September 7, 2011 17:50
Show Gist options
  • Save clipperhouse/1201239 to your computer and use it in GitHub Desktop.
Save clipperhouse/1201239 to your computer and use it in GitHub Desktop.
CSS minifier in one line
var minified = Regex.Replace(css, @"\s*([,>+;:}{]{1})\s*", "$1").Replace(";}", "}");
// ...where css is a string containing valid CSS
// There are several ways to optimize this; I would use a compiled regex and
// put it in an extension method for ease of use
public static class Extensions {
static Extensions() // static constructor
{
_cssregex = new Regex(@"\s*([,>+;:}{]{1})\s*", RegexOptions.Compiled);
}
private static Regex _cssregex;
public static string MinifyCss(this string s)
{
if (s.IsNullOrEmpty())
return s;
return _cssregex.Replace(s, "$1").Replace(";}", "}");
}
}
@clipperhouse
Copy link
Author

There’s a difference between the comments and the quoted stuff I think. Comments can be wiped out with little consideration for what’s in them. The quoted content needs to be “taken out of harm’s way”, then minify everything else, then put it back verbatim. An escaped quote within content would be just enough to make it a PITA. :)

(Yes, it would be a few distinct passes.)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment