_ _ _
(_)(_) | |
__ _ ___ ___ _ _ ______ __ _ _ __ | |_
/ _` |/ __| / __|| || ||______| / _` || '__|| __|
| (_| |\__ \| (__ | || | | (_| || | | |_
\__,_||___/ \___||_||_| \__,_||_| \__|
ascii-art-ansi.js
This module allows you to work with ansi strings in a style aware way, so you aren't constantly doing string manipulation and scanning when working with terminal strings. It offers a clean abstraction to build ascii-art utilities on top of.
Installation
npm install ascii-art-ansi
Usage
require('ascii-art-ansii')
To do anything with it, you'll need to include the library:
const ansi = require('ascii-art-ansi');
const color = require('ascii-art-ansi/color');
.map(ansiString, handler)
Map through an ansi string one character at a time, without any of those characters being styles.
Kind: static property of ascii-art-ansi
Param | Type | Description |
---|
ansiString | string | input string to map across |
handler | function | the function to map through the string |
Example
var result = ansi.map(
ansiString,
function(chr, codes, rowcol, pos, shortcircuit){
}
);
.length(ansiString)
The number of non ansi code characters in the string
Kind: static property of ascii-art-ansi
Param | Type | Description |
---|
ansiString | string | input string to measure |
Example
var result = ansi.length(ansiString);
.strip(ansiString)
Remove any ansi codes from the string
Kind: static property of ascii-art-ansi
Param | Type | Description |
---|
ansiString | string | input string to measure |
Example
var result = ansi.strip(ansiString);
.length(ansiString)
convert this string to an array of characters
Kind: static property of ascii-art-ansi
Param | Type | Description |
---|
ansiString | string | input string to measure |
Example
var result = ansi.toArray(ansiString);
.charAt(ansiString)
Extract a specific character from the string, by position
Kind: static property of ascii-art-ansi
Param | Type | Description |
---|
ansiString | string | input string to measure |
Example
var chr = ansi.charAt(ansiString, 4);
.substring(ansiString, start, stop)
Like the javascript built-in substring, but ansi aware
Kind: static property of ascii-art-ansi
Param | Type | Description |
---|
ansiString | string | input string to measure |
Example
var chr = ansi.trimTo(ansiString, 4);
.intersect(ansiString)
Intersect/overlay any number of strings
Kind: static property of ascii-art-ansi
Param | Type | Description |
---|
inputString(N) | string | input string to measure |
callback | function | callback to handle asynchronous return, if omitted, a promise is returned |
Example
var chr = ansi.intersect(s1, s2, s3, function(err, result){
});
.interstyle(ansiString)
Intersect/overlay any number of strings and include their styles
Kind: static property of ascii-art-ansi
Param | Type | Description |
---|
inputString(N) | string | input string to measure |
callback | function | callback to handle asynchronous return, if omitted, a promise is returned |
Example
var chr = ansi.interstyle(s1, s2, s3, function(err, result){
});
.Color(options)
Intersect/overlay any number of strings and include their styles
Kind: static property of ascii-art-ansi
Param | Type | Description |
---|
options | Object | options |
Example
var color = new Color('#FFFFFF')
.Color.code(value)
Compute the code for the given hex color (closest within the active palette)
Kind: static property of ascii-art-ansi/color
Param | Type | Description |
---|
value | string | the hex value color of the color |
Example
var ansiCode = Color.code('#FF0000');
.Color.name(value)
Compute the code for the given named color (closest within the active palette)
Kind: static property of ascii-art-ansi/color
Param | Type | Description |
---|
value | string | the name of the color |
Example
var ansiCode = Color.name('red');
.Color.is256
If set colors will be computed using 256 colors instead of 16.
Colors are averaged according to a color averaging scheme which can be changed with Color.useDistance(name);
where name is one of euclideanDistance
, classic
, ratioDistance
, classicByValue
, CIE76Difference
, closestByIntensity
, rankedChannel
, simple
, original
Kind: static property of ascii-art-ansi/color
Example
Color.is256 = true;
.Color.isTrueColor
If set colors will be computed using millions of colors
Kind: static property of ascii-art-ansi/color
Example
Color.isTrueColor = true;
Roadmap
Goals
- color reducer
- streaming
- pluggable colorsets/encodings
Testing
In the root directory run:
npm run test
Please make sure to run the tests before submitting a patch and report any rough edges. Thanks!
Enjoy,
-Abbey Hawk Sparrow