Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Align the text in a string.

License

NotificationsYou must be signed in to change notification settings

jonschlinkert/align-text

Repository files navigation

Align the text in a string.

Follow this project's author,Jon Schlinkert, for updates on this project and others.

Install

Install withnpm:

$ npm install --save align-text

Usage

varalign=require('align-text');align(text,function_or_integer);

Params

  • text can be astring or array. If a string is passed, a string will be returned. If an array is passed, an array will be returned.
  • function|integer: if an integer, the text will be indented by that amount. If a transform function is passed, it must return an object with aninteger property or an integer representing the amount of leading indentation to use asalign loops over each line.

Example

align(text,4);

Would align:

abcabcabc

To:

    abc    abc    abc

Transform function

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 is0 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:

// calculate half the difference between the length// of the current line and the longest linefunctioncenterAlign(len,longest,line,lines){returnMath.floor((longest-len)/2);}

Object example:

functioncenterAlign(len,longest,line,lines){return{character:'\t',indent:Math.floor((longest-len)/2),prefix:'~ ',}}

Usage examples

Align text values in an array:

align([1,2,3,100]);//=> ['  1', '  2', '  3', '100']

Ordo stuff like this:

screen shot 2015-06-09 at 2 08 34 am

Visitthe example to see how this works.

Center align

Using thecenterAlign function from above:

align(text,centerAlign);

Would align this text:

Loremipsumdolorsitametconsecteturadipiscinelit,seddoeiusmodtemporincididunutlaboreetdolormagnaaliqua.Utenimadminiveniam,quis

Resulting in this:

     Lorem ipsum dolor sit amet,        consectetur adipiscingelit, sed do eiusmod tempor incididunt         ut labore et dolore    magna aliqua. Ut enim ad minim             veniam, quis

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:

functioncenterAlign(len,longest,line,lines){return4+Math.floor((longest-len)/2);}

Would result in:

         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

Bullets

align(text,function(len,max,line,lines){return{prefix:' - '};});

Would return:

- 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

Different indent character

align(text,function(len,max,line,lines){return{indent:Math.floor((max-len)/2),character:'~',};});

Would return

~~~~~Lorem ipsum dolor sit amet,~~~~~~~~consectetur adipiscingelit, sed do eiusmod tempor incididunt~~~~~~~~~ut labore et dolore~~~~magna aliqua. Ut enim ad minim~~~~~~~~~~~~~veniam, quis

About

Contributing

Pull requests and stars are always welcome. For bugs and feature requests,please create an issue.

Contributors

CommitsContributor
14jonschlinkert
2shinnn

Building docs

(This project's readme.md is generated byverb, please don't edit the readme directly. Any changes to the readme must be made in the.verb.md readme template.)

To generate the readme, run the following command:

$ npm install -g verbose/verb#dev verb-generate-readme&& verb

Running tests

Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command:

$ npm install&& npmtest

Author

Jon Schlinkert

License

Copyright © 2017,Jon Schlinkert.Released under theMIT License.


This file was generated byverb-generate-readme, v0.6.0, on September 13, 2017.


[8]ページ先頭

©2009-2025 Movatter.jp