jste 0.11 – эмулятор терминала на JavaScript

jste-logo

jste – написанный мной на JavaScript эмулятор терминала.

jste позволяет превратить textarea в Unix-подобную консоль, которая может выполнять запрограммированные вами команды.

Как использовать
В header‘е страницы необходимо подключить библиотеку jste:

Перед закрывающим тегом нужно вставить код вида:

Здесь mytextarea – id элемента textarea;
user и host образуют «user@host:~$»
arr – массив, содержащий команды и описание действий, ассоциированных с этими командами. Вот пример массива arr:

var arr = [
[‘time’,
function(params)
{
var now = new Date();
Console.WriteLine(now.getTime());
}],
[‘useragent’,
function(params)
{
Console.WriteLine(navigator.userAgent);
}]
];

Каждая задаваемая функция должна принимать 1 параметр – это та часть введенной пользователем строки, которая идет после имени вызываемой команды и пробела.

Методы для работы с консолью из этих функций:

Console.WriteLine(str) – выводит текстовую строку в консоли. Для простого переноса каретки на следующую строку стоит передавать в качестве параметра пустую строку.
Console.Clear() – удаляет весь текст из консоли.

Возможности
Нет какого-то определенного набора команд. Все необходимые команды вы можете задать сами.

Неограниченная память команд. По истории команд можно перемещаться с помощью клавиш «вверх» и «вниз».

Небольшая «защита от дураков».

Известные проблемы
«Защита от дураков» несовершенна. То есть пользователь может, например, удалить часть содержимого textarea. Эта же самая защита в IE работает не совсем так, как в других браузерах. Но работает.

При превышении содержимым textarea размеров textarea не происходит автоматической прокрутки к концу содержимого.

Демо
Посмотреть рабочее демо можно здесь. Список всех доступных команд можно получить по команде help.

Скачать
Скачать jste-0.11-min.js.

Скачать набор команд из примера.

Почему следует скачать файлы, а не подключать их напрямую с этого сайта? А потому что я в любой момент без предупреждения могу их удалить.

Развития jste в планах нет. Разве что если будет необходимость, настроение или вдохновение.

Всё это писалось в новогодние праздники под воздействием большого количества мандаринов.

Читайте так же:
Оставить комментарий

Последние публикации