Skip to content

Instantly share code, notes, and snippets.

@jreading
Forked from garth/gist:1388969
Last active January 21, 2017 17:54
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 2 You must be signed in to fork a gist
  • Save jreading/4437292 to your computer and use it in GitHub Desktop.
Save jreading/4437292 to your computer and use it in GitHub Desktop.
var css = 'insert lots of css here';
var files = {};
css = css.replace(/url\(["']?(\S*)\.(png|jpg|jpeg|gif)["']?\)/g, function(match, file, type)
{
var fileName = file + '.' + type;
var size = fs.statSync(fileName).size;
if (size > 4096) {
console.log('Skipping ' + fileName + ' (' + (Math.round(size/1024*100)/100) + 'k)');
return match;
}
else {
var base64 = fs.readFileSync(fileName).toString('base64');
if (typeof(files[fileName]) !== 'undefined') {
console.log('Warning: ' + fileName + ' has already been base64 encoded in the css');
}
files[fileName] = true;
return 'url("data:image/' + (type === 'jpg' ? 'jpeg' : type) + ';base64,' + base64 + '")';
}
});
@jreading
Copy link
Author

jreading commented Jan 2, 2013

Edited to allow for single or double quotes.

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