ansi-align
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:
Install
npm install --save ansi-align
var ansiAlign = require('ansi-align')
API
ansiAlign(text, [opts])
Align the given text per the line with the greatest string-width, returning a new string (or array).
Arguments
-
text: required, string or arrayThe text to align. If a string is given, it will be split using either the
opts.splitvalue or'\n'by default. If an array is given, a different array of modified strings will be returned. -
opts: optional, objectOptions to change behavior, see below.
Options
-
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 giventextis assumed to be left-aligned already, so specifyingalign: 'left'just returns thetextas 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.
Similar Packages
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.- Pretty much anything by the chalk team
License
ISC © Contributors