.. | ||
node_modules/wordwrap | ||
test | ||
.coveralls.yml | ||
.npmignore | ||
.travis.yml | ||
index.js | ||
LICENSE.txt | ||
package.json | ||
README.md |
cliui
easily create complex multi-column command-line-interfaces.
Example
var ui = require('cliui')({
width: 80
})
ui.div('Usage: $0 [command] [options]')
ui.div({
text: 'Options:',
padding: [2, 0, 2, 0]
})
ui.div(
{
text: "-f, --file",
width: 40,
padding: [0, 4, 0, 4]
},
{
text: "the file to load",
width: 25
},
{
text: "[required]",
align: 'right'
}
)
console.log(ui.toString())
Layout DSL
cliui exposes a simple layout DSL:
If you create a single ui.row
, passing a string rather than an
object:
\n
: characters will be interpreted as new rows.\t
: characters will be interpreted as new columns.
as an example...
var ui = require('./')({
width: 60
})
ui.div(
'Usage: node ./bin/foo.js\n' +
' <regex>\t provide a regex\n' +
' <glob>\t provide a glob\t [required]'
)
console.log(ui.toString())
will output:
Usage: node ./bin/foo.js
<regex> provide a regex
<glob> provide a glob [required]
Methods
cliui = require('cliui')
cliui({width: integer})
Specify the maximum width of the UI being generated.
cliui({wrap: boolean})
Enable or disable the wrapping of text in a column.
cliui.div(column, column, column)
Create a row with any number of columns, a column can either be a string, or an object with the following options:
- width: the width of a column.
- align: alignment,
right
orcenter
. - padding:
[top, right, bottom, left]
.
cliui.span(column, column, column)
Similar to div
, except the next row will be appended without
a new line being created.