Coder Social home page Coder Social logo

softmotions / wsh.js Goto Github PK

View Code? Open in Web Editor NEW

This project forked from mattiasrunge/wsh.js

0.0 2.0 0.0 2.04 MB

Toolkit for building a bash-like shell in the browser, including full readline support

License: Apache License 2.0

JavaScript 100.00%

wsh.js's Introduction

wsh.js

The shell is intended for implementing a simple terminal interface on a webpage.

Demo

A simple demo can be found here.

History and credit

This is a fork of josh.js to implement new features and bring up to es6/es7.

What to use wsh for and when to use it

WSH allows developers to build their own command line interface to any sites. It supports full CLI Readline in the browser like TAB completion, emacs-style line editing, killring and history with reverse search.

License

wsh.js is licensed under the Apache 2.0 License since that is what josh.js is licensed under.

Functionallity

It implements key trapping to bring GNU Readline like line editing to the browser.

Line Editing

In the below C-x refers to the Ctrl-x keystroke, while M-x refers to the Meta-x keystroke which is mapped to Alt, โŒ˜ and Left Windows.

Movement
C-b or Left Arrow
Move back one character
M-b or Right Arrow
Move back one word
C-f
Move forward one character
M-f
Move forward one word
C-a or Home
Move to the beginning of the line
C-e or End
Move to the end of the line

Edit/Kill
Backspace
Delete one character back
C-d or Delete
Delete character under cursor
C-k
Kill (i.e. put in kill ring) text to the end of the line
M-Backspace
Kill one word back
M-d
Kill word under cursor
C-y
Yank (i.e. pull from kill ring) the most recently killed text
M-y
Rotate to the next item in killring and yank it. Must be preceded by yank

History
C-r
Reverse search through history
C-p or Up Arrow
Previous entry in history
C-n or Down Arrow
Next entry in history
Page Up
Top of history
Page Down
Bottom of history

Misc
C-l
refresh line (clear screen in shell)
Tab
Invoke completion handler for text under cursor
Esc in reverse search
Cancel search
C-c
call onCancel handler
C-d on empty line
call onCancel handler

File System

By implementing the functions getNode and getChildNodes, this library adds path traversal, discovery and completion just like a bash shell.

History

Local storage is used to save command history that persists over page changes and reloads.

wsh.js's People

Contributors

sdether avatar mattiasrunge avatar hiepvo avatar irom77 avatar aaronmars avatar bricef avatar teone avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.