forked from jcubic/jquery.terminal
-
Notifications
You must be signed in to change notification settings - Fork 0
/
README.in
178 lines (133 loc) · 5.23 KB
/
README.in
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
```
__ _____ ________ __
/ // _ /__ __ _____ ___ __ _/__ ___/__ ___ ______ __ __ __ ___ / /
__ / // // // // // _ // _// // / / // _ // _// // // \/ // _ \/ /
/ / // // // // // ___// / / // / / // ___// / / / / // // /\ // // / /__
\___//____ \\___//____//_/ _\_ / /_//____//_/ /_/ /_//_//_/ /_/ \__\_\___/
\/ /____/ version {{VER}}
```
http://terminal.jcubic.pl
### Summary
jQuery Terminal Emulator is a plugin for creating command line interpreters in
your applications. It can automatically call JSON-RPC service when a user types
commands or you can provide you own function in which you can parse user
commands. It's ideal if you want to provide additional functionality for power
users. It can also be used to debug your application.
### Features:
* You can create an interpreter for your JSON-RPC service with one line
of code (just use url as first argument).
* Support for authentication (you can provide functions when users enter
login and password or if you use JSON-RPC it can automatically call
login function on the server and pass token to all functions)
* Stack of interpreters - you can create commands that trigger additional
interpreters (eg. you can use couple of JSON-RPC service and run them
when user type command)
* Command Tree - you can use nested objects. Each command will invoke a
function, if the value is an object it will create a new interpreter and
use the function from that object as commands. You can use as many nested
object/commands as you like. If the value is a string it will create
JSON-RPC service.
* Support for command line history, it uses Local Storage if possible
* Support for tab completion
* Includes keyboard shortcut from bash like CTRL+A, CTRL+D, CTRL+E etc.
* Multiply terminals on one page (every terminal can have different
command, it's own authentication function and it's own command history)
* It catches all exceptions and displays error messages in the terminal
(you can see errors in your javascript and php code in terminal if they
are in the interpreter function)
### Installation
You can install jQuery Terminal from bower:
```
bower install jquery.terminal
```
or npm:
```
npm install --save jquery.terminal
```
Include js/jquery.terminal-{{VER}}.min.js and css/jquery.terminal-{{VER}}.css
You can also include js/jquery.mousewheel-min.js
```html
<script src="js/jquery.terminal-{{VER}}.min.js"></script>
<script src="js/jquery.mousewheel-min.js"></script>
<link href="css/jquery.terminal-{{VER}}.css" rel="stylesheet"/>
```
You can also grab the files from CDN:
```html
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.terminal/{{VER}}/js/jquery.terminal.min.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/jquery.terminal/{{VER}}/css/jquery.terminal.min.css" rel="stylesheet"/>
```
or
```html
<script src="https://cdn.jsdelivr.net/jquery.terminal/{{VER}}/jquery.terminal.min.js"></script>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/jquery.terminal/{{VER}}/jquery.terminal.min.css">
```
And you're good to go.
### Example of usage (javascript interpreter)
This is code that uses low level, that gives you full control of the commands,
just pass anything that the user types into a function.
```javascript
jQuery(function($, undefined) {
$('#term_demo').terminal(function(command, term) {
if (command !== '') {
var result = window.eval(command);
if (result != undefined) {
term.echo(String(result));
}
}
}, {
greetings: 'Javascript Interpreter',
name: 'js_demo',
height: 200,
width: 450,
prompt: 'js> '
});
});
```
Here is a higher level call, using an object as an interpreter, By default the terminal will
parse commands that a user types and replace number like strings with real numbers
regex with regexes and process escape characters in double quoted strings.
Command foo will execute json-rpc from foo.php file.
```javascript
jQuery(function($, undefined) {
$('#term_demo').terminal({
add: function(a, b) {
this.echo(a + b);
},
foo: 'foo.php',
bar: {
sub: function(a, b) {
this.echo(a - b);
}
}
}, {
height: 200,
width: 450,
prompt: 'demo> '
});
});
```
You can create JSON-RPC interpreter with authentication in just one line:
```javascript
$('#term_demo').terminal('service.php', {login: true});
```
More examples [here](http://terminal.jcubic.pl/examples.php). You can also check
[full documentation](http://terminal.jcubic.pl/api_reference.php).
### Test
If you want to run tests from browser you need to run
```
bower install --dev
```
and open SpecRunner.html file in the browser
To run tests from command line you need to run this commands:
```
npm install
make test
```
you can also run test covarage using
```
make cover
```
### Live Chat
[![Gitter chat](https://badges.gitter.im/jcubic/jquery.terminal.png)](https://gitter.im/jcubic/jquery.terminal)
Licensed under [MIT](http://opensource.org/licenses/MIT) license
Copyright (c) 2011-2016 [Jakub Jankiewicz](http://jcubic.pl)