https://github.com/rileyjshaw/tinyterm
:pager: The tiniest in-browser terminal you've ever seen.
https://github.com/rileyjshaw/tinyterm
Last synced: about 1 month ago
JSON representation
:pager: The tiniest in-browser terminal you've ever seen.
- Host: GitHub
- URL: https://github.com/rileyjshaw/tinyterm
- Owner: rileyjshaw
- License: mit
- Created: 2014-12-16T10:07:39.000Z (almost 11 years ago)
- Default Branch: master
- Last Pushed: 2017-03-26T04:47:14.000Z (over 8 years ago)
- Last Synced: 2025-08-04T07:25:12.534Z (2 months ago)
- Language: JavaScript
- Homepage: http://hackers.cool/~rileyjshaw
- Size: 83 KB
- Stars: 14
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
Tinyterm
=====The tiniest in-browser terminal you've ever seen. Check it out [here](http://rileyjshaw.com/tinyterm).
## Installation
tinyterm can be installed using [npm](https://www.npmjs.org/package/tinyterm), [bower](http://bower.io/), or included from [jsdelivr](http://www.jsdelivr.com/projects/tinyterm):
```bash
npm install tinyterm
```
```bash
bower install tinyterm
```
```html```
The library uses a [universal module definition](https://github.com/umdjs/umd), so it _should_ work with whatever system you're using.
## Usage
## Creating a TinyTerm
Initialize a TinyTerm with:```javascript
var term = new TinyTerm(container);
```If a DOM element is passed in as `container`, the TinyTerm element is appended to it. Otherwise, TinyTerm appends to `document.body`.
### Adding commands
Add commands with the `register` method:```javascript
term.register('echo', {
// required
fn: function (arg1, arg2, arg3, /* ... */) {
print(Array.prototype.join.call(arguments, ' '));
},
// required
desc: 'Write arguments to the standard output.',
// optional, enables tab autocomplete
arguments: ['foo', 'bar'],
// optional alternate names for the command
aliases: ['print', 'log']
});
```The methods `autocomplete`, `done`, `flash`, `help`, `print`, `process`, `realign`, `run`, `startLoading`, and `stopLoading` are also exposed... you probably won't need to use them.
## Contributing
Pull-requests to the `/app` directory are welcome. Please create an [issue](https://github.com/rileyjshaw/tinyterm/issues) if you plan on adding features, as it might be better suited as a plugin.Please squash changes down to a single commit before making a pull-request.
### Building the library
If you don't have [gulp](http://gulpjs.com/), you'll have to install it:
```bash
npm install -g gulp
```After running
```bash
npm install
```
in the main directory, running
```bash
gulp
```
will watch the `/app` directory and build any changes to `/dist`.### Style
Pull requests _must_ adhere to the following code style guidelines, influenced heavily by [idiomatic.js](https://github.com/rwaldron/idiomatic.js/):- Put a space before the parens following `if ()`, `else if ()`, `for ()`, `while ()`, `try ()`, and `function ()` statements. Do not add padding spaces _within_ these parens.
- Put a space between closing braces `)` and opening curly braces `{`.
- Add padding spaces to curly braces that self-close on a single line: `var littleObject = { name: 'tiny' };`. Empty object literals do not require a space: `{}`.
- Function definitions go at the top of their scope, followed immediately by `var`s.
- If multiple lines are required for variable declarations, each new line should have its own `var` statement.
- Indent using spaces.
- Indentation width of 2.
- No trailing whitespace.
- Line-length limit of 80 characters.
- If statements have to be broken across lines, end lines with an operator:
```javascript
// example
var reallyLongVariableName = [1, 2, 3];
reallyLongVariableName = reallyLongVariableName.length > 4 ?
reallyLongVariableName.slice(-4) :
reallyLongVariableName;
```
- Gulp will automatically lint everything through jshint. Don't make it complain.## License
Licensed under [MIT](https://github.com/rileyjshaw/tinyterm/blob/master/LICENSE). Created by [rileyjshaw](http://rileyjshaw.com/).