var cssData = { "meta": { "noColor": 0 }, "adding": {}, "info": { "157124": { "hex": "157124", "class_name": "cara" }, "191919": { "hex": "191919", "class_name": "leira-hoserai" }, "264186": { "hex": "264186", "class_name": "kadri" }, "299999": { "hex": "299999", "class_name": "jhanu" }, "400080": { "hex": "400080", "class_name": "neso-aris" }, "430343": { "hex": "430343", "class_name": "kirino-sadness" }, "443388": { "hex": "443388", "class_name": "wind-raz" }, "490202": { "hex": "490202", "class_name": "black-to-kirino5" }, "505545": { "hex": "505545", "class_name": "zweil" }, "550000": { "hex": "550000", "class_name": "bell" }, "570202": { "hex": "570202", "class_name": "black-to-kirino6" }, "590590": { "hex": "590590", "class_name": "lhin" }, "660202": { "hex": "660202", "class_name": "black-to-kirino7" }, "710660": { "hex": "710660", "class_name": "karinas-mom" }, "716006": { "hex": "716006", "class_name": "karinas-dad" }, "740303": { "hex": "740303", "class_name": "black-to-kirino8" }, "742424": { "hex": "742424", "class_name": "nightmare-karina" }, "750000": { "hex": "750000", "class_name": "reyhsia" }, "770000": { "hex": "770000", "class_name": "lettie-wormwood" }, "777777": { "hex": "777777", "class_name": "melancholic" }, "830303": { "hex": "830303", "class_name": "kirino" }, "862929": { "hex": "862929", "class_name": "karina-transceiver" }, "900000": { "hex": "750000", "class_name": "reyhsia" }, "911111": { "hex": "911111", "class_name": "old-karina-to-kirino7" }, "911135": { "hex": "911135", "class_name": "kirino-to-karina2" }, "944444": { "hex": "944444", "class_name": "karina-narration" }, "944446": { "hex": "944444", "class_name": "karina-narration" }, "988013": { "hex": "988013", "class_name": "arandu" }, "991919": { "hex": "991919", "class_name": "old-karina-to-kirino6" }, "996633": { "hex": "996633", "class_name": "rel-irkin" }, "courier-new": { "class_name": "courier-new", "face": "\"Courier New\", monospace" }, "comic-sans": { "class_name": "comic-sans", "face": "\"Comic Sans\", cursive" }, "trebuchet-ms": { "class_name": "trebuchet-ms", "face": "\"Trebuchet MS\", cursive" }, "impact": { "class_name": "impact", "face": "\"Impact\", serif" }, "times-new-roman": { "class_name": "times-new-roman", "face": "\"Times New Roman\", serif" }, "verdana": { "class_name": "verdana", "face": "\"Verdana\", sans-serif" }, "georgia": { "class_name": "georgia", "face": "\"Georgia\", serif" }, "862929_courier-new": { "hex": "862929", "class_name": "karina-transceiver", "face": "\"Courier New\", monospace" }, "eeeeee": { "hex": "eeeeee", "class_name": "invisible" }, "c444e6": { "hex": "c444e6", "class_name": "karina" }, "44a4e4": { "hex": "44a4e4", "class_name": "mabil" }, "1919e6": { "hex": "1919e6", "class_name": "hannah" }, "000000;830303": { "class_name": "black-to-kirino", "hexes": [ "000000", "0f0000", "1d0101", "2c0101", "3a0101", "490202", "570202", "660202", "740303", "830303" ] }, "000000": { "hex": "000000", "class_name": "black-to-kirino0" }, "0f0000": { "hex": "0f0000", "class_name": "black-to-kirino1" }, "1d0101": { "hex": "1d0101", "class_name": "black-to-kirino2" }, "2c0101": { "hex": "2c0101", "class_name": "black-to-kirino3" }, "3a0101": { "hex": "3a0101", "class_name": "black-to-kirino4" }, "830303;c444e6": { "class_name": "kirino-to-karina", "hexes": [ "830303", "8a0a1c", "911135", "99194f", "a02068", "a72781", "ae2e9a", "b636b4", "bd3dcd", "c444e6" ] }, "8a0a1c": { "hex": "8a0a1c", "class_name": "kirino-to-karina1" }, "99194f": { "hex": "99194f", "class_name": "kirino-to-karina3" }, "a02068": { "hex": "a02068", "class_name": "kirino-to-karina4" }, "a72781": { "hex": "a72781", "class_name": "kirino-to-karina5" }, "ae2e9a": { "hex": "ae2e9a", "class_name": "kirino-to-karina6" }, "b636b4": { "hex": "b636b4", "class_name": "kirino-to-karina7" }, "bd3dcd": { "hex": "bd3dcd", "class_name": "kirino-to-karina8" }, "c444e6;830303": { "class_name": "karina-to-kirino", "hexes": [ "c444e6", "bd3dcd", "b636b4", "ae2e9a", "a72781", "a02068", "99194f", "911135", "8a0a1c", "830303" ] }, "5e547c": { "hex": "5e547c", "class_name": "experiment-zero" }, "007700": { "hex": "007700", "class_name": "lettie" }, "9ba9ba": { "hex": "9ba9ba", "class_name": "reza" }, "0083ff": { "hex": "0083ff", "class_name": "xan" }, "cf0000": { "hex": "cf0000", "class_name": "nami" }, "0022e2": { "hex": "0022e2", "class_name": "experiment-debug" }, "e20200": { "hex": "e20200", "class_name": "experiment-hope" }, "daa4f3": { "hex": "daa4f3", "class_name": "karina-faded" }, "1d3163": { "hex": "1d3163", "class_name": "maevah" }, "545e7c": { "hex": "5e547c", "class_name": "experiment-zero" }, "a03807": { "hex": "a03807", "class_name": "anne" }, "e78a34": { "hex": "e78a34", "class_name": "atlani" }, "e26666": { "hex": "e26666", "class_name": "karina-okused" }, "006660": { "hex": "006660", "class_name": "mr-bently" }, "c44446": { "hex": "c44444", "class_name": "karina-kirinod" }, "c44444": { "hex": "c44444", "class_name": "karina-kirinod" }, "1919e6;c44444": { "class_name": "hannah-to-old-karina", "hexes": [ "1919e6", "2c1ed4", "3f23c2", "5227b0", "652c9e", "78318c", "8b367a", "9e3a68", "b13f56", "c44444" ] }, "2c1ed4": { "hex": "2c1ed4", "class_name": "hannah-to-old-karina1" }, "3f23c2": { "hex": "3f23c2", "class_name": "hannah-to-old-karina2" }, "5227b0": { "hex": "5227b0", "class_name": "hannah-to-old-karina3" }, "652c9e": { "hex": "652c9e", "class_name": "hannah-to-old-karina4" }, "78318c": { "hex": "78318c", "class_name": "hannah-to-old-karina5" }, "8b367a": { "hex": "8b367a", "class_name": "hannah-to-old-karina6" }, "9e3a68": { "hex": "9e3a68", "class_name": "hannah-to-old-karina7" }, "b13f56": { "hex": "b13f56", "class_name": "hannah-to-old-karina8" }, "c44444;830303": { "class_name": "old-karina-to-kirino", "hexes": [ "c44444", "bd3d3d", "b63636", "ae2e2e", "a72727", "a02020", "991919", "911111", "8a0a0a", "830303" ] }, "bd3d3d": { "hex": "bd3d3d", "class_name": "old-karina-to-kirino1" }, "b63636": { "hex": "b63636", "class_name": "old-karina-to-kirino2" }, "ae2e2e": { "hex": "ae2e2e", "class_name": "old-karina-to-kirino3" }, "a72727": { "hex": "a72727", "class_name": "old-karina-to-kirino4" }, "a02020": { "hex": "a02020", "class_name": "old-karina-to-kirino5" }, "8a0a0a": { "hex": "8a0a0a", "class_name": "old-karina-to-kirino8" }, "830303;c44444": { "class_name": "kirino-to-old-karina", "hexes": [ "830303", "8a0a0a", "911111", "991919", "a02020", "a72727", "ae2e2e", "b63636", "bd3d3d", "c44444" ] }, "e5c300": { "hex": "e5c300", "class_name": "seiva" }, "ea7325": { "hex": "ea7325", "class_name": "master-sara" }, "0a2442": { "hex": "0a2442", "class_name": "rixos" }, "00adff": { "hex": "00adff", "class_name": "skylar-rolt" }, "72767a": { "hex": "72767a", "class_name": "khon-vasq" }, "1919a6": { "hex": "1919a6", "class_name": "hannah-narration" }, "ffffff": { "hex": "ffffff", "class_name": "invisible" }, "edf4fd": { "hex": "ffffff", "class_name": "invisible" }, "cacaca": { "hex": "cacaca", "class_name": "silver-border" }, "ebe200": { "hex": "ebe200", "class_name": "anne-white" }, "008ceb": { "hex": "008ceb", "class_name": "anne-blue" }, "7b00eb": { "hex": "7b00eb", "class_name": "anne-black" }, "eb3000": { "hex": "eb3000", "class_name": "anne-red" }, "0900eb": { "hex": "0900eb", "class_name": "anne-green" }, "473cc4": { "hex": "473cc4", "class_name": "selem" }, "b79b44": { "hex": "b79b44", "class_name": "yenna" }, "8a87aa": { "hex": "8a87aa", "class_name": "xaja" }, "b60000": { "hex": "b60000", "class_name": "doer" }, "00bb55": { "hex": "00bb55", "class_name": "michi" }, "1979e6": { "hex": "1979e6", "class_name": "arina" }, "1979a6": { "hex": "1979a6", "class_name": "arina-narration" }, "e61919": { "hex": "e61919", "class_name": "fulmen" }, "030383": { "hex": "030383", "class_name": "kirino-memory" }, "007bce": { "hex": "007bce", "class_name": "skylar-rolt-detective" }, "c26d00": { "hex": "c26d00", "class_name": "skylar-rolt-monsters" }, "8c19e6": { "hex": "8c19e6", "class_name": "skylar-rolt-her" }, "9c0000": { "hex": "9c0000", "class_name": "skylar-rolt-riddle" }, "0077ff": { "hex": "0077ff", "class_name": "henry-brayden" }, "be9001": { "hex": "be9001", "class_name": "flynn" }, "4a9a4a": { "hex": "4a9a4a", "class_name": "sevid" }, "404d4d": { "hex": "404d4d", "class_name": "xirix" }, "60a5a5": { "hex": "60a5a5", "class_name": "saia" }, "5030a0": { "hex": "5030a0", "class_name": "mei-liva" }, "779a3a": { "hex": "779a3a", "class_name": "undue" }, "be8c8c": { "hex": "be8c8c", "class_name": "pidge" }, "6e2111": { "hex": "6e2111", "class_name": "experiment-three" }, "da9a00": { "hex": "da9a00", "class_name": "briar" }, "e33030": { "hex": "e33030", "class_name": "briar-vikrei" }, "da009a": { "hex": "da9a00", "class_name": "briar-milli" }, "700c70": { "hex": "700c70", "class_name": "cygari" }, "ad5d5d": { "hex": "ad5d5d", "class_name": "haide" }, "a5ceff": { "hex": "a5ceff", "class_name": "neeyo" }, "ffb700": { "hex": "ffb700", "class_name": "dawn-monster" }, "ffbd00": { "hex": "ffbd00", "class_name": "argel" }, "ff4200": { "hex": "ff4200", "class_name": "argel-mentor" }, "cae34f": { "hex": "cae34f", "class_name": "allatu" }, "6e0dc7": { "hex": "6e0dc7", "class_name": "soumaw" }, "6cb267": { "hex": "6cb267", "class_name": "twyla" }, "a49341": { "hex": "a49341", "class_name": "parsul" }, "2ecc71": { "hex": "2ecc71", "class_name": "parsul-cajun" }, "c8bf36": { "hex": "c8bf36", "class_name": "world-book-1" }, "95703c": { "hex": "95703c", "class_name": "world-book-2" }, "8f953c": { "hex": "8f953c", "class_name": "world-book-3" }, "3c957b": { "hex": "3c957b", "class_name": "world-book-4" }, "953c7a": { "hex": "953c7a", "class_name": "world-book-5" }, "893c95": { "hex": "893c95", "class_name": "world-book-6" }, "abae20": { "hex": "abae20", "class_name": "world-book-7" }, "ff0000": { "hex": "ff0000", "class_name": "world-book-8" }, "644a76": { "hex": "644a76", "class_name": "world-book-9" }, "c1c431": { "hex": "c1c431", "class_name": "world-book-10" }, "c231c4": { "hex": "c231c4", "class_name": "world-book-11" }, "acacac": { "hex": "acacac", "class_name": "world-book-12" }, "2e89cc": { "hex": "2e89cc", "class_name": "world-book-13" }, "dedede": { "hex": "dedede", "class_name": "world-book-14" }, "e619b8": { "hex": "e619b8", "class_name": "parsuls-princess" }, "00bb69": { "hex": "00bb69", "class_name": "callie" }, "73c0ca": { "hex": "73c0ca", "class_name": "lei-koen" }, "ff8700": { "hex": "ff8700", "class_name": "januti" }, "a1000": { "hex": "a1000", "class_name": "iritola" }, "cc0066": { "hex": "cc0066", "class_name": "mattol" }, "b7d9df": { "hex": "b7d9df", "class_name": "dieule" }, "c97979": { "hex": "c97979", "class_name": "dieule-rude" }, "8533dd": { "hex": "8533dd", "class_name": "rudara" }, "38ac8b": { "hex": "38ac8b", "class_name": "seska" }, "2e866d": { "hex": "2e866d", "class_name": "seska-older" }, "db969b": { "hex": "db969b", "class_name": "estova-rei" }, "698c8c": { "hex": "698c8c", "class_name": "haia-kenei" }, "85b2b2": { "hex": "85b2b2", "class_name": "varei-maristo" }, "77ccdd": { "hex": "77ccdd", "class_name": "ani-soei" }, "4caa00": { "hex": "4caa00", "class_name": "kirilo-rekasai" }, "3e2a75": { "hex": "3e2a75", "class_name": "kei-aliri" }, "007f0f": { "hex": "007f0f", "class_name": "aeryl-kestei" }, "4545aa": { "hex": "4545aa", "class_name": "kaira-veis" }, "c519e6": { "hex": "c519e6", "class_name": "kauriga" }, "b98500": { "hex": "b98500", "class_name": "aiden-sunspear" }, "ad1999": { "hex": "ad1999", "class_name": "nadejda" }, "31174d": { "hex": "31174d", "class_name": "hana-cheyn" }, "0aa2af": { "hex": "0aa2af", "class_name": "severin" }, "3ac291": { "hex": "3ac291", "class_name": "chief-aimi" }, "947f14": { "hex": "947f14", "class_name": "aiea-7ci" }, "c533a8": { "hex": "c533a8", "class_name": "book-of-stabbing" }, "3b4d17": { "hex": "3b4d17", "class_name": "dr-arueth" }, "9ad641": { "hex": "9ad641", "class_name": "orik-thornspike" }, "0b325e": { "hex": "0b325e", "class_name": "lace-ryba" }, "2a574a": { "hex": "2a574a", "class_name": "ylansa" }, "475b70": { "hex": "475b70", "class_name": "safir-nejem" }, "067e6f": { "hex": "067e6f", "class_name": "valech-belmonte" }, "d6c92e": { "hex": "d6c92e", "class_name": "janika-linna" }, "cc73c5": { "hex": "cc73c5", "class_name": "britt-bergfalk" }, "ca7186": { "hex": "ca7186", "class_name": "resplendent" }, "241e70": { "hex": "241e70", "class_name": "kathryn-wrona" }, "51476b": { "hex": "51476b", "class_name": "yamamoto-mio" }, "6c8a37": { "hex": "6c8a37", "class_name": "lochana" }, "cf3a00": { "hex": "cf3a00", "class_name": "tam-of-house-lyr" }, "187e65": { "hex": "187e65", "class_name": "kunal" }, "71599c": { "hex": "71599c", "class_name": "teagan-markey" }, "ff00de": { "hex": "ff00de", "class_name": "yakana" }, "5f7504": { "hex": "5f7504", "class_name": "vidus" }, "5b7654": { "hex": "5b7654", "class_name": "aelewin" }, "1ec86f": { "hex": "1ec86f", "class_name": "simul" }, "8c579c": { "hex": "8c579c", "class_name": "liactru" }, "d10000": { "hex": "d10000", "class_name": "thistle" }, "bb7700": { "hex": "bb7700", "class_name": "lothaire" }, "8f2c53": { "hex": "8f2c53", "class_name": "cyria-agraud" }, "d8a800": { "hex": "d8a800", "class_name": "aeterna" }, "df0101": { "hex": "df0101", "class_name": "marlowar" }, "ad20e6": { "hex": "ad20e6", "class_name": "meadowlark" }, "c7c700": { "hex": "c7c700", "class_name": "firefly" }, "00cc77": { "hex": "00cc77", "class_name": "tano-resaino" }, "7700cc": { "hex": "7700cc", "class_name": "kesai-turo" }, "8500ff": { "hex": "8500ff", "class_name": "vivian" }, "66cc8a": { "hex": "66cc8a", "class_name": "tokata" }, "ce5f2a": { "hex": "ce5f2a", "class_name": "hilda" }, "4c1ee3": { "hex": "4c1ee3", "class_name": "novek-shen" }, "f22222": { "hex": "f22222", "class_name": "as-han" }, "a7a284": { "hex": "a7a284", "class_name": "hanska" }, "19e673": { "hex": "19e673", "class_name": "yliki" }, "7b19e6": { "hex": "7b19e6", "class_name": "mishka" }, "64407e": { "hex": "64407e", "class_name": "alsy" }, "505d15": { "hex": "505d15", "class_name": "obris-rook" }, "a83737": { "hex": "a83737", "class_name": "zetla" }, "a700eb": { "hex": "a700eb", "class_name": "lysenda" }, "5c4e3a": { "hex": "5c4e3a", "class_name": "lysenda-cat" }, "ca00aa": { "hex": "ca00aa", "class_name": "nicholai" }, "e6199c": { "hex": "e6199c", "class_name": "cayli" }, "7a7a7a": { "hex": "7a7a7a", "class_name": "roy-nessy" }, "00d480": { "hex": "00d480", "class_name": "aki-nessy" } } } var cssExtra = "#workskin body {\r\n font-size: 100%;\r\n}\r\n\r\n#workskin .half-point {\r\n font-size: 0.5em;\r\n}\r\n\r\n#workskin .one-point {\r\n font-size: 0.75em;\r\n}\r\n\r\n#workskin .three-point {\r\n font-size: 1.25em;\r\n}\r\n\r\n#workskin .four-point {\r\n font-size: 1.5em;\r\n}\r\n\r\n#workskin .hoverwrapper2 {\r\n z-index: 2;\r\n position: relative;\r\n display: block;\r\n height: 0%;\r\n}\r\n\r\n#workskin .hoverwrapper3 {\r\n z-index: 3;\r\n position: relative;\r\n display: inline-block;\r\n height: 0%;\r\n}\r\n\r\n#workskin .revealed,\r\n#workskin .revealed2,\r\n#workskin .revealed3 {\r\n font-size: 0.0em;\r\n display: block;\r\n height: 0%;\r\n}\r\n\r\n#workskin .revealed2:hover {\r\n font-size: 1.0em;\r\n height: auto;\r\n}\r\n\r\n#workskin .hoverwrapper:hover .revealed {\r\n font-size: 1.0em;\r\n height: auto;\r\n}\r\n\r\n#workskin .hoverwrapper:hover .hoverwrapper2 {\r\n height: auto;\r\n}\r\n\r\n#workskin .hoverwrapper2:hover .hoverwrapper3 {\r\n height: auto;\r\n}\r\n\r\n#workskin .hoverwrapper:hover .fake_back {\r\n width: 100%;\r\n height: 100%;\r\n}\r\n\r\n#workskin .hoverwrapper2:hover .revealed2 {\r\n font-size: 1.0em;\r\n height: auto;\r\n}\r\n\r\n#workskin .hoverwrapper2:hover .fake_back2 {\r\n width: 100%;\r\n height: 100%;\r\n z-index: 3;\r\n}\r\n\r\n#workskin .hoverwrapper3:hover .revealed3 {\r\n font-size: 1.0em;\r\n height: auto;\r\n}\r\n\r\n#workskin .hoverwrapper3:hover .fake_back3 {\r\n width: 100%;\r\n height: 100%;\r\n z-index: 4;\r\n}\r\n\r\n#workskin .fake_back,\r\n#workskin .fake_back2,\r\n#workskin .fake_back3 {\r\n height: 0%;\r\n width: 0%;\r\n background-color: transparent;\r\n position: absolute;\r\n top: 0px;\r\n left: 0px;\r\n}\r\n\r\n#workskin .center-span {\r\n display: block;\r\n text-align: center;\r\n}\r\n\r\n#workskin .one-more-second {\r\n display: block;\r\n margin-left: auto;\r\n margin-right: auto;\r\n position: absolute;\r\n opacity: 0%;\r\n width: 0%;\r\n height: 0%;\r\n}\r\n\r\n#workskin .hoverwrapper3:hover .one-more-second {\r\n position: relative;\r\n opacity: 100%;\r\n width: auto;\r\n height: auto;\r\n}"; var steps = 10; var port_skin = false; var fr; var unclaimed_slugs = []; var claimed_slugs = []; var slug_counter = 0; var live_slugs = {}; var class_names = {}; function digiDecimal(digitString){ //convert string 0-) to number 0-72 let _0zArray = ["0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","!","@","#","$","%","^","&","*","(",")"] return _0zArray.indexOf(digitString); } function digiAlpha(digitString){ //convert number 0-36 to string 0-) [0-9, a-z, A-Z, !-)] let _0zArray = ["0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","!","@","#","$","%","^","&","*","(",")"] return _0zArray[digitString]; } function convertDecimal(digit, currentBase) { //convert from any base to base 10 if(currentBase == 10) return digit; let equiv = 0; let digitString = String(digit); for(let i = digitString.length-1; i>=0; i--) { let pow = digitString.length - i - 1; equiv += digiDecimal(digitString[i]) * Math.pow(currentBase, pow) } return equiv; } function convertBases(digit, currentBase, newBase){ //converts from any base (1-36) to any other base currentBase = Math.trunc(Math.min(72, Math.max(1,currentBase))); newBase = Math.trunc(Math.min(72, Math.max(1,newBase))); let negFlag = false; if(typeof digit == 'number' && digit < 0) { digit *= -1; negFlag = true; } let equiv = convertDecimal(digit, currentBase); if(newBase == 1) { equiv = parseInt(Array(equiv).fill(1).join("")); } else if(newBase != 10) { let digitString = String(digit); let equivString = ""; while(equiv > 0) { let rem = equiv % newBase; let res = (equiv / newBase) - (rem/newBase); equivString = digiAlpha(rem) + equivString; equiv = res; } equiv = equivString; if(newBase < 10) equiv = parseInt(equiv); } if(negFlag) equiv *= -1; return equiv; } function numToHex(num) { let str = String(convertBases(num, 10, 16)) if(str.length == 1) str = "0" + str; return str; } function hexToInt(hex) { return convertBases(hex, 16, 10); } function gradientNumbers(n1, n2) { let diff = n1 - n2; let steps2 = steps-1; let step = diff/steps2; let out = [n1]; for(let i=1; i0) { yield Math.ceil(result) } else { yield Math.floor(result) } } } } function distribute(total, divider) { let groups = [] for (let member of distributeInteger(total, divider)) { groups.push(member) } //basically evenly distributed if(total >= divider) return groups; //otherwise we have holes let zeroes = steps - total; let zerogroups = [] for(let member of distributeInteger(zeroes, total-1)) zerogroups.push(member); let newgroups = []; for(let i in groups) { if(groups[i] == 0) break; newgroups.push(groups[i]) for(let j=0; j<(zerogroups[i]||0); j++) newgroups.push(0) } return newgroups; } function getGradientArrays(c1, c2, length) { if(length < 3) return [[c1, c2], [1, 1]]; let gradient_hexes = []; if(cssData.info[c1+";"+c2]) { gradient_hexes = cssData.info[c1+";"+c2].hexes; }else{ let rgb1 = c1.match(/(..)(..)(..)/) let rgb2 = c2.match(/(..)(..)(..)/) let rgrad = gradientNumbers(hexToInt(rgb1[1]), hexToInt(rgb2[1])) let ggrad = gradientNumbers(hexToInt(rgb1[2]), hexToInt(rgb2[2])) let bgrad = gradientNumbers(hexToInt(rgb1[3]), hexToInt(rgb2[3])) for(let i=0; i data = data.replace(/\[\/quote\][ \r\n]+\[quote[^\]]+\]/g, "
"); // convert remaining pairs into blockquote data = data.replace(/\[quote[^\]]+\](.+?)\[\/quote\]/g, "
$1
") //turn the last and any remaining into a
data = data.replace(/\[\/?quote[^\]]*\]/g, "
"); //convert simple tags data = data.replace(/\[(\/)?(i|b|s|a|u|div|hr)\]/g, "<$1$2>") //convert quote tags data = data.replace(/\[(a href|div align|img src|img style|img alt)(="[^\]]+")\]/g, "<$1$2>") //convert font sizeToContent data = data.replace(/\[font size="1"\]/g, '') data = data.replace(/\[font size="3"\]/g, '') data = data.replace(/\[font size="4"\]/g, '') //[span style="color:rgb(131, 3, 3);"] //[font face="courier new" style="color:rgb(134, 41, 41);"] //[font color="44a4e4"] let divs = data.match(/\[(span|font)([^\]]+)]/g); let cached_tags = []; for(let c in divs) { let tag = divs[c]; if(cached_tags.includes(tag)) continue; cached_tags.push(tag); let faceCheck = tag.match(/face="([^"]+)"/); let hexCheck = tag.match(/color="#?([0-9a-f]+)"/); let styleCheck = tag.match(/rgb\(([^, )]+), ?([^, )]+), ?([^, )]+)\)/); let font_face = "" let slug = {}; if(faceCheck) font_face = " " + faceCheck[1].toLowerCase().replace(/ /g, "-") if(styleCheck){ slug.hex = numToHex(styleCheck[1]) + numToHex(styleCheck[2]) + numToHex(styleCheck[3]) }else if(hexCheck) { slug.hex = hexCheck[1]; } let slugname = slug.hex; if(!slug.hex) { if(slug.face) { slugname = slug.face.replace(/ /g, "-"); }else{ slugname = "NoColor" + cssData.meta.noColor; cssData.meta.noColor++; port_skin = true; } }else if(slug.face) { slugname += "_" + slug.face.replace(/ /g, "-"); } if(cssData.info[slugname]) { slug = cssData.info[slugname]; }else if(cssData.adding[slugname]) { slug.class_name = cssData.adding[slugname]; cssData.info[slugname] = slug; port_skin = true; }else{ unclaimed_slugs.push(slugname); } data = data.replace(new RegExp(escapify(tag), 'g'), '') } //[gradient="000000;830303"] let grads = data.match(/\[gradient="[^"]+"][^\n]+?\[\/gradient\]/g); if(grads) { for(let g in grads) { let gradient = grads[g]; let bits = gradient.match(/\[gradient="([^;]+);([^"]+?)"]([^\n]+)\[\/gradient\]/); let c1 = bits[1]; let c2 = bits[2]; let master_class = c1 + ";" + c2; let msg = bits[3]; let words = msg.split(" "); let len = words.length; // if less than 5 characters do by character instead if(len < 5) len = msg.length; let g_as = getGradientArrays(c1, c2, len); let hex_array = g_as[0]; let dist_array = g_as[1]; // register new classes if(!cssData.info[master_class]) { let over_name = cssData.adding[master_class] || "Unknown" if(over_name == "Unknown") unclaimed_slugs.push(master_class) cssData.info[master_class] = { class_name: over_name, hexes: hex_array } for(let i=0; i${str}` } data = data.replace(gradient, replacement); } } data = data.replace(/\[\/(font|span)\]/g, ""); data = data.replace(/\r?\n/g, "
") data = data.replace(/([^\r\n]+)\r?\n\r?\n/g, "

