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 the current line (string) being aligned
lines the array of all lines
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 when an object is returned.
character: {String} the character to use for indentation. Default is '' (empty string) when an object is returned.
prefix: {String} leading characters to use at the beginning of each line. '' (empty string) when an object is returned.
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.
// 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