Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on Jul 20th, 2012  |  syntax: None  |  size: 2.43 KB  |  hits: 7  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. // Color Converter
  2. function convertMode (str, from, to) {
  3.  
  4.     var lex = [
  5.         'bold', 'italic', 'underline', 'inverse',
  6.         'white', 'grey', 'black',
  7.         'blue', 'cyan', 'green', 'magenta', 'red', 'yellow'
  8.     ];
  9.  
  10.     var styles = {
  11.  
  12.         console:  {
  13.             //styles
  14.             'bold'      : ['\033[1m',  '\033[22m'],
  15.             'italic'    : ['\033[3m',  '\033[23m'],
  16.             'underline' : ['\033[4m',  '\033[24m'],
  17.             'inverse'   : ['\033[7m',  '\033[27m'],
  18.             //grayscale
  19.             'white'     : ['\033[37m', '\033[39m'],
  20.             'grey'      : ['\033[90m', '\033[39m'],
  21.             'black'     : ['\033[30m', '\033[39m'],
  22.             //colors
  23.             'blue'      : ['\033[34m', '\033[39m'],
  24.             'cyan'      : ['\033[36m', '\033[39m'],
  25.             'green'     : ['\033[32m', '\033[39m'],
  26.             'magenta'   : ['\033[35m', '\033[39m'],
  27.             'red'       : ['\033[31m', '\033[39m'],
  28.             'yellow'    : ['\033[33m', '\033[39m']
  29.         },
  30.  
  31.         browser: {
  32.            
  33.             //styles
  34.             'bold'      : ['<b>',  '</b>'],
  35.             'italic'    : ['<i>',  '</i>'],
  36.             'underline' : ['<u>',  '</u>'],
  37.             'inverse'   : ['<span style="background-color:black;color:white;">',  '</span>'],
  38.             //grayscale
  39.             'white'     : ['<span style="color:white;">',   '</span>'],
  40.             'grey'      : ['<span style="color:grey;">',    '</span>'],
  41.             'black'     : ['<span style="color:black;">',   '</span>'],
  42.             //colors
  43.             'blue'      : ['<span style="color:blue;">',    '</span>'],
  44.             'cyan'      : ['<span style="color:cyan;">',    '</span>'],
  45.             'green'     : ['<span style="color:green;">',   '</span>'],
  46.             'magenta'   : ['<span style="color:magenta;">', '</span>'],
  47.             'red'       : ['<span style="color:red;">',     '</span>'],
  48.             'yellow'    : ['<span style="color:yellow;">',  '</span>']
  49.         },
  50.  
  51.         none : {}
  52.     };
  53.  
  54.     // Convert!
  55.     lex.forEach(function(style) {
  56.  
  57.         styles.none[style] = ['',''];
  58.  
  59.         var startFilter = new RegExp(styles[from][style][0], "g"),
  60.             endFilter   = new RegExp(styles[to][style][1], "g");
  61.        
  62.         str = str.replace(startFilter, styles[to][style][0]);
  63.         str = str.replace(endFilter, styles[to][style][1]);
  64.  
  65.     });
  66.  
  67.     return str;
  68. }
  69.  
  70. if (typeof module !== 'undefined') {
  71.     module.exports = convertMode;
  72. }