From 7d3044fbedc082a6e70a6e8ae5b5cb23155ff469 Mon Sep 17 00:00:00 2001 From: dima levchenko Date: Sat, 31 Oct 2015 13:06:58 +0200 Subject: [PATCH] multiline tags (linkedin), and preserve spaces in the begining of the line (github source code view) --- js/squanchify.js | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/js/squanchify.js b/js/squanchify.js index f8f79d4..0409ab5 100644 --- a/js/squanchify.js +++ b/js/squanchify.js @@ -58,17 +58,20 @@ squanchify = function(squanchiness){ var listOfSelectors = ["em","a","span","li","p","h1","h1","h2","h3","h4","h5","h6","div"]; - var tagRegex = /<.*>/g; + var tagRegex = /<[^>]*>/g; var escapedHTMLRegex = /\&[a-z]+\;/i; - var splitRegex = /\s+|\s*<.*>\s*/; + var splitRegex = /\s+|\s*<[^>]*>\s*/; var replacementRegex = /\w+\'*\w*/; + var prefixSpacesRegex = /\s*/; listOfSelectors.forEach(function(selector){ var DOMElements = document.querySelectorAll(selector); for (var i = 0; i < DOMElements.length; i++){ - var elementText = DOMElements[i].innerHTML.trim(); + var innerHTML = DOMElements[i].innerHTML; + var prefixSpaces = prefixSpacesRegex.exec(innerHTML); + var elementText = innerHTML.trim(); if (elementText) { @@ -190,7 +193,7 @@ squanchify = function(squanchiness){ // Dad! // Oh, sorry Jerry, I'll buy you a new one. You know, from a ten-year-old kid who did ten times as good a job. squanchedWords = unSquanchedWords.join(joinerString); - DOMElements[i].innerHTML = squanchedWords.trim(); + DOMElements[i].innerHTML = prefixSpaces + squanchedWords.trim(); } } });