JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 65
  • Score
    100M100P100Q44827F
  • License MIT

create a interative terminal into any div

Package Exports

  • zsh.js

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (zsh.js) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

zsh.js

A almost functional zsh terminal in any div

Instalation

You can install via npm

$ npm install zsh.js

or via bower

$ bower install zsh.js

Basic Usage

Include the script and style

<link href="path/to/zsh.min.css" rel="stylesheet" />
<script src="path/to/zsh.js"></script>

A global variable ZSH will be available, but require is also available - if you want to add a custom command or rack around

var ZSH = require('zsh.js');
var FileSystem = require('zsh.js/lib/fs');
var CommandManager = require('zsh.js/lib/command-manager');

And initialize it, passing an a div id to ZSH.create

ZSH.create('container');

Features

Right now you can use the follow shell functions:

  • alias
  • cat
  • cd
  • clear
  • echo
  • ls
  • pwd

And the functionalities

  • Autocomplete for commands
  • Syntax Highlight
  • Commands History

The other executable commands are just to show stuff about me... (since it was made for my personal website)

What I intend to implement next:

  • less
  • auto completion for paths
  • add support to pipe commands
  • add the binds for tmux, some functionality is built but not accessible
  • copy and paste
  • C-c to clear line
  • vim
  • mkdir
  • add help for methods

Contributing

Any .js file put inside src/js/lib/commands will automatically added on build, so feel free to add any program and drop it there. To actually bind the command you should

var CommandManager = require('../command-manager');
CommandManager.register('my-awesome-program', myAwesomeProram);

Further doubts you can check the source of any of those commands.

Contact

You can:

Any feedback or help is appreciated! :)

License

Terminal.js is available under MIT licence. See the LICENCE file for more info.