What is wordwrapjs?
The wordwrapjs package is a utility for wrapping words into a specified width. It's useful for formatting text output in command-line applications or anywhere where you need to control the flow of text to fit within certain boundaries.
What are wordwrapjs's main functionalities?
Hard Wrapping
Hard wrapping ensures that the text is wrapped strictly at the specified width, even if it means breaking words apart.
const wordwrap = require('wordwrapjs');
let wrappedText = wordwrap.wrap('Some long text that needs to be wrapped', {width: 20});
console.log(wrappedText);
Soft Wrapping
Soft wrapping wraps text at the specified width but without breaking words. It moves the whole word to the next line if it doesn't fit.
const wordwrap = require('wordwrapjs');
let wrappedText = wordwrap.wrap('Some long text that needs to be wrapped', {width: 20, break: false});
console.log(wrappedText);
Custom Break Character
This feature allows specifying a custom break character for wrapping, which can be useful for adding hyphens or other characters when a word is split.
const wordwrap = require('wordwrapjs');
let wrappedText = wordwrap.wrap('Some long text that needs to be wrapped', {width: 20, break: true, cut: true});
console.log(wrappedText);
Other packages similar to wordwrapjs
word-wrap
The 'word-wrap' package provides similar functionality to 'wordwrapjs' with a focus on wrapping plain text with indentation, prefix, and cut options. It's a simple and lightweight solution for text wrapping needs.
wrap-ansi
The 'wrap-ansi' package is designed to wrap text with ANSI escape codes, which is useful for colored CLI text. It handles wrapping text containing ANSI escape codes without breaking the color sequences.
wordwrapjs
Word wrapping, with a few features.
- multilingual - wraps any language using whitespace word separation.
- force-break option
- ignore pattern option (e.g. ansi escape sequences)
- wraps hypenated words
Example
Wrap some sick bars in a 20 character column.
> wrap = require("wordwrapjs")
> bars = "I'm rapping. I'm rapping. I'm rap rap rapping. I'm rap rap rap rap rappity rapping."
> result = wrap(bars, { width: 20 })
result
now looks like this:
I'm rapping. I'm
rapping. I'm rap rap
rapping. I'm rap rap
rap rap rappity
rapping.
By default, long words will not break. Unless you insist.
> 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' ]
wrap(text, [options]) ⇒ string
⏏
Kind: Exported function
Param | Type | Default | Description |
---|
text | string | | the input text to wrap |
[options] | object | | optional config |
[options.width] | number | 30 | the max column width in characters |
[options.ignore] | RegExp | Array.<RegExp> | | one or more patterns to be ignored when sizing the newly wrapped lines. For example ignore: /\u001b.*?m/g will ignore unprintable ansi escape sequences. |
[options.break] | boolean | | if true, words exceeding the specified width will be forcefully broken |
[options.eol] | string | "os.EOL" | the desired new line character to use, defaults to os.EOL. |
wrap.lines(text, [options]) ⇒ Array
returns the wrapped output as an array of lines, rather than a single string
Kind: static method of wrap
Param | Type | Description |
---|
text | string | the input text to wrap |
[options] | object | same options as wrap |
Example
> bars = "I'm rapping. I'm rapping. I'm rap rap rapping. I'm rap rap rap rap rappity rapping."
> wrap.lines(bars)
[ "I'm rapping. I'm rapping. I'm",
"rap rap rapping. I'm rap rap",
"rap rap rappity rapping." ]
wrap.isWrappable(text) ⇒ boolean
Returns true if the input text is wrappable
Kind: static method of wrap
Param | Type | Description |
---|
text | string | input text |
wrap.getWords(text) ⇒ Array.<string>
Splits the input text returning an array of words
Kind: static method of wrap
Param | Type | Description |
---|
text | string | input text |
© 2015 Lloyd Brookes <75pound@gmail.com>. Documented by jsdoc-to-markdown.