Skip to content

Instantly share code, notes, and snippets.

@pingyen
Last active December 11, 2015 11:38
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save pingyen/4595305 to your computer and use it in GitHub Desktop.
Save pingyen/4595305 to your computer and use it in GitHub Desktop.
CSS Deflating Logic
function deflate(css) {
// remove remark
css = css.replace(/\/\*[\s\S]*?\*\//g, '');
// uniform @import
css = css
.replace(/@import\s+url\(\s*"([^"]+)"\s*\)\s*;/g, '@import "$1";')
.replace(/@import\s+url\(\s*\'([^\']+)\'\s*\)\s*;/g, '@import "$1";')
.replace(/@import\s+url\(\s*([\S^\)]+)\s*\)\s*;/g, '@import "$1";')
.replace(/@import\s*"([^"]+)"\s*;/g, '@import "$1";')
.replace(/@import\s*\'([^\']+)\'\s*;/g, '@import "$1";');
// uniform url()
css = css
.replace(/url\(\s*"([^"]+)"\s*\)/g, 'url($1)')
.replace(/url\(\s*\'([^\']+)\'\s*\)/g, 'url($1)')
.replace(/url\(\s*([\S^\)]+)\s*\)/g, 'url($1)');
// remove excess space charactor
css = css
.replace(/\s/g, ' ')
.replace(/ {2,}/g, ' ');
css = css
.replace(/ :/g, ':')
.replace(/: /g, ':')
.replace(/ ;/g, ';')
.replace(/; /g, ';')
.replace(/ ,/g, ',')
.replace(/, /g, ',')
.replace(/ {/g, '{')
.replace(/{ /g, '{')
.replace(/ }/g, '}')
.replace(/} /g, '}')
.replace(/:}/g, '}');
css = css.replace(/(^\s*)|(\s*$)/g, '');
return css;
}
@pingyen
Copy link
Author

pingyen commented Mar 4, 2015

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