Skip to content

Instantly share code, notes, and snippets.

@JavaScript-Packer
Last active August 29, 2015 14:24
Show Gist options
  • Save JavaScript-Packer/c554442567c5863b7900 to your computer and use it in GitHub Desktop.
Save JavaScript-Packer/c554442567c5863b7900 to your computer and use it in GitHub Desktop.
Very simple HTML minifier for http://www.whak.ca/HTMLZIP.htm - Hint: embed all external CSS and JavaScript for even more page loading perfomance, faster, quicker, less server calls, etc...
function kleen(e, r) {
return e.replace(/^ +| +$/g, "").replace(/^\t+|\t+$/g, "").replace(/^\r+|\r+$/g, "").replace(/^\n+|\n+$/g, "").replace(/\r?\n|\r|\x0a/g, "\n").replace(/(\r\n|\n|\r|\x0a)/gm, "\n").replace(/\n{2,}/g, "\n").replace(/\0/g, "\\0").replace(/\f{2,}/g, "\f").replace(/\v{2,}/g, " ").replace(/\/ +/g, "/").replace(/\t{2,}/g, " ").replace(/ {2,}/g, " ").replace(/\s\s+/g, " ").replace(/\s{2,}/g, "s").replace(/ *= */g, "=").replace(/<[^\S\f]*\![^\S\f]*--[^\S\f]*\[[^\S\f]*htmlclean-protect[^\S\f]*\][^\S\f]*--[^\S\f]*>([\s\S]*?)<[^\S\f]*\![^\S\f]*--[^\S\f]*\[[^\S\f]*\/[^\S\f]*htmlclean-protect[^\S\f]*\][^\S\f]*--[^\S\f]*>/gi, function(e, f) {
return r(f);
}).replace(/(<[^\S\f]*\?[^\S\f]*xml\b[^>]*?\?[^\S\f]*>)/gi, function(e, r) {
return o(r);
}).replace(/(<[^\S\f]*(\%|\?)[\s\S]*?\2[^\S\f]*>)/g, function(e, f) {
return r(f);
}).replace(/(<[^\S\f]*\?[^\S\f]*php\b[\s\S]*)/gi, function(e, f) {
return r(f);
}).replace(/(<[^\S\f]*jsp[^\S\f]*:[^>]*?>)/gi, function(e, f) {
return r(f);
}).replace(/(<[^\S\f]*\![^\S\f]*--[^\S\f]*\#[\s\S]*?--[^\S\f]*>)/g, function(e, f) {
return r(f);
}).replace(/(?:[\t ]*[\n\r][^\S\f]*)?(<[^\S\f]*\![^\S\f]*(?:--)?[^\S\f]*\[[^\S\f]*if\b[^>]*>(?:(?:<[^\S\f]*\!)?[^\S\f]*--[^\S\f]*>)?)(?:[\t ]*[\n\r][^\S\f]*)?/gi, function(e, f) {
return r(f);
}).replace(/(?:[\t ]*[\n\r][^\S\f]*)?((?:<[^\S\f]*\![^\S\f]*--[^\S\f]*)?<[^\S\f]*\![^\S\f]*\[[^\S\f]*endif\b[^>]*>)(?:[\t ]*[\n\r][^\S\f]*)?/gi, function(e, f) {
return r(f);
}).replace(/[ ]+/g, " ").replace(/1\.0/g, "1").replace(/^(\[[^\]]+\]>)\s*/, "$1").replace(/\s*(\x3c!\[endif\])$/, "$1").replace(/^(?:\s*\/\*\s*\x3c!\[CDATA\[\s*\*\/|\s*\/\/\s*\x3c!\[CDATA\[.*)/, "").replace(/(?:\/\*\s*\]\]>\s*\*\/|\/\/\s*\]\]>)\s*$/, "");
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment