smartwrap

Textwrap for javascript/nodejs. Correctly handles wide characters (宽字符) and emojis (😃). Wraps strings with option to break on words.

MIT 24 个版本
安装
npm install smartwrap
yarn add smartwrap
pnpm add smartwrap
bun add smartwrap
README

smartwrap

Build Status Dependency Status NPM version

Textwrap for javascript/nodejs. Correctly handles wide characters (宽字符) and emojis (😃). Optionally break words when wrapping strings.

Why?

I needed a javascript package to correctly wrap wide characters - which have a "length" property value of 1 but occupy 2 or more spaces in the terminal.

Example Usages:

Terminal:

npm i -g smartwrap
echo somestring you want to wrap | smartwrap --width=3 --paddingLeft=1

Output:

 so
 me
 st
 ri
 ng
 yo
 u
 wa
 nt
 to
 wr
 ap

Node module:

Wide Character Wrapping

var Smartwrap = require('smartwrap');
var exampleText1 = '宽字符';
console.log(Smartwrap(exampleText1,{
  width: 2
}));
  • Output:
宽
字
符

String Wrapping

let exampleText2 = "break at word"

console.log(smartwrap(exampleText2,{
  width: 10,
  breakword: false //default
}))
  • Output:
break at
word

Breaking Words When Wrapping Strings

console.log(smartwrap(exampleText2,{
  width: 10,
  breakword: true
}))
  • Output:
break at w
ord

Options

--breakword       Choose whether or not to break words when wrapping a string
                                                                 [default: false]
--errorChar       Placeholder for wide characters when minWidth < 2
                                                                 [default: �]
--minWidth        Never change this unless you are certin you are not using
                  wide characters and you want a column 1 space wide. Then
                  change to 1.                   [choices: 1, 2] [default: 2]
--paddingLeft     Set the left padding of the output             [default: 0]
--paddingRight    Set the right padding of the output            [default: 0]
--splitAt         Characters at which to split input    [default: [" ","\t"]]
--trim            Trim the whitespace from end of input       [default: true]
--width, -w       Set the line width of the output (in spaces)
                                                     [required] [default: 10]

Compatibility

node 6.0 <

License

MIT

版本列表
2.0.2 2021-05-15
2.0.1 2020-03-09
2.0.0 2020-02-29
1.2.5 2020-02-25
1.2.4 2020-02-25
1.2.3 2020-02-14
1.2.2 2020-02-13
1.2.1 2020-01-09
1.2.0 2019-11-12
1.1.2 2019-11-03
1.1.1 2019-11-03
1.1.0 2019-08-28
1.0.12 2019-08-13
1.0.11 2019-01-13
1.0.10 2018-12-21
1.0.9 2017-06-09
1.0.8 2017-06-09
1.0.7 2017-06-07
1.0.6 2017-06-07
1.0.5 2017-06-07
1.0.3 2017-05-20
1.0.2 2017-05-19
1.0.1 2017-05-19
1.0.0 2017-05-19