Blessed は Node.js 向けの高度なターミナルインターフェースライブラリで、ncurses のようなリッチなウィジェット機能をモダン JavaScript にもたらします。
スクリーンの初期化
const blessed = require('blessed');
const screen = blessed.screen({
smartCSR: true, // ターミナル再描画のちらつきを最適化
autoPadding: true,
title: 'My Dashboard'
});
screen.append(element);
screen.render();
// グローバルな終了キーをハンドル
screen.key(['escape', 'q', 'C-c'], (ch, key) => {
return process.exit(0);
});
UI 要素(Box ウィジェット)
const box = blessed.box({
top: 'center',
left: 'center',
width: '50%',
height: '50%',
content: '{bold}Hello{/bold} Blessed!',
tags: true, // インライン書式タグを有効化
border: {
type: 'line' // 'line' または 'bg'
},
style: {
fg: 'white',
bg: 'magenta',
border: {
fg: '#f0f0f0'
},
hover: {
bg: 'green'
}
}
});
screen.append(box);
書式タグ
tags: true を設定すると、要素はインライン書式タグを解析します:
{bold}...{/bold}: 太字テキスト{underline}...{/underline}: 下線付きテキスト{center}...{/center}: 中央寄せコンテンツ{right}...{/right}: 右寄せテキスト{|}: 左右の水平配置セパレータ{#c0ff33-fg}...{/}: カスタム 16 進数前景色
生文字列内のタグをエスケープするには blessed.escape(str) を使用します。