Created
September 5, 2018 18:57
-
-
Save a-raccoon/3f459210d6740b3a856b0e7538c04027 to your computer and use it in GitHub Desktop.
Render mIRC Artwork in HTML for Paste Sites. No license asserted; Credit Talon 2018. tags: ASCIIART ANSIART IRCART MIRCART
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<html> | |
<head> | |
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> | |
<title>CC Pastebin Test!</title> | |
<style> | |
@font-face { | |
font-family: 'FixedsysExcelsior'; | |
src: url('FixedsysExcelsiorIIIbnl.ttf') format('truetype'); | |
font-weight: normal; | |
font-style: normal; | |
-webkit-font-smoothing:aliased; | |
font-smooth:never; | |
} | |
body { | |
display: flex; | |
background: black; | |
} | |
* { | |
font-family: FixedsysExcelsior; | |
color: white; | |
} | |
textarea { | |
white-space: pre; | |
width: 640px; | |
height: 320px; | |
color: black; | |
overflow: scroll; | |
resize: both; | |
} | |
button { color: black; } | |
</style> | |
<script type="text/javascript"> | |
function QuickElement(name,attr,text) { | |
var tmp = document.createElement(name) //Object.assign(,{textContent: text}); | |
for (var key in attr) { tmp.setAttribute(key,attr[key]); } | |
tmp.innerHTML = text || ''; | |
return tmp; | |
} | |
function CC2Html(text) { | |
var cc = new Array("#FFFFFF","#000000","#00009D","#009300","#FF0000","#7F0000","#9C009C","#FC7F00","#FFFF00","#00FC00","#009393","#00FFFF","#0000FC","#FF00FF","#7F7F7F","#D2D2D2","#470000","#472100","#474700","#324700","#004700","#00472C","#004747","#002747","#000047","#2E0047","#470047","#47002A","#740000","#743A00","#747400","#517400","#007400","#007449","#007474","#004074","#000074","#4B0074","#740074","#740045","#B50000","#B56300","#B5B500","#7DB500","#00B500","#00B571","#00B5B5","#0063B5","#0000B5","#7500B5","#B500B5","#B5006B","#FF0000","#FF8C00","#FFFF00","#B2FF00","#00FF00","#00FFA0","#00FFFF","#008CFF","#0000FF","#A500FF","#FF00FF","#FF0098","#FF5959","#FFB459","#FFFF71","#CFFF60","#6FFF6F","#65FFC9","#6DFFFF","#59B4FF","#5959FF","#C459FF","#FF66FF","#FF59BC","#FF9C9C","#FFD39C","#FFFF9C","#E2FF9C","#9CFF9C","#9CFFDB","#9CFFFF","#9CD3FF","#9C9CFF","#DC9CFF","#FF9CFF","#FF94D3","#000000","#131313","#282828","#363636","#4D4D4D","#656565","#818181","#9F9F9F","#BCBCBC","#E2E2E2","#FFFFFF","#D2D2D2"); | |
var b = 0, u = 0, r = 0 , i = 0, bg = cc.length, fg = cc.length; | |
return text.replace(/(\x03(?:(?:\d\d?),)?(?:\d\d?)|[\x03\x0f\x02\x1f])([^\x02\x03\x1f\x0f]*)/g,function(match,control,string) { | |
if (control == '\x03') { fg = bg = cc.length; } //Blank ctrl+k | |
else if (control == '\x02') { b = !b } //ctrl+b (bold) | |
else if (control == '\x1f') { u = !u } //ctrl+u (underline) | |
//TODO: ctrl+r (reverse) | |
else if (control == '\x1d') { i = !i } //ctrl+i (italic) | |
else if (control == '\x0f') { b = u = i = 0; fg = bg = cc.length; } //ctrl+o (stop) | |
else { //ctrl+k (color) | |
var fgt = /^\x03(\d\d?)$/.exec(control), bt = /^\x03(\d\d?),(\d\d?)$/.exec(control); | |
if (Array.isArray(fgt) && fgt.length > 0) { fg = parseInt(fgt[1]) + 0; } | |
else if (Array.isArray(bt) && bt.length > 0) { fg = parseInt(bt[1]) + 0; bg = parseInt(bt[2]) + 0; } | |
} | |
var style = (b ? 'font-weight:bold;' : '') + (u ? 'font-decoration:underline;' : '') + (i ? 'font-style:italic;' : '') + (bg < cc.length ? 'background-color:' + cc[bg] + ';' : '') + (fg < cc.length ? 'color:' + cc[fg] + ';' : ''); | |
if (!style) { return string.replace(/&/g,'&').replace(/</g,'<').replace(/>/g,'>'); } | |
else { return "<span style=\"white-space: pre-wrap; " + style + "\">" + string.replace(/&/g,'&').replace(/</g,'<').replace(/>/g,'>') + "</span>"; } | |
}); | |
} | |
function mIRCArt() { | |
var main = this; | |
this.Container = new QuickElement('div',{}); | |
this.Text = new QuickElement('textarea',{}," 2,2MMMMMMMMMMMMMM 2,2MMMMMMMMMM 2,2MMMMMMMMMM\n 2,2MM12,12mmmmmmmmmmmm2,2MMMMMM12,12mmmmmmmmmm2,2MMMMMM12,12mmmmmmmmmm2,2MM\n 2,2MM12,12mmmmmmmmmmmm2,2MM12,12mmmmmmmmmmmmmm2,2MM12,12mmmmmmmmmmmmmmmm2,2MM\n 2,2MM12,12mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm2,2MM\n 2,2MM12,12mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm2,2MM\n 2,2MM12,12mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm2,2MM\n 2,2MM12,12mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm2,2MM\n 2,2MM12,12mmmmmmmmmmmm2,2MMMM12,12mmmmmmmmmmmmmm2,2MMMM12,12mmmmmmmmmmmmmm2,2MM\n 2,2MM12,12mmmmmmmmmmmm2,2MM 2,2MM12,12mmmmmmmmmmmm2,2MM 2,2MM12,12mmmmmmmmmmmm2,2MM\n 2,2MM12,12mmmmmmmmmmmm2,2MM 2,2MM12,12mmmmmmmmmmmm2,2MM 2,2MM12,12mmmmmmmmmmmm2,2MM\n 2,2MM12,12mmmmmmmmmmmm2,2MM 2,2MM12,12mmmmmmmmmmmm2,2MM 2,2MM12,12mmmmmmmmmmmm2,2MM\n 2,2MM12,12mmmmmmmmmmmm2,2MM 2,2MM12,12mmmmmmmmmmmm2,2MM 2,2MM12,12mmmmmmmmmmmm2,2MM\n 2,2MM12,12mmmmmmmmmmmm2,2MM 2,2MM12,12mmmmmmmmmmmm2,2MM 2,2MM12,12mmmmmmmmmmmm2,2MM\n 2,2MM12,12mmmmmmmmmmmm2,2MM 2,2MM12,12mmmmmmmmmmmm2,2MM 7,7CCCCCCCCCC12,12mmmm2,2MM\n 2,2MM12,12mmmmmmmmmmmm2,2MM 2,2MM12,12mmmmmmmmmmmm2,2MM7,7CC8,8cccccccccc7,7CCCC2,2MM\n5,5IIIIIIIIIIIIIIIIRRRRRRRRRRRRRRRRRRRRRR8,8cccccccccccccccc7,7CC\n5,5II4,4iiiiiiiiiiii5,5II4,4rrrrrrrrrrrrrrrrrrrr5,5RR8,8cccccccccccc7,7CC8,8cccc7,7CC\n5,5II4,4iiiiiiiiiiii5,5II4,4rrrrrrrrrrrrrrrrrrrr5,5RR8,8cccccccc7,7CC8,8cc7,7CCCC8,8cc7,7CC\n5,5II4,4iiiiiiiiiiii5,5II4,4rrrrrrrrrrrrrrrrrrrr5,5RR8,8cccccccc7,7CCCC8,8cc7,7CC8,8cccc7,7CC\n5,5II4,4iiiiiiiiiiii5,5II4,4rrrrrrrrrrrrrrrrrrrr5,5RR8,8cccccccccc7,7CC8,8cccccccc7,7CC\n5,5IIIIIIIIIIIIIIII4,4rrrrrrrrrrrrrrrrrrrr5,5RR8,8cccccccccccccccccc7,7CCCC\n5,5II4,4iiiiiiiiiiii5,5II4,4rrrrrrrrrrrr5,5RRRRRRRRRR8,8cccc7,7CC8,8cccccccccc7,7CCCC\n5,5II4,4iiiiiiiiiiii5,5II4,4rrrrrrrrrrrr5,5RR8,8cccccccccccccc7,7CCCCCCCCCC\n5,5II4,4iiiiiiiiiiii5,5II4,4rrrrrrrrrrrr5,5RR8,8cccccccccccccc7,7CC\n5,5II4,4iiiiiiiiiiii5,5II4,4rrrrrrrrrrrr5,5RR7,7CC8,8cccccccccccccc7,7CCCC\n5,5II4,4iiiiiiiiiiii5,5II4,4rrrrrrrrrrrr5,5RR7,7CC8,8cccccccccccccccccc7,7CCCCCCCC\n5,5II4,4iiiiiiiiiiii5,5II4,4rrrrrrrrrrrr5,5RR 7,7CC8,8cccccccccccccccccccccccc7,7CC\n5,5II4,4iiiiiiiiiiii5,5II4,4rrrrrrrrrrrr5,5RR 7,7CC8,8cccccccccccccccccccc7,7CC\n5,5II4,4iiiiiiiiiiii5,5II4,4rrrrrrrrrrrr5,5RR 7,7CCCC8,8cccccccccccc7,7CCCC\n5,5IIIIIIIIIIIIIIIIRRRRRRRRRRRRRR 7,7CCCCCCCCCCCC"); | |
this.Button = new QuickElement('button',{},"Try it!"); | |
this.Result = new QuickElement('pre',{}); | |
this.Container.appendChild(this.Text); | |
this.Container.appendChild(this.Button); | |
this.Container.appendChild(this.Result); | |
document.body.appendChild(this.Container); | |
this.Button.addEventListener('click',function() { | |
var tmp = main.Text.value.split(/\r?\n/); | |
main.Result.innerHTML = ""; | |
tmp.forEach(function(line) { this.Result.innerHTML += CC2Html(line + "") + "\n"; },main); | |
}); | |
this.Button.click(); | |
} | |
window.addEventListener('load',function() { | |
var art = new mIRCArt(); | |
}); | |
</script> | |
</head> | |
<body> | |
</body> | |
</html> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment