Skip to content

Instantly share code, notes, and snippets.

@a-raccoon
Created September 5, 2018 18:57
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save a-raccoon/3f459210d6740b3a856b0e7538c04027 to your computer and use it in GitHub Desktop.
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
<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,'&amp;').replace(/</g,'&lt;').replace(/>/g,'&gt;'); }
else { return "<span style=\"white-space: pre-wrap; " + style + "\">" + string.replace(/&/g,'&amp;').replace(/</g,'&lt;').replace(/>/g,'&gt;') + "</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