├── demos
└── index.html
├── zalgo.js
├── jquery.zalgo-0.0.0000001.js
└── ReadMe.md
/demos/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Xxo
5 |
6 |
7 |
8 |
11 |
12 |
13 | Then there was all this spaghetti in my pockets
14 | But I could have lost a lot more.
15 | And this is my poetry slam.
16 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/zalgo.js:
--------------------------------------------------------------------------------
1 | var sys = require('sys');
2 |
3 | var soul = {
4 | "up" : [
5 | '̍','̎','̄','̅',
6 | '̿','̑','̆','̐',
7 | '͒','͗','͑','̇',
8 | '̈','̊','͂','̓',
9 | '̈','͊','͋','͌',
10 | '̃','̂','̌','͐',
11 | '̀','́','̋','̏',
12 | '̒','̓','̔','̽',
13 | '̉','ͣ','ͤ','ͥ',
14 | 'ͦ','ͧ','ͨ','ͩ',
15 | 'ͪ','ͫ','ͬ','ͭ',
16 | 'ͮ','ͯ','̾','͛',
17 | '͆','̚'
18 | ],
19 | "down" : [
20 | '̖','̗','̘','̙',
21 | '̜','̝','̞','̟',
22 | '̠','̤','̥','̦',
23 | '̩','̪','̫','̬',
24 | '̭','̮','̯','̰',
25 | '̱','̲','̳','̹',
26 | '̺','̻','̼','ͅ',
27 | '͇','͈','͉','͍',
28 | '͎','͓','͔','͕',
29 | '͖','͙','͚','̣'
30 | ],
31 | "mid" : [
32 | '̕','̛','̀','́',
33 | '͘','̡','̢','̧',
34 | '̨','̴','̵','̶',
35 | '͜','͝','͞',
36 | '͟','͠','͢','̸',
37 | '̷','͡',' ҉'
38 | ]
39 | };
40 |
41 | var all = [].concat(soul.up, soul.down, soul.mid);
42 |
43 | var zalgo = {};
44 |
45 | function randomNumber(range) {
46 | r = Math.floor(Math.random()*range);
47 | return r;
48 | };
49 |
50 | function is_char(character) {
51 | var bool = false;
52 | all.filter(function(i){
53 | bool = (i == character);
54 | });
55 | return bool;
56 | }
57 |
58 | zalgo.heComes = function(text, options){
59 | result = '';
60 |
61 | options = options || {};
62 | options["up"] = options["up"] || true;
63 | options["mid"] = options["mid"] || true;
64 | options["down"] = options["down"] || true;
65 | options["size"] = options["size"] || "maxi";
66 | var counts;
67 | text = text.split('');
68 | for(var l in text){
69 | if(is_char(l)) { continue; }
70 | result = result + text[l];
71 |
72 | counts = {"up" : 0, "down" : 0, "mid" : 0};
73 |
74 | switch(options.size) {
75 | case 'mini':
76 | counts.up = randomNumber(8);
77 | counts.min= randomNumber(2);
78 | counts.down = randomNumber(8);
79 | break;
80 | case 'maxi':
81 | counts.up = randomNumber(16) + 3;
82 | counts.min = randomNumber(4) + 1;
83 | counts.down = randomNumber(64) + 3;
84 | break;
85 | default:
86 | counts.up = randomNumber(8) + 1;
87 | counts.mid = randomNumber(6) / 2;
88 | counts.down= randomNumber(8) + 1;
89 | break;
90 | }
91 |
92 | var arr = ["up", "mid", "down"];
93 | for(var d in arr){
94 | var index = arr[d];
95 | for (var i = 0 ; i <= counts[index]; i++)
96 | {
97 | if(options[index]) {
98 | result = result + soul[index][randomNumber(soul[index].length)];
99 | }
100 | }
101 | }
102 | }
103 | return result;
104 | };
105 |
106 | sys.puts('\n\n\n\n\n\n\n');
107 | sys.puts(zalgo.heComes('its a chain'));
108 | sys.puts('\n\n\n\n\n\n\n');
109 |
110 |
--------------------------------------------------------------------------------
/jquery.zalgo-0.0.0000001.js:
--------------------------------------------------------------------------------
1 | (function ($) {
2 | var soul = {
3 | "up" : [
4 | '̍','̎','̄','̅',
5 | '̿','̑','̆','̐',
6 | '͒','͗','͑','̇',
7 | '̈','̊','͂','̓',
8 | '̈','͊','͋','͌',
9 | '̃','̂','̌','͐',
10 | '̀','́','̋','̏',
11 | '̒','̓','̔','̽',
12 | '̉','ͣ','ͤ','ͥ',
13 | 'ͦ','ͧ','ͨ','ͩ',
14 | 'ͪ','ͫ','ͬ','ͭ',
15 | 'ͮ','ͯ','̾','͛',
16 | '͆','̚'
17 | ],
18 | "down" : [
19 | '̖','̗','̘','̙',
20 | '̜','̝','̞','̟',
21 | '̠','̤','̥','̦',
22 | '̩','̪','̫','̬',
23 | '̭','̮','̯','̰',
24 | '̱','̲','̳','̹',
25 | '̺','̻','̼','ͅ',
26 | '͇','͈','͉','͍',
27 | '͎','͓','͔','͕',
28 | '͖','͙','͚','̣'
29 | ],
30 | "mid" : [
31 | '̕','̛','̀','́',
32 | '͘','̡','̢','̧',
33 | '̨','̴','̵','̶',
34 | '͜','͝','͞',
35 | '͟','͠','͢','̸',
36 | '̷','͡',' ҉'
37 | ]
38 | };
39 |
40 | var all = [].concat(soul.up, soul.down, soul.mid);
41 |
42 | var zalgo = {};
43 |
44 | function randomNumber(range) {
45 | r = Math.floor(Math.random()*range);
46 | return r;
47 | };
48 |
49 | function is_char(character) {
50 | var bool = false;
51 | all.filter(function(i){
52 | bool = (i == character);
53 | });
54 | return bool;
55 | }
56 |
57 | $.zalgo = { "heComes" : function(text, options){
58 | result = '';
59 |
60 | options = options || {};
61 | options["up"] = options["up"] || true;
62 | options["mid"] = options["mid"] || true;
63 | options["down"] = options["down"] || true;
64 | options["size"] = options["size"] || "maxi";
65 | var counts;
66 | text = text.split('');
67 | for(var l in text){
68 | if(is_char(l)) { continue; }
69 | result = result + text[l];
70 |
71 | counts = {"up" : 0, "down" : 0, "mid" : 0};
72 |
73 | switch(options.size) {
74 | case 'mini':
75 | counts.up = randomNumber(8);
76 | counts.min= randomNumber(2);
77 | counts.down = randomNumber(8);
78 | break;
79 | case 'maxi':
80 | counts.up = randomNumber(16) + 3;
81 | counts.min = randomNumber(4) + 1;
82 | counts.down = randomNumber(64) + 3;
83 | break;
84 | default:
85 | counts.up = randomNumber(8) + 1;
86 | counts.mid = randomNumber(6) / 2;
87 | counts.down= randomNumber(8) + 1;
88 | break;
89 | }
90 |
91 | var arr = ["up", "mid", "down"];
92 | for(var d in arr){
93 | var index = arr[d];
94 | for (var i = 0 ; i <= counts[index]; i++)
95 | {
96 | if(options[index]) {
97 | result = result + soul[index][randomNumber(soul[index].length)];
98 | }
99 | }
100 | }
101 | }
102 | return result;
103 | }};
104 |
105 | $.fn.heComes = function (opts) {
106 | this.each(function (opts) {
107 | $(this).text($.zalgo.heComes($.trim($(this).text()), opts));
108 | });
109 | }
110 |
111 | })(jQuery);
112 |
--------------------------------------------------------------------------------
/ReadMe.md:
--------------------------------------------------------------------------------
1 | ï͈̦͚̗̙͕̳͈̩͇̮̺̞̫͍͙̠͎̥̱͇̘̞͇̟͍̼̯̫̼͙͈̭̲̘͚̯̝̙̩͐ͨ̔ͪ̍̌̽͂ͩͤͫ̌̾ͪͫ̏ͩͅt͎̠͔̼̯̗͈̫͑ͬ̈͊ͣͭ̐́ͬ̍̈͊̇ͩ̿ͬ̇̿͛ ̱͓͖̭̩̱͚͍̤̮͔̼̪̭̩̖̘̰̫̥̪̱͖͖̫̥̯͙̻̤̳̖͓͔̣͚ͨͮͧ̄̆ͪ̇̄͐ͩ̋ͭ͂̋ͥṣ͈͈͓̱̯̝͙͕̻̟͖̼̼̫̟̱̰̩̞̹̦͔͉̖̫̘̣͔̜̮̹̹̼͎̲̟̖̯̟̝̫̥̪͕̜̜̙̩͉͕̅̍̉̓ͨ͗̋͗̽̊͌ͪ̾̋͛̌ͪ̾̚ͅṯ͖̫͚͓̬̞̘͈̺̺̳̭̘͙͈̲͈͉̹͕̳̩͎̘͎̫̹̗̼̣̻̙͇̭͙̭̲̅ͨ̓͋̉̉̄ȁ̺̗͇̮̘͓̜̫̟̼̭̠̩̗̬̘̯̰̪̲͓̟̤͕͚̤̳̤̜̭̫̫̮͚̞͕̼͔͓̙̹̝͙̙͓̳̬̯̣̭̝͓̦̝̤͙̬ͯ̇̐̈ͩͅͅr̞̼̹̗͓͔̳̘͈͓̙̙̺̖̹̖̬̯̙̜̪̬̞͉̥̙̺͙̲͚͖̖̭̠̺͈̩͙̰̪̞̗̼͚̬͔̫͈͍͇̰̤̣̍̌͑ͪ̈ͧͩ̈̑̍̈̈̚ͅṯ̦̹̝͍͈̜͕͍͇̪̗̦̏̌ͩ̈͆ͦ͒͊ͩͦ͐͌͊̊ͯͩ̎͂ͅe͙̻͙̠͎͓͖̟̻̖̘͉̹̩̙̭͚̫̪͓̤̤͖̯͓͚͔̠̟̟͈̬̣̬̟̘̜̗͖̭̥̳͎͕̪̙̮̮̼̤̖̙̩̼̤͕̣̱̻̞̺̎̈̉̃͒ͮ͐ͅd̤̻̯̺̰̖̫̪͙͔̣̖̲̹̠̩̟͇̭̹̱̯̪̮̬̭̯̬̞̜̼͙͇̮̻̲̟͓̥̣̼̮͉͕̫̦͔̟̭̥̻̳̩̻̙̥̩̰͎̜͔͉ͮͣ̂ͪ̈ ̳̩̙̰͈͖͇̲̙̗̬̦͍̮̦̰̖̙̪͇̮͇͓̜̜͉̞͕̪̘͇͖̰̰̬͙͚͕̙̩̥̦̭̤̹̳̼̠̭̬̠̤͎̤͇̠̬͈͓̰̠͔͕̪̘̰ͩ̈̀ͧͨͦ̊ͥ̍ͭͅo̗͓̩̝͉ͩ̉̔̈̓̈̇̾͂̂͋͗̀̐ű̘̟͔͚̟͚̜͈̞͉̪̼̼̓̌̽ͨͣ̿́̓͗̋̚ͅt͕̖͚̗̣̻͈̭̼̻͓͉͓̟̱̮̱̫̖̗̩̦̩̱̟̠͎̬ͨͮ̂̌ͨͭ͌̏̃̐ͅ ͓̱̖̰̲̥̟̙̪͚̺̠̖̤͎̮̋̈̂ͭ͗̈ͩ͐͐̐͒͆̃ͭͦŵ̻̻̮̟͇̥͕̼̺̟̜̞͚̰̝̳͕̳̻̠͓̟̯̖̞̺͍̺̜̥̠͉̙͔̤̙̦̜͖̰̯̲̮͖͇̝̗̝͓̥̝̬͎̻ͧͭ̉ͭ͋ͨ̑ͅi͎̟̹̬̺̲̘̫̤̹̼̤̳̮̘̲̠̫̗͇̬̭̯̲̲̥̳̫̫̭̱̬̣͓̝̗̲̞͍͙̻͉͈̣͚̳ͪ̊̇̃͊ͮ̓͌͒̑ͯͭ̑̌̈̈͌ͤt̩̜̯̭͙̦͖͓̺̼̰̜̪͔̻̭̭͉̞̪͎̫ͭ̍ͪ͑̎͒͒̂̒ͦ̓h̩͎̯̰̮̣̩̹͇̤̰̟̳͚̬͎̺̝̘͚͓̦̗͖̞̱̘̠̤͙̝̙̺ͣ̈ͧ̿̽͗͛̄ͮ̓̎̔́̉ͅ ̮̭̯͕̼̰͖͍̱̙̲͈̲͎͙̭̯ͣ̾̐̐̃̔͑̎̂̋̃̋̏ó̫̠̥͇̰̙̮̫̪̪̭̰͔̞͕̪̣͕̟̙̠̘̥̬̟̪̦̱͕͂͊͗͋̒n̥͎͓̲̹̖̟̳͕͖͙͕̫͙͈̝͈̟͔̘͎̟̲̱͎̬̺̘͋́̌́̔ͦ̊̅ͥͥ̉ͫ͗ͧ̏̏͂ͅě̩͙̞͙̞̖̲͈̗̻̯̣̰̬̤̭̖̱̩̲͈̞̘͕͙͍̖̙͎̯̩̟̻̗͉̩̲͍͍͙͔̤͓̲̠̫̥̪̜͕̝͔̦̣̱̜̹͓̃̿ͤ̀ͩ̇͌̉ͭ̾̀ͤ ͔͇̩̖̙͈̰̥̝͚͍͖̹̙͉̹̞̯̙̺̙̬̩͇̞̺͉̮̦̞̪͈̠̦͇̠͓̭͇͍̬̯̬͎̻͙͓̟̙̲̜͇͉̗͚̱̼̭͚͔̖͕̺͓̽̆̃̽̈̎̏͋ͦͨ̏̿̚ͅͅċ͓̜̠̼̬͑ͫ̑͌̔͛̎̃̓͒͛̃̐ͣ̊ͤ̌̚ͅǒ̺͈̤̝̹͖̯̪̹͓̤͓̦̯̟̬̳̦͖̱̰̌̎̋̃ͫ̒̔̉̋ͫ̌́ͦ̒͂ͥͅm̙̬͉̭̬̼͌̉̇͗͆͑͐͋̌̀̄͛̑͒ͤ̒m͍̭̘̞͈̜̙̻͔̪̮̥̹̥̹̦̜̱̘̤̠͆̿͒̿ͦ̉̊̏̑̚ĭ͖̞̫̫̝͙̝͖͕̣͓̬̣̲͇̼̩͍̞͙͔̲͍͕̪͕͇̝̹̟̫̫̻̟̹̺̹̻͓̝̘̞̪̹̤̱̣̮̜͔͈̏͋͂̿ͩ͊́̇ͨ̒̂̉ͅͅͅͅͅt͍͎̥͈̘͍̭͉̫̯̼̲̬̜͇͉͓͉͉̮̰̭̮̤̭͉͍̭̹̬͉̘̊̌̾ͧ̓̅ͤ̽̈͋̄͂ ̺̜̪͓ͪ̿̍ͩ͊̃ͪ̃̄̓̂́ͥ̆ä̫̳̜̣̲̳̼̦͎̩̳͇̟̱͈̳͙̭̭̭̼̟̘̯͎̫͖̭͇̼̖̘̫̻̙̫̮͈̗̫̘̟͎̠̟͖̩̻̫͉͈͎̰̩̘̂͂̆̓̉̄̌̊̊̋͑͐̊͑ͮ̃̇ͦͅn̬͈̥̯̤͔͓̤͍̦͖̻̤̥͖̖̼̘͖̩̜̩̪̼͛͌́̇̈ͤ̂̏ͪ̓ͫ̓͊ͅd̖͓͔̦̟͚̬̺̲̪̼͚̝͉͎̠͓͖̖̟̫͕̙̙̜̗̞̮͍̰͓̹̜̻̱̪̫̻͚͉ͫͪ̎ͬ͂ͣ̊͌ͬ̈̄͑ ̘͈̻͇̟̠̟̝͕̱̗͔͚̮̯̞̲̠̪͔̬͓̭̲͉̙͇͇̪͔̟͍͍ͤ̂͆̈̚ͅt̼̙͇̦̫͙̗̘͉̭͕̭̮͕̞̣̭̫̫͖̫̗͉̠̗̱̹̱͉̹̬̦̗̠͇̘̟͉̟̲̫̦͚͈̲̺͎̺̣̦͈͈̝͓̟̐̊͛̐̌ͤͅͅͅh̖̯̖͔̟̮̞̮̱̱͎͎̼̟̪̥̲͈͔̹̠̜͖̤̞̬̪͎̜̩̳̋̈̎̃͋̔̂̋ͫ̈ͭ͋̃̍ͅe̼̮̖̭̪͓̩͉̙͚̜̱̜̻͓̫͚̠͖̲͉̼̎̓̈ͮͤ̔ͥ̔̂̚̚n̬̳͚̹̬͚̼̳̱̲̯̰̭͉̳͙̲̖͓̙͍̩͔̯͈͉̙̝̳͔͔͚̗̹̲̭̮̳̺̙͙͉͖̩̰̜͎̬̦̯̗̗͎͕̥͕̼̳̯̊͋̈̈ͅͅ ͓̼̩̫͙̘͎̺͚̪̦̖̭̼͖͍̮̱͇̤̠͙̥̬̬̮̺̱͕̖̭͚͇̝͙̝͚̠̳͖͙̮̥̮͉͓͎̖̱̼̱̩̯̬̺͍̠̜̋͗ͧ̾ͮ̓ͪ̌͐̍ͣ͛̌ͅͅṭ̯̬̥̬̮̤̩̺͍̞̜̖̹̣̰̳̲̜̟͉͕̫̒ͯ̂͋ͭh͉͓͉̹̹̖̦̩̠̫̭̣̭̯̟̖̣͉̜̟͇̥̹̳̩̙͕͍͍͍͖̫̥ͮ͗͂̌͛͑͐̾i̝̺͉̺̳̖̝͓̺̹͍͕̪̩̲̙̭̯̗̥͔̼̥͉̱͕̗̩̠̺̪̤͕̘̪͎͚̗͕̻̲̻̫̮͎̜̬̳͉͍͕͖͙̠͉͓̟̖̙̟̦͗͆̀̈͂̍͋̿́͐ͬͫ̓̀n̙̲̻̮̭̣̜͚̺̖̹̬̮̼̤̞̜̰͎͔̪͍̰̣̺̮̼͈̬͔̖͍̣̪̗̼͓̘͉͙̝̗̭̺͖̪͕̩̺͔̰̗͇̹̺̙̩̘̱̼̬̟̜̻͇ͥ̏ͧͩ̓̽ͨ̎̈̿ͤ̌ͣ̇̉͋ͩ̓̚ͅḡ̫͉̣̪̩̫̦̻̟̼̘͍͎̥̣̼̺̝̦̫̤̭̖̹͙̥͉͓̩̩̹̠͓͚̣̂ͭ̅̂ͣͪ͒̽͐̈̇̒š̠̹̮̼̮̱̞̺̫̝͚͖̻̯͍͙̼̖̜̫̰̝̝̩̣̰̻͈̰̪̖̤̹̺̝͇̥͇̻͖̯̜̞̞̫̰̘̦̹̳̬̠̩̣̝̺̘̜͕̞̭͓̮̩̣̿ͨͤ͌ͣ́ͫ̿̄̓̈ͅͅ ̗̼̜͎͓͕͖̫͉͕̜͎̞͎̘͍͕͇̣͇̝̣̲̲̼̞̥̥̼͈̻̖͍̣̩̝͎͓̲͉̜̣͎̥͚̬̰̺̖̰̺̬̤̺̪̬̝̣̫̲̖̳̬͇̘ͨ̓ͮ̾͊͒ͩ̊̓̄ͬ̒̚ͅs̞̘̞̦͖̤͇͔ͭ͋̂̌ͩͬͅͅṫ̞̣͈̦̖̥̖̠̳̳̞̯͈̩͓̺̺͈͉̖̘̞̟̿͊̐́̓ͩ̓ͤ͑͒̈̈a̰̹̲̲̞̦̞͚̦̖̰̼̥̖̜̩̬͍̰͈͇̦͍̗͚̜̼̱̘̟̩̟̜̞̜̣̥͖̦̳̖̯̜̯̗͕̟̘͍͊͊͗ͮ̋̐ͅṙ̞̫̠̤̖̺͖̘̝̯͉̝̞̗̟̝̫̼̲̯̝̮͇̹̻̩͖̦̩̝̺̲̩̳̭͔̙͔͇͓̯̗̜͚̳̪̜̦̻͖̜̐̆ͭ̔̑̂̐͌ͫ͒͆̚̚ṱ̹͈̙̙̬̹̹̝̠̦͇̤͔̙̘̼͍̯͍̙̺͖̭̯͎͔̟̠͙͑ͫͯ͑̃̉̏͋̾͐ͅͅȇ̟̩͙̖̬͚̖̠͚͔̤̞̥̹̼̽ͤ̔ͧ̓ͨ͋͐̾̒̉̔ͬ̂̅̏͌ͅd̙͉̼̱͔̮̳̞̜̊͛̋͋ͩ̏͊̽͂͊̈̉̋̃̂̌ͬ̈͒ͅ ̯̞͖͕̦̣͓͈̳͕͔̻̳̮̬̱͚̞͙̺͚̬͕̘̞͔̼͖̫̠̫̩̼̮̥̫̦̻͖̻̮ͧ͗ͤͦ͐̿̓ͭͫ́̋̋ͤ̄͗ͧͨ͆̃ͅͅͅͅͅt̩͔̟̤͚̼̱̭̜̳͔̗̘͚̟͓̭͙͎̖̲̜̻̲͍̠̹̙̥̘ͤ͒͑ͥͥ̎̍̾̊ͫ̓ͪͭͯ͋̈̈ͅͅͅô̼̭̙͕̼̰̠̫̗͉͎̩̬̭̦̺̭̘̲̝͍̮͍̞̹͇͎͚̩͕̟͇̆ͬͨ̒͒̉ͨͪ ̺͇͈̤̙̭͎̦̲̻̳͚̗̬̣̺̯͕̹̤̼̙̳͍̟͔̲̯̤̤̗͓̬̯̙̠̝͖͖͖̘͔̜̮̹͓͉͈̞̭̐ͨ̍̆̓ͅǧ̝̻̼̻̪̘̪̤̺͎͙̯̯̜̞̗̫͍͙̝͇̟̫̱̻̞̫̦̗̺̳̮̦͎͕͈͋̌ͦ̈̋̾̔ͨ̽ͯͮͤ͐̽͑̄̿̋ĕ̮̹̳͍̝̞̹̹̠̺͚̭̲̩̩̯̝̬͇̠̲̞͕͉̦͖̊ͫ́͑͋̎͆̋̀̓͐͊͊͒̓̚t̠͉̼̭̟͉̲͚̜̳͈̘̟͇̤̞͚͚̯͚̣̼̭͉͚͔͈͈͎̪̙̦̖̻͍͔̪͎̺͆̃̅͆̿͋̈̽͑ ͖̙͎̼̣̥͎̙̝͔̮̳͚̯̘͉̯̻̫̝̬̘̯̭͙͚͉̝̠͉̖͔̣̹̣͎̼̠̮̭͓͎͙̖̺̳̯̯͉͕̣͎̟͉̀̓̑ͯ̀ͤ̄ͮ̽ͦo̮͈̠̺̙̯͇̩͚͈̤̟͚̘̮̲͉͙̪͍̩͙̺̫͎͚͔̳̣̙̬̹̘͍ͮ͋̊͛ͩ̉̓͂ͥͥ̐͂̑̌̊̚u̟̹͕̙̗̘͎͎͕̩̘͇̲̹̹̙̅͆̒̈̒ͥ̈̆̚t̖̣̪̟̰̳̯͙͇̗͚̟̹̬͉͎̺̥̫͎͖̱̥̬̪͈̬̥͙̱̣̰̘̖̰͔ͩ̆̈ͧ̒̃͋ͅͅ ͍̖̪͈͕̽̉̆͆́͌̈̐͋̄̓ͅo̞͍͚͉̗̹̮̰̜͕͓̱̮͓̮͈̰̥͎̘͉̪̣̺̱̭̩͉̳̲̫͍̟̱͖͚̭̖̖͓̞̘̐͒̓̂̏ͤ̓ͬ̃f̱͈͇̮͚̤̹̜̟̠̩̤̣͓͕̟̰͔̟̫̟̪̆͐ͪ̂ ̮͈̭͉̤̺͇̲͙̣̥̹͔͖̝̺͇̖͈̺̝͚̭̭͔͙̦͚̦͕͉͖̣̙͕̱̦͍̯̼̲̺̮̭̹͕̭̞̘̝̤̖̗͚̝̻͔̪͓̲̣̖͇ͨ͂ͫͤ̍ͤͪͥͭ̓̒̿̈̏̐̚ͅͅͅh̰̰̼̤̖͙̩͈̻̹͖̙̹̦̮̘̺̜̹̤͉̳̹̪̹̙͚̫̬͇̪̪̟̫̪̲̥̝̲̰̻͔͐̽̿͑ͩ̊̆̎̊ͭ̒ͫ͊̆͛ͮ̅̚̚ͅͅͅa̘̖̖̻̣͕̻̹̘͖̬̳̬̲͚͍̩̦̖͙ͬ̈̑̀̓ͅͅn̪̺̤̟̬̟̠̯̪͖͈͚̰̆ͪ̃̈ͤͪ̌̈ͪ̋ͪ̔ͣͨ̊̾̀d͖̜̤̺͓̦̲̬̼̮͉͕̯͈̖͎̻̝͖̭͍͈̟̭̼̥͖̭̳̹̬͖̣͛͂̾̾̋ͭͤ͒ͭͪ͐͒͑̉̒ͅ.͎̰̬͓̻̲͕͉̺͙̘̯͇̥̜̳̩̙̞̫͉̬̠̘̳̣̩̮͓͙̠͖̰̬͉̝̤̯͈̬͕͓̤̹͕̼̱̗̜̗̞̜̩̳͆̈̏ͫ̏̽ͭ̚ͅ.̣̤͕̪̣̣͓̬̬̮̠͕̲̹̲̰͓̥̗̫̖͚̙͔̹͉͉͓̝͈͉̣͙͕͔̤̩̤̖̗̦̺̫͉͖̮͚͎̰͚̱̜̻̥̩͙̠̫̟̙̹͖̘͔̭̩ͥ̇͐ͯ͆̆̃ͫ̃́͋͑̂͆ͨ̑̏ͩ.͍̻̱͇̳̳̺̖̻̹̟͎̰͔̭̗ͮ͑͐͐ͤ̈ͣ͑̌
2 |
3 | #zalgo, he comes
4 | ## and burninates your website...
5 | ### ahhhhhhh!
6 | #### right now the library is in the basic proof of concept stage. i'll make this a valid CommonJS package, jQuery plugin, bookmarklet, browser demo, etc once zalgo releases me from his terrifying grip
7 |
8 | ### jQuery plugin added.
9 |
--------------------------------------------------------------------------------