Fix the problem of displaying Chinese-like characters in the original
terminal-menu package.
npm i terminal-menu-2 --save
Example:
function slice(str, len) {
return str.slice(0, len - (str.match(/[^\u0000-\u00ff]/g) || '').length);
}
for (var i = 0; i < items.length; i++) {
menu.add(slice(items[i].title, 80));
}
retro ansi terminal menus for serious 80s technicolor business
example
var menu = require('../')({ width: 29, x: 4, y: 2 });
menu.reset();
menu.write('SERIOUS BUSINESS TERMINAL\n');
menu.write('-------------------------\n');
menu.add('ADD TRANSACTION INVOICE');
menu.add('BUSINESS INTELLIGENCE');
menu.add('ACCOUNTS PAYABLE');
menu.add('LEDGER BOOKINGS');
menu.add('INDICATOR CHART METRICS');
menu.add('BACKUP DATA TO FLOPPY DISK');
menu.add('RESTORE FROM FLOPPY DISK');
menu.add('EXIT');
menu.on('select', function (label) {
menu.close();
console.log('SELECTED: ' + label);
});
menu.createStream().pipe(process.stdout);
methods
var createMenu = require('terminal-menu')
Create a menu with opts
:
opts.width
- menu width in columnsopts.x
- top-left corner x offset, default: 1opts.y
- top-left corner y offset, default: 1opts.fg
- foreground color, default: 'white'opts.bg
- background color, default: 'blue'opts.padding.left
- left padding in columnsopts.padding.right
- right padding in columnsopts.padding.top
- top padding in rowsopts.padding.bottom
- bottom padding in rows
The menu can be driven around with the arrow keys and j/k, vi-style.
To quit out of the menu, hit ^C
or q
.
Create a new selectable menu item with the string label
.
Write a message to the menu.
Return the stream to be piped to a terminal.
Reset the terminal, clearing all contents.
Unregister all listeners and put the terminal back to its original state.
install
With npm do:
npm install terminal-menu
license
MIT