2015-12-22 2 views
1

Я хочу интегрировать модуль узла blessed и vorpal, Может ли кто-нибудь дать мне несколько советов о том, как интегрировать этот два модуля, Спасибо U очень много!Как интегрировать модуль узла vorpal и blessed

Ниже приведен код проекта (только для справки), Моя цель - левая часть терминала, используемая для интерактивного CLI vorpal, и верхняя правая часть, используемая для выхода журнала.

var blessed = require('blessed') 
    , screen; 
var vorpal = require('vorpal')(); 

vorpal 
    .command('foo', 'bar') 
    .action(function(args, callback) { 
     this.log('bar'); 
     callback(); 
    }); 

vorpal 
    .delimiter('testapp$') 
    .show(); 

screen = blessed.screen({ 
    dump: __dirname + '/logs/logger.log', 
    smartCSR: true, 
    autoPadding: false, 
    warnings: true 
}); 

//This area I want the vorpal interactive CLI 
var leftPart = blessed.box({ 
    parent: screen, 
    left: 0, 
    top: 0, 
    width: '50%', 
    height: '100%', 
    border: { 
     type: 'line', 
     left: false, 
     top: false, 
     right: true, 
     bottom: false 
    }, 
    // border: 'line', 

    content: 'I want here is the normal terminal input/output with vorpal style\n'+ 
      'How can I do this?' 
    //content:vorpal 
}); 

//This area with be the log output area 
var logger = blessed.log({ 
    parent: screen, 
    top: '0', 
    left: '50%-1', 
    width: '50%-1', 
    height: '50%-1', 
    border: 'line', 
    tags: true, 
    keys: true, 
    vi: true, 
    mouse: true, 
    scrollback: 100, 
    scrollbar: { 
     ch: ' ', 
     track: { 
      bg: 'yellow' 
     }, 
     style: { 
      inverse: true 
     } 
    } 
}); 

leftPart.focus(); 


setInterval(function() { 
    logger.log('Hello {#0fe1ab-fg}world{/}: {bold}%s{/bold}.', Date.now().toString(36)); 

    //screen.render(); 
}, 1000).unref(); 

screen.key('q', function() { 
    return screen.destroy(); 
}); 

screen.render(); 

ответ

0

Я не думаю, что это было проверено ранее, поэтому это своего рода неизведанная территория!

Я действительно думаю, что вы сможете использовать благословленные компоненты с помощью Vorpal, однако я не уверен, что вы сможете нанести подсказку Vorpal в защитную оболочку. Vorpal основан на Inquirer.js, и его логика очень спроектирована по отношению к подсказке, где она находится.

Возможно, вы поставили окно журнала в верхней части экрана и сохранили подсказку Vorpal, где она находится.

Поиграйте с этим и посмотрите, работает ли он - и не стесняйтесь задавать больше вопросов по мере продвижения!

+0

Я положил окно журнала сверху, ввод команды в Vorpal будет удвоен, например, «help» будет «hheellpp» –

+0

Ah snap. Да, я думаю, это потому, что и Vorpal, и Blessed слушают 'stdin', и поэтому он удваивает все. Мне нужно провести некоторое исследование, чтобы обойти это! – dthree

+0

Большое спасибо :) –