Skip to content

Instantly share code, notes, and snippets.

@kevindb
Last active February 16, 2017 22:52
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save kevindb/d6c656d155239c9f674f to your computer and use it in GitHub Desktop.
Save kevindb/d6c656d155239c9f674f to your computer and use it in GitHub Desktop.
ColdFusion Compress HTML
/**
* @hint Removes whitespace from HTML code
Originally authored by Jordan Clark (JordanClark@telus.net)
*/
public string function compressHtml(
required string html,
numeric level = 2
){
local.response = this.trim(arguments.html);
if (arguments.level == 1) {
// Remove whitespace at beginning of line
local.response = reReplaceNoCase(local.response, "\n+\s+", chr(10), "all");
}
if (arguments.level >= 2) {
// Replace multiple whitespace characters with a single space
local.response = reReplaceNoCase(local.response, "\s{2,}", " ", "all");
}
if (arguments.level >= 3) {
// Remove whitespace in between angle brackets
local.response = reReplaceNoCase(local.response, ">\s+<", "><", "all");
// Remove HTML and CF comments
local.response = reReplaceNoCase(local.response, "<!--[^>]+>", "", "all");
}
// Remove whitespace in between paired punctuation
if (arguments.level >= 4) {
local.response = reReplaceNoCase(local.response, "([>\(\{\[])\s+", "\1", "all");
local.response = reReplaceNoCase(local.response, "\s+([<\)\}\]])", "\1", "all");
}
return local.response;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment