readme.md
 1  # wrap-ansi [![Build Status](https://travis-ci.com/chalk/wrap-ansi.svg?branch=master)](https://travis-ci.com/chalk/wrap-ansi) [![Coverage Status](https://coveralls.io/repos/github/chalk/wrap-ansi/badge.svg?branch=master)](https://coveralls.io/github/chalk/wrap-ansi?branch=master)
 2  
 3  > Wordwrap a string with [ANSI escape codes](https://en.wikipedia.org/wiki/ANSI_escape_code#Colors_and_Styles)
 4  
 5  ## Install
 6  
 7  ```
 8  $ npm install wrap-ansi
 9  ```
10  
11  ## Usage
12  
13  ```js
14  const chalk = require('chalk');
15  const wrapAnsi = require('wrap-ansi');
16  
17  const input = 'The quick brown ' + chalk.red('fox jumped over ') +
18  	'the lazy ' + chalk.green('dog and then ran away with the unicorn.');
19  
20  console.log(wrapAnsi(input, 20));
21  ```
22  
23  <img width="331" src="screenshot.png">
24  
25  ## API
26  
27  ### wrapAnsi(string, columns, options?)
28  
29  Wrap words to the specified column width.
30  
31  #### string
32  
33  Type: `string`
34  
35  String with ANSI escape codes. Like one styled by [`chalk`](https://github.com/chalk/chalk). Newline characters will be normalized to `\n`.
36  
37  #### columns
38  
39  Type: `number`
40  
41  Number of columns to wrap the text to.
42  
43  #### options
44  
45  Type: `object`
46  
47  ##### hard
48  
49  Type: `boolean`\
50  Default: `false`
51  
52  By default the wrap is soft, meaning long words may extend past the column width. Setting this to `true` will make it hard wrap at the column width.
53  
54  ##### wordWrap
55  
56  Type: `boolean`\
57  Default: `true`
58  
59  By default, an attempt is made to split words at spaces, ensuring that they don't extend past the configured columns. If wordWrap is `false`, each column will instead be completely filled splitting words as necessary.
60  
61  ##### trim
62  
63  Type: `boolean`\
64  Default: `true`
65  
66  Whitespace on all lines is removed by default. Set this option to `false` if you don't want to trim.
67  
68  ## Related
69  
70  - [slice-ansi](https://github.com/chalk/slice-ansi) - Slice a string with ANSI escape codes
71  - [cli-truncate](https://github.com/sindresorhus/cli-truncate) - Truncate a string to a specific width in the terminal
72  - [chalk](https://github.com/chalk/chalk) - Terminal string styling done right
73  - [jsesc](https://github.com/mathiasbynens/jsesc) - Generate ASCII-only output from Unicode strings. Useful for creating test fixtures.
74  
75  ## Maintainers
76  
77  - [Sindre Sorhus](https://github.com/sindresorhus)
78  - [Josh Junon](https://github.com/qix-)
79  - [Benjamin Coe](https://github.com/bcoe)
80  
81  ---
82  
83  <div align="center">
84  	<b>
85  		<a href="https://tidelift.com/subscription/pkg/npm-wrap_ansi?utm_source=npm-wrap-ansi&utm_medium=referral&utm_campaign=readme">Get professional support for this package with a Tidelift subscription</a>
86  	</b>
87  	<br>
88  	<sub>
89  		Tidelift helps make open source sustainable for maintainers while giving companies<br>assurances about security, maintenance, and licensing for their dependencies.
90  	</sub>
91  </div>