chrisdrakeford 9c87c1307d first commit | 3 years ago | |
---|---|---|
.. | ||
node_modules | 3 years ago | |
CHANGELOG.md | 3 years ago | |
LICENSE | 3 years ago | |
README.md | 3 years ago | |
index.js | 3 years ago | |
package.json | 3 years ago |
align-text with ANSI support for CLIs
Easily center- or right- align a block of text, carefully ignoring ANSI escape codes.
E.g. turn this:
Into this:
npm install --save ansi-align
var ansiAlign = require('ansi-align')
ansiAlign(text, [opts])
Align the given text per the line with the greatest string-width
, returning a new string (or array).
text
: required, string or array
The text to align. If a string is given, it will be split using either the opts.split
value or '\n'
by default. If an array is given, a different array of modified strings will be returned.
opts
: optional, object
Options to change behavior, see below.
opts.align
: string, default 'center'
The alignment mode. Use 'center'
for center-alignment, 'right'
for right-alignment, or 'left'
for left-alignment. Note that the given text
is assumed to be left-aligned already, so specifying align: 'left'
just returns the text
as is (no-op).
opts.split
: string or RegExp, default '\n'
The separator to use when splitting the text. Only used if text is given as a string.
opts.pad
: string, default ' '
The value used to left-pad (prepend to) lines of lesser width. Will be repeated as necessary to adjust alignment to the line with the greatest width.
ansiAlign.center(text)
Alias for ansiAlign(text, { align: 'center' })
.
ansiAlign.right(text)
Alias for ansiAlign(text, { align: 'right' })
.
ansiAlign.left(text)
Alias for ansiAlign(text, { align: 'left' })
, which is a no-op.
center-align
: Very close to this package, except it doesn't support ANSI codes.left-pad
: Great for left-padding but does not support center alignment or ANSI codes.ISC © Contributors