diff --git a/colors.js b/colors.js
index 9dcfc44..e3f9009 100644
--- a/colors.js
+++ b/colors.js
@@ -23,6 +23,8 @@ THE SOFTWARE.
*/
+exports.mode = "console";
+
// prototypes the string object to have additional method calls that add terminal colors
var addProperty = function (color, func) {
@@ -67,26 +69,49 @@ addProperty('rainbow', function () {
});
function stylize(str, style) {
- var styles = {
- //styles
- 'bold' : [1, 22],
- 'italic' : [3, 23],
- 'underline' : [4, 24],
- 'inverse' : [7, 27],
- //grayscale
- 'white' : [37, 39],
- 'grey' : [90, 39],
- 'black' : [90, 39],
- //colors
- 'blue' : [34, 39],
- 'cyan' : [36, 39],
- 'green' : [32, 39],
- 'magenta' : [35, 39],
- 'red' : [31, 39],
- 'yellow' : [33, 39]
- };
- return '\033[' + styles[style][0] + 'm' + str +
- '\033[' + styles[style][1] + 'm';
+ if (exports.mode == 'console') {
+ var styles = {
+ //styles
+ 'bold' : ['\033[1m', '\033[22m'],
+ 'italic' : ['\033[3m', '\033[23m'],
+ 'underline' : ['\033[4m', '\033[24m'],
+ 'inverse' : ['\033[7m', '\033[27m'],
+ //grayscale
+ 'white' : ['\033[37m', '\033[39m'],
+ 'grey' : ['\033[90m', '\033[39m'],
+ 'black' : ['\033[90m', '\033[39m'],
+ //colors
+ 'blue' : ['\033[34m', '\033[39m'],
+ 'cyan' : ['\033[36m', '\033[39m'],
+ 'green' : ['\033[32m', '\033[39m'],
+ 'magenta' : ['\033[35m', '\033[39m'],
+ 'red' : ['\033[31m', '\033[39m'],
+ 'yellow' : ['\033[33m', '\033[39m']
+ };
+ } else if (exports.mode == 'browser') {
+ var styles = {
+ //styles
+ 'bold' : ['', ''],
+ 'italic' : ['', ''],
+ 'underline' : ['', ''],
+ 'inverse' : ['', ''],
+ //grayscale
+ 'white' : ['', ''],
+ 'grey' : ['', ''],
+ 'black' : ['', ''],
+ //colors
+ 'blue' : ['', ''],
+ 'cyan' : ['', ''],
+ 'green' : ['', ''],
+ 'magenta' : ['', ''],
+ 'red' : ['', ''],
+ 'yellow' : ['', '']
+ };
+ } else {
+ console.log('unsupported mode, try "browser" or "console"');
+ }
+
+ return styles[style][0] + str + styles[style][1];
};
// don't summon zalgo
diff --git a/example.js b/example.js
index 3003581..184a741 100644
--- a/example.js
+++ b/example.js
@@ -1,6 +1,8 @@
var sys = require('sys');
var colors = require('./colors');
+//colors.mode = "browser";
+
sys.puts('Rainbows are fun!'.rainbow);
sys.puts('So '.italic + 'are'.underline + ' styles! '.bold + 'inverse'.inverse); // styles not widely supported
sys.puts('Chains are also cool.'.bold.italic.underline.red); // styles not widely supported