Skip to content

apla/paintbrush

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Paintbrush

build NPM Version codecov.io

Paintbrush is an ascii coloring tool for nodejs.

It depends only on util.inspect.

Synopsis

var paint = require ('paintbrush');

console.log (paint ('red', 'red text'));

console.log (paint ('red+black_bg', 'red text on black'));

paint.redOnBlack = paint.bind (paint, 'red+black_bg');
paint.error      = paint.bind (paint, "red+white_bg");
paint.path       = paint.cyan.bind (paint);

// actually this is main reason to publish another one module
console.log (paint.redOnBlack ('red text on black'));


// use to discard colors and repaint output from another program
var httpProcess = child_process.spawn (
	'/usr/bin/env',
	['dataflows', 'daemon', '--no-fork'], {
		stdio: ['pipe', 'pipe', 'pipe']
	}
);

httpProcess.stderr.on ('data', function (data) {
	// paint grey every string chunk without color information
	// to differentiate between server and client output
	process.stdout.write (paint.fillUnpainted ('grey', data.toString()));
});

httpProcess.stdout.on ('data', function (data) {
	if (verbose) {
		process.stdout.write (paint.fillUnpainted ('grey', data.toString()));
	}
	if (!ignoreStdout) shellOutput += data;
	if (!ignoreStdout) {
		var m = paint.stripColor (shellOutput).match (/http initiator running at http:\/\/([^:]+):([^\/]+)/);
		if (m) {
		// …
		}
	}
});

API

var paint = require ('paintbrush');

paint function allows you to write colored messages. First parameter is a color attribute specification. You can use bold, italic, underline and inverse modifiers; white, grey, black, blue, cyan, green, magenta, red and yellow colors; also every color you can use as background, just add _bg. Any following arguments joined with space character between them.

console.log (
	paint ("black+italic+cyan_bg", "will paint black italic text", "on cyan", "background")
);

paint.stripColor can be used to discard any color information from string. Also you can use paint.discardColor as an alias.

paint.fillUnpainted will fill any color-absent chunks to color you want. Take a look into example in Synopsis to get idea how it works.

About

featureless ascii painting for node

Resources

License

Stars

Watchers

Forks

Packages

No packages published