Wondering what’s next for npm?Check out our public roadmap! »

    smartwrap

    2.0.1 • Public • Published

    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

    GPL 2.0

    Keywords

    Install

    npm i smartwrap

    DownloadsWeekly Downloads

    42,676

    Version

    2.0.1

    License

    GPL-2.0

    Unpacked Size

    47.5 kB

    Total Files

    17

    Last publish

    Collaborators

    • avatar