2 module['exports'] = function zalgo(text, options) {
3 text = text || " he is here ";
41 all = [].concat(soul.up, soul.down, soul.mid),
44 function randomNumber(range) {
45 var r = Math.floor(Math.random() * range);
49 function is_char(character) {
51 all.filter(function (i) {
52 bool = (i === character);
58 function heComes(text, options) {
59 var result = '', counts, l;
60 options = options || {};
61 options["up"] = typeof options["up"] !== 'undefined' ? options["up"] : true;
62 options["mid"] = typeof options["mid"] !== 'undefined' ? options["mid"] : true;
63 options["down"] = typeof options["down"] !== 'undefined' ? options["down"] : true;
64 options["size"] = typeof options["size"] !== 'undefined' ? options["size"] : "maxi";
65 text = text.split('');
70 result = result + text[l];
71 counts = {"up" : 0, "down" : 0, "mid" : 0};
72 switch (options.size) {
74 counts.up = randomNumber(8);
75 counts.mid = randomNumber(2);
76 counts.down = randomNumber(8);
79 counts.up = randomNumber(16) + 3;
80 counts.mid = randomNumber(4) + 1;
81 counts.down = randomNumber(64) + 3;
84 counts.up = randomNumber(8) + 1;
85 counts.mid = randomNumber(6) / 2;
86 counts.down = randomNumber(8) + 1;
90 var arr = ["up", "mid", "down"];
93 for (var i = 0 ; i <= counts[index]; i++) {
95 result = result + soul[index][randomNumber(soul[index].length)];
103 return heComes(text, options);