Краткий справочник

Шпаргалка по терминальному UI-фреймворку Blessed.js

Краткий справочник по библиотеке Blessed.js для создания TUI-интерфейсов в Node.js: экраны, виджеты Box, теги стилизации и обработка клавиш.

· Опубликовано

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);
});

Элементы интерфейса (виджет 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}...{/}: Произвольный hex-цвет текста

Для экранирования тегов в исходных строках используйте blessed.escape(str).

Связанные темы