Simple stylesheet compression to save ~10% file size
authorAlexander Ebert <ebert@woltlab.com>
Thu, 27 Jun 2013 16:34:10 +0000 (18:34 +0200)
committerAlexander Ebert <ebert@woltlab.com>
Thu, 27 Jun 2013 16:34:10 +0000 (18:34 +0200)
wcfsetup/install/files/lib/system/style/StyleCompiler.class.php

index 4f2ec4ba30105f52770c0e09bc1a48dc623e2601..fa5c052a639716dfc717bb45905fcda4ea3b380f 100644 (file)
@@ -183,6 +183,28 @@ class StyleCompiler extends SingletonFactory {
                
                $content = $callback($content);
                
+               // compress stylesheet
+               $lines = explode("\n", $content);
+               $content = $lines[0] . "\n" . $lines[1] . "\n";
+               for ($i = 2, $length = count($lines); $i < $length; $i++) {
+                       $line = trim($lines[$i]);
+                       $content .= $line;
+                       
+                       switch (substr($line, -1)) {
+                               case ',':
+                                       $content .= ' ';
+                               break;
+                               
+                               case '}':
+                                       $content .= "\n";
+                               break;
+                       }
+                       
+                       if (substr($line, 0, 6) == '@media') {
+                               $content .= "\n";
+                       }
+               }
+               
                // write stylesheet
                file_put_contents($filename.'.css', $content);