2 module['exports'] = function zalgo(text, options) {
3 text = text || ' he is here ';
41 var all = [].concat(soul.up, soul.down, soul.mid);
43 function randomNumber(range) {
44 var r = Math.floor(Math.random() * range);
48 function isChar(character) {
50 all.filter(function(i) {
51 bool = (i === character);
57 function heComes(text, options) {
61 options = options || {};
63 typeof options['up'] !== 'undefined' ? options['up'] : true;
65 typeof options['mid'] !== 'undefined' ? options['mid'] : true;
67 typeof options['down'] !== 'undefined' ? options['down'] : true;
69 typeof options['size'] !== 'undefined' ? options['size'] : 'maxi';
70 text = text.split('');
75 result = result + text[l];
76 counts = {'up': 0, 'down': 0, 'mid': 0};
77 switch (options.size) {
79 counts.up = randomNumber(8);
80 counts.mid = randomNumber(2);
81 counts.down = randomNumber(8);
84 counts.up = randomNumber(16) + 3;
85 counts.mid = randomNumber(4) + 1;
86 counts.down = randomNumber(64) + 3;
89 counts.up = randomNumber(8) + 1;
90 counts.mid = randomNumber(6) / 2;
91 counts.down = randomNumber(8) + 1;
95 var arr = ['up', 'mid', 'down'];
98 for (var i = 0; i <= counts[index]; i++) {
100 result = result + soul[index][randomNumber(soul[index].length)];
108 return heComes(text, options);