[![view on npm](http://img.shields.io/npm/v/wordwrapjs.svg)](https://www.npmjs.org/package/wordwrapjs) [![npm module downloads](http://img.shields.io/npm/dt/wordwrapjs.svg)](https://www.npmjs.org/package/wordwrapjs) [![Build Status](https://travis-ci.org/75lb/wordwrapjs.svg?branch=master)](https://travis-ci.org/75lb/wordwrapjs) [![Dependency Status](https://david-dm.org/75lb/wordwrapjs.svg)](https://david-dm.org/75lb/wordwrapjs) [![js-standard-style](https://img.shields.io/badge/code%20style-standard-brightgreen.svg)](https://github.com/feross/standard) # wordwrapjs Word wrapping, with a few features. - force-break option - wraps hypenated words - multilingual - wraps any language that uses whitespace for word separation. ## Synopsis Wrap some text in a 20 character column. ```js > wordwrap = require('wordwrapjs') > text = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.' > result = wordwrap.wrap(text, { width: 20 }) ``` `result` now looks like this: ``` Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. ``` By default, long words will not break. Unless you set the `break` option. ```js > url = 'https://github.com/75lb/wordwrapjs' > wrap.lines(url, { width: 18 }) [ 'https://github.com/75lb/wordwrapjs' ] > wrap.lines(url, { width: 18, break: true }) [ 'https://github.com', '/75lb/wordwrapjs' ] ``` ## API Reference * [wordwrapjs](#module_wordwrapjs) * [WordWrap](#exp_module_wordwrapjs--WordWrap) ⏏ * [.wrap(text, [options])](#module_wordwrapjs--WordWrap.wrap) ⇒ string * [.lines(text, options)](#module_wordwrapjs--WordWrap.lines) * [.isWrappable(text)](#module_wordwrapjs--WordWrap.isWrappable) ⇒ boolean * [.getChunks(text)](#module_wordwrapjs--WordWrap.getChunks) ⇒ Array.<string> ### WordWrap ⏏ **Kind**: Exported class #### WordWrap.wrap(text, [options]) ⇒ string **Kind**: static method of [WordWrap](#exp_module_wordwrapjs--WordWrap) | Param | Type | Description | | --- | --- | --- | | text | string | the input text to wrap | | [options] | object | optional configuration | | [options.width] | number | the max column width in characters (defaults to 30). | | [options.break] | boolean | if true, words exceeding the specified `width` will be forcefully broken | | [options.noTrim] | boolean | By default, each line output is trimmed. If `noTrim` is set, no line-trimming occurs - all whitespace from the input text is left in. | #### WordWrap.lines(text, options) Wraps the input text, returning an array of strings (lines). **Kind**: static method of [WordWrap](#exp_module_wordwrapjs--WordWrap) | Param | Type | Description | | --- | --- | --- | | text | string | input text | | options | object | Accepts same options as constructor. | #### WordWrap.isWrappable(text) ⇒ boolean Returns true if the input text would be wrapped if passed into `.wrap()`. **Kind**: static method of [WordWrap](#exp_module_wordwrapjs--WordWrap) | Param | Type | Description | | --- | --- | --- | | text | string | input text | #### WordWrap.getChunks(text) ⇒ Array.<string> Splits the input text into an array of words and whitespace. **Kind**: static method of [WordWrap](#exp_module_wordwrapjs--WordWrap) | Param | Type | Description | | --- | --- | --- | | text | string | input text | * * * © 2015-17 Lloyd Brookes \<75pound@gmail.com\>. Documented by [jsdoc-to-markdown](https://github.com/jsdoc2md/jsdoc-to-markdown).