Skip to content

Commit 211db9d

Browse files
authored
Merge pull request #5749 from Tyriar/readme
Build out getting started section
2 parents ea50fbd + ec6ad20 commit 211db9d

File tree

1 file changed

+31
-10
lines changed

1 file changed

+31
-10
lines changed

README.md

Lines changed: 31 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,36 @@ First, you need to install the module. We ship exclusively through [npm](https:/
2424
npm install --save @xterm/xterm
2525
```
2626

27-
To start using xterm.js on your browser, add the `xterm.js` and `xterm.css` to the head of your HTML page. Then create a `<div id="terminal"></div>` onto which xterm can attach itself. Finally, instantiate the `Terminal` object and then call the `open` function with the DOM object of the `div`.
27+
The recommended way to load xterm.js with the ES module syntax, either using TypeScript or a modern JS tooling. Note that both CommonJS and ES module files are shipped with the npm package.
28+
29+
```javascript
30+
import { Terminal } from '@xterm/xterm';
31+
```
32+
33+
Then instantiate a `Terminal` object, open it on an element and write to it:
34+
35+
```javascript
36+
const term = new Terminal();
37+
term.open(document.getElementById('terminal'));
38+
term.write('Hello from \x1B[1;3;31mxterm.js\x1B[0m $ ')
39+
```
40+
41+
Most use cases will hook up input and output to a pseudoterminal API such as [node-pty](https://www.npmjs.com/package/node-pty) which will drive the terminal.
42+
43+
```javascript
44+
pty.onData(data => term.write(data));
45+
term.onData(data => pty.write(data));
46+
```
47+
48+
Then make sure to also include the `css/xterm.css` file, for example in HTML:
49+
50+
```html
51+
<link rel="stylesheet" href="node_modules/@xterm/xterm/css/xterm.css" />
52+
```
53+
54+
### Standalone example
55+
56+
Here is a complete standalone example in a HTML file:
2857

2958
```html
3059
<!doctype html>
@@ -36,22 +65,14 @@ To start using xterm.js on your browser, add the `xterm.js` and `xterm.css` to t
3665
<body>
3766
<div id="terminal"></div>
3867
<script>
39-
var term = new Terminal();
68+
const term = new Terminal();
4069
term.open(document.getElementById('terminal'));
4170
term.write('Hello from \x1B[1;3;31mxterm.js\x1B[0m $ ')
4271
</script>
4372
</body>
4473
</html>
4574
```
4675

47-
### Importing
48-
49-
The recommended way to load xterm.js is via the ES6 module syntax:
50-
51-
```javascript
52-
import { Terminal } from '@xterm/xterm';
53-
```
54-
5576
### Addons
5677

5778
Addons are separate modules that extend the `Terminal` by building on the [xterm.js API](https://github.com/xtermjs/xterm.js/blob/master/typings/xterm.d.ts). To use an addon, you first need to install it in your project:

0 commit comments

Comments
 (0)