text can be a string or array. If a string is passed, a string will be returned. If an array is passed, an array will be returned.
callback|integer: if an integer, the text will be indented by that amount. If a function, it must return an integer representing the amount of leading indentation to use as align loops over each line.
Example
Would align:
To:
callback
params
The callback is used to determine the indentation of each line and gets the following params:
len the length of the "current" line
longest the length of the longest line
line
return
The callback may return:
an integer that represents the number of spaces to use for padding,
or an object with the following properties:
indent: {Number} the amount of indentation to use. Default is 0
Integer example:
Object example:
Usage examples
Center align
Using the centerAlign function from above:
Would align this text:
Resulting in this:
Customize
If you wanted to add more padding on the left, just pass the number in the callback.
For example, to add 4 spaces before every line:
Would result in:
Bullets
Would return:
Different indent character
Would return
Related projects
: Center-align the text in a string.
: Left or right (or both) justify text using a custom width and character
: Get the longest item in an array.
Running tests
Install dev dependencies:
Contributing
Pull requests and stars are always welcome. For bugs and feature requests,
var align = require('align-text');
align(text, callback_function_or_integer);
align(text, 4);
abc
abc
abc
abc
abc
abc
// calculate half the difference between the length
// of the current line and the longest line
function centerAlign(len, longest, line, lines) {
return Math.floor((longest - len) / 2);
}
Lorem ipsum dolor sit amet
consectetur adipiscin
elit, sed do eiusmod tempor incididun
ut labore et dolor
magna aliqua. Ut enim ad mini
veniam, quis
Lorem ipsum dolor sit amet,
consectetur adipiscing
elit, sed do eiusmod tempor incididunt
ut labore et dolore
magna aliqua. Ut enim ad minim
veniam, quis
Lorem ipsum dolor sit amet,
consectetur adipiscing
elit, sed do eiusmod tempor incididunt
ut labore et dolore
magna aliqua. Ut enim ad minim
veniam, quis
- Lorem ipsum dolor sit amet,
- consectetur adipiscing
- elit, sed do eiusmod tempor incididunt
- ut labore et dolore
- magna aliqua. Ut enim ad minim
- veniam, quis
~~~~~Lorem ipsum dolor sit amet,
~~~~~~~~consectetur adipiscing
elit, sed do eiusmod tempor incididunt
~~~~~~~~~ut labore et dolore
~~~~magna aliqua. Ut enim ad minim
~~~~~~~~~~~~~veniam, quis