An open API service indexing awesome lists of open source software.

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.

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/).