$1

") return data; } function writeWorkskin() { let cssblock = ""; for(let c in cssData.info) { cssblock += writeCSSBlock(c); } cssblock += cssExtra; return cssblock; } function writeCSSBlock(c) { var cssblock = ""; if(cssData.info[c].hasOwnProperty("hexes")) return ""; // gradient cache cssblock += `#workskin .${cssData.info[c].class_name} {\n` if(cssData.info[c].hex) cssblock += ` color: #${cssData.info[c].hex};\n` if(cssData.info[c].face) cssblock += ` font-family:${cssData.info[c].face};\n` cssblock += "}\n\n" return cssblock; } function printWorkskin() { var fs = require('fs'); var cssblock = writeWorkskin(); fs.writeFile('workskin.txt', cssblock, function() { console.log('workskin written'); }) } function docLoaded() { } function beginConversion() { var converted = convertText(document.getElementById("import").value); document.getElementById("workskin").innerHTML = converted; // to do, deal with unknown colors document.getElementById("workskin-css").innerHTML = writeWorkskin(); document.getElementById("final-output").innerHTML = converted; if(unclaimed_slugs.length) { claimSlugs(); } if(claimed_slugs.length) { var cssblock = ""; for(var s in claimed_slugs) { cssblock += writeCSSBlock(claimed_slugs[s]); } document.getElementById("workskin-new").innerHTML = cssblock; document.getElementById("workskin-new").style.visibility = ""; document.getElementById("workskin-cond").innerHTML = "You have new code, so go to My Dashboard -> Skins -> My Work Skins and update your skin (or create a new Skin if you haven't yet). Send the data in the second textbox to Cajun so it can be permanently registered."; } } function findCloseHex(hex) { // r, g, b, max_diff * total_diff, hex var diff = [255, 255, 255, 195075, ""]; var h_equiv = [ convertDecimal(hex.substring(0, 2), 16), convertDecimal(hex.substring(2, 4), 16), convertDecimal(hex.substring(4, 6), 16) ]; for(var h in cssData.info) { var hex_obj = cssData.info[h]; if(hex_obj.hexes) continue; if(!hex_obj.hex) continue; if(!hex_obj.hasOwnProperty("h_equiv")) { hex_obj.h_equiv = [ convertDecimal(hex_obj.hex.substring(0, 2), 16), convertDecimal(hex_obj.hex.substring(2, 4), 16), convertDecimal(hex_obj.hex.substring(4, 6), 16) ]; } var self_diff = [ Math.abs(h_equiv[0] - hex_obj.h_equiv[0]), Math.abs(h_equiv[1] - hex_obj.h_equiv[1]), Math.abs(h_equiv[2] - hex_obj.h_equiv[2]) ]; // prioritize smallest max diff and smallest total diff self_diff.push(Math.max(self_diff[0], self_diff[1], self_diff[2])*(self_diff[0] + self_diff[1] + self_diff[2])) self_diff.push(h); if(self_diff[3] < diff[3]) diff = self_diff; class_names[hex_obj.class_name] = h; } return diff[4]; } function claimSlugs() { var slug_holder = document.getElementById("slug-container"); for(var slug in unclaimed_slugs) { var hex = unclaimed_slugs[slug] var slug_child = document.createElement("div"); slug_child.id = "slug-" + slug_counter; slug_child.className = "slug-sub-container"; var inner = ""; var close_hex = findCloseHex(hex); console.log(close_hex); var close_name = cssData.info[close_hex].class_name; inner += `#${hex} `; inner += `` inner += `
` inner += ` Switch to ` inner += `#${close_hex}: ${close_name}` slug_child.innerHTML = inner; console.log(slug_child); slug_holder.appendChild(slug_child); live_slugs[`slug-${slug_counter}`] = {gh:hex, ch:close_hex}; slug_counter++; } document.getElementById("claim-slugs").style.visibility = ""; } function testSlugs() { var fin = []; var fin_id = []; for(var slug_id in live_slugs) { var given_hex = live_slugs[slug_id].gh; var close_hex = live_slugs[slug_id].ch; var rename_hex = live_slugs[slug_id].nh; var close_check = document.getElementById("swap-"+slug_id); var rename_check = document.getElementById("rename-"+slug_id); var given_name = document.getElementById("name-"+slug_id); if(rename_hex && rename_check && rename_check.checked) { // switch to an existing slug with a particular name cssData.info[given_hex] = { hex: cssData.info[rename_hex].hex, class_name: cssData.info[rename_hex].class_name, } fin_id.push(slug_id); continue; } if(close_hex && close_check && close_check.checked) { // switch to an existing slug with a similar color cssData.info[given_hex] = { hex: cssData.info[close_hex].hex, class_name: cssData.info[close_hex].class_name, } fin_id.push(slug_id); continue; } if(given_name) { if(given_name.value == "") continue; var nname = given_name.value.toLowerCase().replace(/ /g, "-").replace(/'/g, ""); if(class_names.hasOwnProperty(nname)) { // name's taken var other_hex = class_names[nname]; live_slugs[slug_id].nh = other_hex; var inner = `Name ${nname} (#${other_hex}) already registered.
`; inner += ` Switch to ` inner += `#${other_hex}: ${nname}` document.getElementById("claimed-"+slug_id).innerHTML = inner; continue; } // name's free, set up a temp cssData.info[given_hex] = { hex: given_hex, class_name: nname } addCSSRule(`#workskin .${nname} {color:#${given_hex};}`, slug_id) class_names[nname] = given_hex; claimed_slugs.push(given_hex); fin_id.push(slug_id); continue; } } //clear out the ones that are done for(var f in fin_id) { var slug_id = fin_id[f]; var given_hex = live_slugs[slug_id].gh; unclaimed_slugs.splice(unclaimed_slugs.indexOf(given_hex), 1) document.getElementById(slug_id).remove(); delete live_slugs[slug_id]; } if(unclaimed_slugs.length == 0) { // all claimed document.getElementById("claim-slugs").style.visibility = "hidden"; beginConversion(); } } function addCSSRule(cssCode, styleid) { // add a new CSS rule $(``).appendTo("body"); }