Skip to content

Latest commit

 

History

History
150 lines (97 loc) · 9.07 KB

README.md

File metadata and controls

150 lines (97 loc) · 9.07 KB

Lunicode.js

forthebadge forthebadge

A JavaScript Library to convert text in various amusing ways, using unicode features.
˙sʎɐʍ ɓuısnɯɐ ʇnq ssǝlǝsn snoıɹɐʌ uı ʇxǝʇ ʇɹǝʌuoɔ oʇ ʎɹɐɹqı˥ ʇdıɹɔSɐʌɐſ ∀

Goals

Normal

  • Get out of bed
  • Make this list
  • Modularize the code
  • NPM package it

Lofty

  • Add additional features
  • Explain details and history of why and how they work (ref. unicode.org)
  • Lose weight

Updates

  • Finished lunicode.js modularization.
  • Extracted, cleaned up and NPM Packaged creepify, flip, mirror, bent, bubbles, tiny, squares, roundsquares.
  • Added simple browserify build script for main repo.
  • Using lerna to continuously tear ludicode apart, limb by limb.

Usage

If you want all functionality, use ./dist/lunicode.js as a non-npm static dependency for the time being. If you only want creepify, use the ludicode-creepify package.

Using browserify, if you use the former option a global variable called lunicode will be injected, behaving the same as described below. If you have AMD or commonjs available, you can use them respectively.

	//Assuming window.lunicode is set via the file in dist
	var luni = new lunicode(); //yes, I know. Should be Lunicode. I will remove the need for a constructor next release anyway. (no 	promises!)

	// Encode text. Use one of the effects shown below. Here it's "flip"
	var encodedText = luni.tools.flip.encode("Hello World");  // plɹoM ollǝH
   
   // Decode text back to plain ASCII (or reverse encoding)
    var plainText = luni.tools.mirror.decode("ƚxɘT ɿoɿɿiM");  // Mirror Text
    
    // Creepify has a few options. Set them before encoding:
    luni.tools.creepify.options.top = true; 	// add diacritics on top. Default: true 
    luni.tools.creepify.options.middle = true;	// add diacritics in the middle. Default: true 
    luni.tools.creepify.options.bottom = true;	// add diacritics on the bottom. Default: true
    luni.tools.creepify.options.maxHeight = 15; // How many diacritic marks shall we put on top/bottom? Default: 15
    luni.tools.creepify.options.randomization = 100; // 0-100%. maxHeight 100 and randomization 20%: the height goes from 80 to 100. randomization 70%: height goes from 30 to 100. Default: 100

    // To convert Unicode text to HTML, use luni.getHTML(text);
    // Also converts \n to <br>\n and multiple spaces to &nbsp; &nbsp; &nbsp; ...
    var html = luni.getHTML("ǝpoɔıu∩̤"); // &#x1dd;&#x70;&#x6f;&#x254;&#x131;&#x75;&#x2229;&#x324;

Modules

✅ means they have their own npm package.

flip ✅

NPM

Flips/Rotates text, including numbers (12345) and some special characters: äöü éáú ÄÖÜ ß ô

o̮ ᙠ ∩̤O̤∀̤ n̗ɐ̗ǝ̗ n̤o̤ɐ̤ :sɹǝʇɔɐɹɐɥɔ lɐıɔǝds ǝɯos puɐ (ގㄣƐᄅ⇂) sɹǝqɯnu ɓuıpnlɔuı 'ʇxǝʇ sǝʇɐʇoᴚ/sdılℲ

mirror ✅

NPM

Mirrors text horizontally. äöü ß èàù. Käseküchlein.

.ᴎiɘ|ʜɔüʞɘꙅɒ̈⋊ .úɒ́ɘ́ ᙠ üöɒ̈ .ʏ||ɒƚᴎoƹiɿoʜ ƚxɘƚ ꙅɿoɿɿiM

creepify ✅

NPM

Adds
diacritics

Ą̵̛͎̗͎̯͕̺̭͍̩͐̄̄͗̿͛̔̀́̋̄͜d̷̨͉͇̞̲̥͈̝̺̘̪̥̟͚̘̫̑̋̎͜͜ḑ̵̡̛̤̱̣̼̞̥̻͕͗̔̀̐́̆̐̓͌̊͛̐̉̚͝s̴̯̤̓̐͒̓̉͆̿̔̚͝ ̶̭̼͂̃d̴̡̰̯̲̣̘͉͉̯̣̥͋̈́̊̏̓̀͒̚i̷̮̭͋̈́̋͋̉͊̄̓͂̕a̶̳̣̲̓̊͋c̵̡̛̗͕̖̻͇̪͆̌͒͊͛͌̽̐̇̇̀͊̂̈͒̚͜͠ṙ̷̡̹̱̜̖̦̭ĩ̵͍̪̘͚̗̰͓̙͛͆̽̾͒̏̀͗̊̊́̍̉͒̊ţ̶̙͙̙͉̱́̀̈́̿͛͊̎̓̉̕̕͜͝i̵̛̞̭̭̮̱̬̯̙̖̺̼͑͛ͅć̶̢̡̫̻̪̩̤̱̠̰̹̙͒́̀͐͐̚̚͘͝͝ṩ̸̢̧̠͖̩͚̯̳͓̻̪̻̞

README

bubbles ✅

NPM Bubbles around normal characters. Uses combining characters for everything else.

Ⓑⓤⓑⓑⓛⓔⓢ ⓐⓡⓞⓤⓝⓓ ⓝⓞⓡⓜⓐⓛ ⓒⓗⓐⓡⓐⓒⓣⓔⓡⓢ   .⃝ Ⓤⓢⓔⓢ ⓒⓞⓜⓑⓘⓝⓘⓝⓖ ⓒⓗⓐⓡⓐⓒⓣⓔⓡⓢ ⓕⓞⓡ ⓔⓥⓔⓡⓨⓣⓗⓘⓝⓖ ⓔⓛⓢⓔ   .⃝

squares ✅

NPM

Squares, via combining characters.

S⃞   q⃞   u⃞   a⃞   r⃞   e⃞   s⃞   ,⃞    v⃞   i⃞   a⃞    c⃞   o⃞   m⃞   b⃞   i⃞   n⃞   i⃞   n⃞   g⃞    c⃞   h⃞   a⃞   r⃞   a⃞   c⃞   t⃞   e⃞   r⃞   s⃞   .⃞

roundsquares ✅

NPM

Round squares, via combining characters.

R⃣ o⃣ u⃣ n⃣ d⃣ s⃣ q⃣ u⃣ a⃣ r⃣ e⃣ s⃣ ,⃣ v⃣ i⃣ a⃣ c⃣ o⃣ m⃣ b⃣ i⃣ n⃣ i⃣ n⃣ g⃣ c⃣ h⃣ a⃣ r⃣ a⃣ c⃣ t⃣ e⃣ r⃣ s⃣ .⃣

bent ✅

NPM

Wonky alternatives to the usual characters.

చօղҟվ ąӀէҽɾղąէìѵҽʂ էօ էհҽ մʂմąӀ çհąɾąçէҽɾʂ.

tiny ✅

NPM

Tiny Capitals.

ᴛɪɴʏ ᴄᴀᴘɪᴛᴀʟꜱ.

Links and Thanks

Original

This list is from the original Repo. Comments by A.W. in [].