Skip to content

Instantly share code, notes, and snippets.

@ryanand26
Created April 8, 2015 14:37
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 ryanand26/3153c41ac70478dbc1b1 to your computer and use it in GitHub Desktop.
Save ryanand26/3153c41ac70478dbc1b1 to your computer and use it in GitHub Desktop.
Replace text with lorem ipsum
/*!
* Loose Lorem Ipsum replacer
*/
(function(window, document, $, undefined) {
'use strict';
var loremIpsum = ["lorem", "ipsum", "dolor", "sit", "amet", "consectetur", "adipiscing", "elit", "sed", "do", "eiusmod", "tempor", "incididunt", "ut", "labore", "et", "dolore", "magna", "aliqua", "ut", "enim", "ad", "minim", "veniam", "quis", "nostrud", "exercitation", "ullamco", "laboris", "nisi", "aliquip", "ex", "ea", "commodo", "consequat", "duis", "aute", "irure", "in", "reprehenderit", "voluptate", "velit", "esse", "cillum", "eu", "fugiat", "nulla", "pariatur", "excepteur", "sint", "occaecat", "cupidatat", "non", "proident", "sunt", "culpa", "qui", "officia", "deserunt", "mollit", "anim", "id", "est", "laborum", "at", "vero", "eos", "et", "accusamus", "iusto", "odio", "dignissimos", "ducimus", "qui", "blanditiis", "praesentium", "voluptatum", "deleniti", "atque", "corrupti", "quos", "dolores", "quas", "molestias", "excepturi", "sint", "occaecati", "cupiditate", "non", "provident", "similique", "sunt", "in", "culpa", "officia", "deserunt", "mollitia", "animi", "id", "est", "laborum", "dolorum", "fuga", "et", "harum", "quidem", "rerum", "facilis", "expedita", "distinctio", "nam", "libero", "tempore", "cum", "soluta", "nobis", "eligendi", "optio", "cumque", "nihil", "impedit", "quo", "minus", "quod", "maxime", "placeat", "facere", "possimus", "omnis", "voluptas", "assumenda", "est", "dolor", "repellendus", "temporibus", "autem", "quibusdam", "aut", "officiis", "debitis", "necessitatibus", "saepe", "eveniet", "ut", "voluptates", "repudiandae", "molestiae", "recusandae", "itaque", "earum", "hic", "tenetur", "a", "sapiente", "delectus", "reiciendis", "voluptatibus", "maiores", "alias", "consequatur", "perferendis", "doloribus", "asperiores", "repellat"],
activeList = [];
function isTextNode(){
// If this is a text node, return true.
return( this.nodeType === 3 );
}
function init () {
var rootElem = $('main');
var textNodes = rootElem.find('h1,h2,h3,h4,h5,p,a,li,button,strong').contents().filter(isTextNode);
textNodes.each(replacer);
}
function convertString(textNode, index) {
var text = textNode.nodeValue;
var words = text.replace(/[£!?,\.]/g, "").split(/\s/);
$.each(words, function (i, word) {
var replacement = wordReplace(word);
text = text.replace(word, replacement);
});
return text;
}
function wordReplace(word) {
var replacement;
//return early if a number
if (!isNaN(word * 1)) {
return word;
}
if (activeList.length === 0) {
activeList = loremIpsum.slice(0);
}
replacement = activeList.pop();
if (word[0] === word[0].toUpperCase()) {
replacement = replacement.replace(replacement[0], replacement[0].toUpperCase());
}
return replacement;
}
function replacer(index, node) {
var $node = $(node),
replacement = convertString(node, index);
//console.log(replacement);
$(node).replaceWith(document.createTextNode( replacement ));
}
$(document).ready(init);
}(window, document, jQuery));
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment