Make docs templates the real markdown files
This commit is contained in:
parent
689255edf1
commit
f9da63be3b
90
app/views/docs/embedding.html.md
Normal file
90
app/views/docs/embedding.html.md
Normal file
@ -0,0 +1,90 @@
|
|||||||
|
<% content_for(:title, 'Embedding') %>
|
||||||
|
|
||||||
|
# Embedding the player
|
||||||
|
|
||||||
|
The asciicasts can easily be embedded on any HTML page. If you want
|
||||||
|
to put the recording in your blog post, in your project's documentation or
|
||||||
|
in your conference talk slides you can do it by copy-pasting the embed
|
||||||
|
script.
|
||||||
|
|
||||||
|
You can find the embed script on the asciicast's page. It looks like this:
|
||||||
|
|
||||||
|
<script type="text/javascript" src="https://asciinema.org/a/14.js" id="asciicast-14" async></script>
|
||||||
|
|
||||||
|
The player shows up right at the place where the script is pasted. Let's look
|
||||||
|
at the following markup:
|
||||||
|
|
||||||
|
<p>This is some text.</p>
|
||||||
|
<script type="text/javascript" src="https://asciinema.org/a/14.js" id="asciicast-14" async></script>
|
||||||
|
<p>This is some other text.</p>
|
||||||
|
|
||||||
|
The player will show up as a `div` element with a class "asciicast" between
|
||||||
|
the two paragraphs.
|
||||||
|
|
||||||
|
## Customizing the player
|
||||||
|
|
||||||
|
The embed script supports several customization options. An option can be
|
||||||
|
applied by adding it as a
|
||||||
|
<code>data-<em>option-name</em>="<em>option-value</em>"</code> attribute to
|
||||||
|
the script tag.
|
||||||
|
|
||||||
|
### speed
|
||||||
|
|
||||||
|
The `speed` option alters the playback speed. The default speed is 1 which
|
||||||
|
means it plays at the unaltered, original speed.
|
||||||
|
|
||||||
|
For example, to make the playback 2 times faster than original use the
|
||||||
|
following script:
|
||||||
|
|
||||||
|
<script type="text/javascript" src="https://asciinema.org/a/14.js" id="asciicast-14" async data-speed="2"></script>
|
||||||
|
|
||||||
|
### size
|
||||||
|
|
||||||
|
The `size` option alters the size of the terminal font. There are 3 available
|
||||||
|
sizes:
|
||||||
|
|
||||||
|
* small (default)
|
||||||
|
* medium
|
||||||
|
* big
|
||||||
|
|
||||||
|
For example, to make the font big use the following script:
|
||||||
|
|
||||||
|
<script type="text/javascript" src="https://asciinema.org/a/14.js" id="asciicast-14" async data-size="big"></script>
|
||||||
|
|
||||||
|
### theme
|
||||||
|
|
||||||
|
The `theme` option allows overriding a theme used for the terminal.
|
||||||
|
It defaults to a theme set by the asciicast author (or to "tango" if not set
|
||||||
|
by the author). There are 3 available themes:
|
||||||
|
|
||||||
|
* tango
|
||||||
|
* solarized-dark
|
||||||
|
* solarized-light
|
||||||
|
|
||||||
|
For example, to use Solarized Dark theme use the following script:
|
||||||
|
|
||||||
|
<script type="text/javascript" src="https://asciinema.org/a/14.js" id="asciicast-14" async data-theme="solarized-dark"></script>
|
||||||
|
|
||||||
|
### autoplay
|
||||||
|
|
||||||
|
The `autoplay` option allows for automatic playback start when the player
|
||||||
|
loads. Accepted values:
|
||||||
|
|
||||||
|
* 0 / false - do not start playback automatically (default)
|
||||||
|
* 1 / true - start playback automatically
|
||||||
|
|
||||||
|
For example, to make the asciicast auto play use the following script:
|
||||||
|
|
||||||
|
<script type="text/javascript" src="https://asciinema.org/a/14.js" id="asciicast-14" async data-autoplay="true"></script>
|
||||||
|
|
||||||
|
### loop
|
||||||
|
|
||||||
|
The `loop` option allows for looping the playback. This option is usually
|
||||||
|
combined with `autoplay` option. Accepted values:
|
||||||
|
|
||||||
|
* 0 / false - disable looping (default)
|
||||||
|
* 1 / true - enable looping
|
||||||
|
|
||||||
|
For example, to make the asciicast play infinitely use the following script:
|
||||||
|
|
||||||
|
<script type="text/javascript" src="https://asciinema.org/a/14.js" id="asciicast-14" async data-loop="true"></script>
|
@ -1,92 +0,0 @@
|
|||||||
- content_for(:title, 'Embedding')
|
|
||||||
|
|
||||||
markdown:
|
|
||||||
|
|
||||||
# Embedding the player
|
|
||||||
|
|
||||||
The asciicasts can easily be embedded on any HTML page. If you want
|
|
||||||
to put the recording in your blog post, in your project's documentation or
|
|
||||||
in your conference talk slides you can do it by copy-pasting the embed
|
|
||||||
script.
|
|
||||||
|
|
||||||
You can find the embed script on the asciicast's page. It looks like this:
|
|
||||||
|
|
||||||
<script type="text/javascript" src="https://asciinema.org/a/14.js" id="asciicast-14" async></script>
|
|
||||||
|
|
||||||
The player shows up right at the place where the script is pasted. Let's look
|
|
||||||
at the following markup:
|
|
||||||
|
|
||||||
<p>This is some text.</p>
|
|
||||||
<script type="text/javascript" src="https://asciinema.org/a/14.js" id="asciicast-14" async></script>
|
|
||||||
<p>This is some other text.</p>
|
|
||||||
|
|
||||||
The player will show up as a `div` element with a class "asciicast" between
|
|
||||||
the two paragraphs.
|
|
||||||
|
|
||||||
## Customizing the player
|
|
||||||
|
|
||||||
The embed script supports several customization options. An option can be
|
|
||||||
applied by adding it as a
|
|
||||||
<code>data-<em>option-name</em>="<em>option-value</em>"</code> attribute to
|
|
||||||
the script tag.
|
|
||||||
|
|
||||||
### speed
|
|
||||||
|
|
||||||
The `speed` option alters the playback speed. The default speed is 1 which
|
|
||||||
means it plays at the unaltered, original speed.
|
|
||||||
|
|
||||||
For example, to make the playback 2 times faster than original use the
|
|
||||||
following script:
|
|
||||||
|
|
||||||
<script type="text/javascript" src="https://asciinema.org/a/14.js" id="asciicast-14" async data-speed="2"></script>
|
|
||||||
|
|
||||||
### size
|
|
||||||
|
|
||||||
The `size` option alters the size of the terminal font. There are 3 available
|
|
||||||
sizes:
|
|
||||||
|
|
||||||
* small (default)
|
|
||||||
* medium
|
|
||||||
* big
|
|
||||||
|
|
||||||
For example, to make the font big use the following script:
|
|
||||||
|
|
||||||
<script type="text/javascript" src="https://asciinema.org/a/14.js" id="asciicast-14" async data-size="big"></script>
|
|
||||||
|
|
||||||
### theme
|
|
||||||
|
|
||||||
The `theme` option allows overriding a theme used for the terminal.
|
|
||||||
It defaults to a theme set by the asciicast author (or to "tango" if not set
|
|
||||||
by the author). There are 3 available themes:
|
|
||||||
|
|
||||||
* tango
|
|
||||||
* solarized-dark
|
|
||||||
* solarized-light
|
|
||||||
|
|
||||||
For example, to use Solarized Dark theme use the following script:
|
|
||||||
|
|
||||||
<script type="text/javascript" src="https://asciinema.org/a/14.js" id="asciicast-14" async data-theme="solarized-dark"></script>
|
|
||||||
|
|
||||||
### autoplay
|
|
||||||
|
|
||||||
The `autoplay` option allows for automatic playback start when the player
|
|
||||||
loads. Accepted values:
|
|
||||||
|
|
||||||
* 0 / false - do not start playback automatically (default)
|
|
||||||
* 1 / true - start playback automatically
|
|
||||||
|
|
||||||
For example, to make the asciicast auto play use the following script:
|
|
||||||
|
|
||||||
<script type="text/javascript" src="https://asciinema.org/a/14.js" id="asciicast-14" async data-autoplay="true"></script>
|
|
||||||
|
|
||||||
### loop
|
|
||||||
|
|
||||||
The `loop` option allows for looping the playback. This option is usually
|
|
||||||
combined with `autoplay` option. Accepted values:
|
|
||||||
|
|
||||||
* 0 / false - disable looping (default)
|
|
||||||
* 1 / true - enable looping
|
|
||||||
|
|
||||||
For example, to make the asciicast play infinitely use the following script:
|
|
||||||
|
|
||||||
<script type="text/javascript" src="https://asciinema.org/a/14.js" id="asciicast-14" async data-loop="true"></script>
|
|
39
app/views/docs/faq.html.md
Normal file
39
app/views/docs/faq.html.md
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
<% content_for(:title, 'FAQ') %>
|
||||||
|
|
||||||
|
# Frequently Asked Questions
|
||||||
|
|
||||||
|
## Can I embed the asciicast player on my blog?
|
||||||
|
|
||||||
|
Yes, see [embedding docs](<%= docs_path(:embedding) %>).
|
||||||
|
|
||||||
|
## How can I delete my asciicast?
|
||||||
|
|
||||||
|
In order to delete your asciicast you need to associate your local API token
|
||||||
|
(which was assigned to the recorded asciicast) with the asciinema.org
|
||||||
|
account. Just run `asciinema auth` in your terminal and open the printed URL
|
||||||
|
in your browser. Once you sign in you'll see a "Delete" link on your
|
||||||
|
asciicast's page.
|
||||||
|
|
||||||
|
## Can I have my own asciinema site instance?
|
||||||
|
|
||||||
|
Yes, you can set up your own asciinema site. The source code of the app that
|
||||||
|
runs asciinema.org is available
|
||||||
|
[here](https://github.com/asciinema/asciinema.org).
|
||||||
|
|
||||||
|
When you have the site up and running you can easily tell asciinema client to
|
||||||
|
use it by adding following setting to _~/.asciinema/config_ file:
|
||||||
|
|
||||||
|
[api]
|
||||||
|
url = http://asciinema.example.com
|
||||||
|
|
||||||
|
Alternatively, you can set `ASCIINEMA_API_URL` env variable:
|
||||||
|
|
||||||
|
ASCIINEMA_API_URL=http://asciinema.example.com asciinema rec
|
||||||
|
|
||||||
|
## Can I edit/post-process the recorded asciicast?
|
||||||
|
|
||||||
|
Yes, if you know how to deal with [ansi escape
|
||||||
|
sequences](https://en.wikipedia.org/wiki/ANSI_escape_code). Asciicasts are
|
||||||
|
self-contained JSON files which you can edit before uploading. Look at
|
||||||
|
`stdout` attribute in [asciicast format doc](https://github.com/asciinema/asciinema/blob/master/doc/asciicast-v1.md)
|
||||||
|
for inspiration.
|
@ -1,41 +0,0 @@
|
|||||||
- content_for(:title, 'FAQ')
|
|
||||||
|
|
||||||
markdown:
|
|
||||||
|
|
||||||
# Frequently Asked Questions
|
|
||||||
|
|
||||||
## Can I embed the asciicast player on my blog?
|
|
||||||
|
|
||||||
Yes, see [embedding docs](#{docs_path(:embedding)}).
|
|
||||||
|
|
||||||
## How can I delete my asciicast?
|
|
||||||
|
|
||||||
In order to delete your asciicast you need to associate your local API token
|
|
||||||
(which was assigned to the recorded asciicast) with the asciinema.org
|
|
||||||
account. Just run `asciinema auth` in your terminal and open the printed URL
|
|
||||||
in your browser. Once you sign in you'll see a "Delete" link on your
|
|
||||||
asciicast's page.
|
|
||||||
|
|
||||||
## Can I have my own asciinema site instance?
|
|
||||||
|
|
||||||
Yes, you can set up your own asciinema site. The source code of the app that
|
|
||||||
runs asciinema.org is available
|
|
||||||
[here](https://github.com/asciinema/asciinema.org).
|
|
||||||
|
|
||||||
When you have the site up and running you can easily tell asciinema client to
|
|
||||||
use it by adding following setting to _~/.asciinema/config_ file:
|
|
||||||
|
|
||||||
[api]
|
|
||||||
url = http://asciinema.example.com
|
|
||||||
|
|
||||||
Alternatively, you can set `ASCIINEMA_API_URL` env variable:
|
|
||||||
|
|
||||||
ASCIINEMA_API_URL=http://asciinema.example.com asciinema rec
|
|
||||||
|
|
||||||
## Can I edit/post-process the recorded asciicast?
|
|
||||||
|
|
||||||
Yes, if you know how to deal with [ansi escape
|
|
||||||
sequences](https://en.wikipedia.org/wiki/ANSI_escape_code). Asciicasts are
|
|
||||||
self-contained JSON files which you can edit before uploading. Look at
|
|
||||||
`stdout` attribute in [asciicast format doc](https://github.com/asciinema/asciinema/blob/master/doc/asciicast-v1.md)
|
|
||||||
for inspiration.
|
|
33
app/views/docs/getting-started.html.md
Normal file
33
app/views/docs/getting-started.html.md
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
<% content_for(:title, 'Getting started') %>
|
||||||
|
|
||||||
|
# Getting started
|
||||||
|
|
||||||
|
## 1. Install the recorder
|
||||||
|
|
||||||
|
<%= render partial: 'docs/script_install_and_other' %>
|
||||||
|
|
||||||
|
## 2. Record
|
||||||
|
|
||||||
|
Go to your terminal and run the following command:
|
||||||
|
|
||||||
|
asciinema rec
|
||||||
|
|
||||||
|
New shell will be spawned and everything you do in it will get recorded.
|
||||||
|
When you're ready to finish simply exit the shell either by typing `exit` or
|
||||||
|
hitting <kbd>Ctrl-D</kdb>.
|
||||||
|
|
||||||
|
See [usage instructions](<%= docs_path(:usage) %>) to learn about all commands and options.
|
||||||
|
|
||||||
|
## 3. Create your profile (optional)
|
||||||
|
|
||||||
|
If you want your recordings to be assigned to your asciinema profile run the
|
||||||
|
following command:
|
||||||
|
|
||||||
|
asciinema auth
|
||||||
|
|
||||||
|
If you skip this step now, you can run the above command later and all
|
||||||
|
previously recorded asciicasts will automatically get assigned to your
|
||||||
|
profile.
|
||||||
|
|
||||||
|
NOTE: To be able to edit/delete your recordings you have to assign them to
|
||||||
|
your profile.
|
@ -1,34 +0,0 @@
|
|||||||
- content_for(:title, 'Getting started')
|
|
||||||
|
|
||||||
h1 Getting started
|
|
||||||
h2 1. Install the recorder
|
|
||||||
|
|
||||||
= render partial: 'docs/script_install_and_other'
|
|
||||||
|
|
||||||
markdown:
|
|
||||||
|
|
||||||
## 2. Record
|
|
||||||
|
|
||||||
Go to your terminal and run the following command:
|
|
||||||
|
|
||||||
asciinema rec
|
|
||||||
|
|
||||||
New shell will be spawned and everything you do in it will get recorded.
|
|
||||||
When you're ready to finish simply exit the shell either by typing `exit` or
|
|
||||||
hitting <kbd>Ctrl-D</kdb>.
|
|
||||||
|
|
||||||
See [usage instructions](#{docs_path(:usage)}) to learn about all commands and options.
|
|
||||||
|
|
||||||
## 3. Create your profile (optional)
|
|
||||||
|
|
||||||
If you want your recordings to be assigned to your asciinema profile run the
|
|
||||||
following command:
|
|
||||||
|
|
||||||
asciinema auth
|
|
||||||
|
|
||||||
If you skip this step now, you can run the above command later and all
|
|
||||||
previously recorded asciicasts will automatically get assigned to your
|
|
||||||
profile.
|
|
||||||
|
|
||||||
NOTE: To be able to edit/delete your recordings you have to assign them to
|
|
||||||
your profile.
|
|
81
app/views/docs/how-it-works.html.md
Normal file
81
app/views/docs/how-it-works.html.md
Normal file
@ -0,0 +1,81 @@
|
|||||||
|
<% content_for(:title, 'How it works') %>
|
||||||
|
|
||||||
|
# How it works
|
||||||
|
|
||||||
|
asciinema project is built of several complementary pieces:
|
||||||
|
|
||||||
|
* command-line based terminal session recorder, `asciinema`,
|
||||||
|
* website with an API at asciinema.org,
|
||||||
|
* javascript player
|
||||||
|
|
||||||
|
When you run `asciinema rec` in your terminal the recording starts, capturing
|
||||||
|
all output that is being printed to your terminal while you're issuing the
|
||||||
|
shell commands. When the recording finishes (by hitting <kbd>Ctrl-D</kbd> or
|
||||||
|
typing `exit`) then the captured output is uploaded to asciinema.org website
|
||||||
|
and prepared for playback on the web.
|
||||||
|
|
||||||
|
Here's a brief overview of how these parts work.
|
||||||
|
|
||||||
|
## Recording
|
||||||
|
|
||||||
|
You probably know `ssh`, `screen` or `script` command. Actually, asciinema
|
||||||
|
was inspired by `script` (and `scriptreplay`) commands. What you may not know
|
||||||
|
is they all use the same UNIX system capability: [a
|
||||||
|
pseudo-terminal](http://en.wikipedia.org/wiki/Pseudo_terminal).
|
||||||
|
|
||||||
|
> A pseudo terminal is a pair of pseudo-devices, one of which, the slave,
|
||||||
|
> emulates a real text terminal device, the other of which, the master,
|
||||||
|
> provides the means by which a terminal emulator process controls the slave.
|
||||||
|
|
||||||
|
Here's how terminal emulator interfaces with a user and a shell:
|
||||||
|
|
||||||
|
> The role of the terminal emulator process is to interact with the user; to
|
||||||
|
> feed text input to the master pseudo-device for use by the shell (which is
|
||||||
|
> connected to the slave pseudo-device) and to read text output from the
|
||||||
|
> master pseudo-device and show it to the user.
|
||||||
|
|
||||||
|
In other words, pseudo-terminals give programs the ability to act as a
|
||||||
|
middlemen between the user, the display and the shell. It allows for
|
||||||
|
transparent capture of user input (keyboard) and terminal output (display).
|
||||||
|
`screen` command utilizes it for capturing special keyboard shortcuts like
|
||||||
|
<kbd>Ctrl-A</kbd> and altering the output in order to display window
|
||||||
|
numbers/names and other messages.
|
||||||
|
|
||||||
|
asciinema recorder does its job by utilizing pseudo-terminal for capturing
|
||||||
|
all the output that goes to a terminal and saving it in memory (together with
|
||||||
|
timing information). The captured output includes all the text and invisible
|
||||||
|
escape/control sequences in a raw, unaltered form. When the recording session
|
||||||
|
finishes it uploads the output to asciinema.org. That's all about "recording"
|
||||||
|
part.
|
||||||
|
|
||||||
|
For the implementation details check out [recorder source
|
||||||
|
code](https://github.com/asciinema/asciinema).
|
||||||
|
|
||||||
|
## Playback
|
||||||
|
|
||||||
|
When asciinema.org accepts the upload of the captured output it saves it in a
|
||||||
|
file. Now, as the output is a raw, unaltered stream of text and control
|
||||||
|
sequences it can't be just played by incrementally printing text in proper
|
||||||
|
intervals. It requires interpretation of [ANSI escape code
|
||||||
|
sequences](http://en.wikipedia.org/wiki/ANSI_escape_code) in order to
|
||||||
|
correctly display color changes, cursor movement and printing text at proper
|
||||||
|
places on the screen.
|
||||||
|
|
||||||
|
Escape sequence interpretation was initially handled by asciinema's own VT100
|
||||||
|
terminal emulation layer written in Javascript but was later replaced with
|
||||||
|
[libtsm](http://www.freedesktop.org/wiki/Software/kmscon/libtsm/) based
|
||||||
|
interpreter. libtsm, "terminal-emulator state machine", is a wonderful, rock
|
||||||
|
solid library created by David Herrmann that is meant to be used by terminal
|
||||||
|
emulator authors and others in need of an escape sequence interpreter.
|
||||||
|
|
||||||
|
asciinema.org pre-processes the captured stream with libtsm based converter and
|
||||||
|
saves the result in a JSON file that contains simple representation of screen
|
||||||
|
changes for each animation frame (for each line that was changed on the
|
||||||
|
screen there is a string to be printed and color attributes for it). The
|
||||||
|
player loads the JSON data and simply renders each change at a right time.
|
||||||
|
|
||||||
|
The end result is a smooth animation with all text attributes (bold,
|
||||||
|
underline, inverse, ...) and 256 colors perfectly rendered.
|
||||||
|
|
||||||
|
For the implementation details check out [asciinema.org source
|
||||||
|
code](https://github.com/asciinema/asciinema.org).
|
@ -1,83 +0,0 @@
|
|||||||
- content_for(:title, 'How it works')
|
|
||||||
|
|
||||||
markdown:
|
|
||||||
|
|
||||||
# How it works
|
|
||||||
|
|
||||||
asciinema project is built of several complementary pieces:
|
|
||||||
|
|
||||||
* command-line based terminal session recorder, `asciinema`,
|
|
||||||
* website with an API at asciinema.org,
|
|
||||||
* javascript player
|
|
||||||
|
|
||||||
When you run `asciinema rec` in your terminal the recording starts, capturing
|
|
||||||
all output that is being printed to your terminal while you're issuing the
|
|
||||||
shell commands. When the recording finishes (by hitting <kbd>Ctrl-D</kbd> or
|
|
||||||
typing `exit`) then the captured output is uploaded to asciinema.org website
|
|
||||||
and prepared for playback on the web.
|
|
||||||
|
|
||||||
Here's a brief overview of how these parts work.
|
|
||||||
|
|
||||||
## Recording
|
|
||||||
|
|
||||||
You probably know `ssh`, `screen` or `script` command. Actually, asciinema
|
|
||||||
was inspired by `script` (and `scriptreplay`) commands. What you may not know
|
|
||||||
is they all use the same UNIX system capability: [a
|
|
||||||
pseudo-terminal](http://en.wikipedia.org/wiki/Pseudo_terminal).
|
|
||||||
|
|
||||||
> A pseudo terminal is a pair of pseudo-devices, one of which, the slave,
|
|
||||||
> emulates a real text terminal device, the other of which, the master,
|
|
||||||
> provides the means by which a terminal emulator process controls the slave.
|
|
||||||
|
|
||||||
Here's how terminal emulator interfaces with a user and a shell:
|
|
||||||
|
|
||||||
> The role of the terminal emulator process is to interact with the user; to
|
|
||||||
> feed text input to the master pseudo-device for use by the shell (which is
|
|
||||||
> connected to the slave pseudo-device) and to read text output from the
|
|
||||||
> master pseudo-device and show it to the user.
|
|
||||||
|
|
||||||
In other words, pseudo-terminals give programs the ability to act as a
|
|
||||||
middlemen between the user, the display and the shell. It allows for
|
|
||||||
transparent capture of user input (keyboard) and terminal output (display).
|
|
||||||
`screen` command utilizes it for capturing special keyboard shortcuts like
|
|
||||||
<kbd>Ctrl-A</kbd> and altering the output in order to display window
|
|
||||||
numbers/names and other messages.
|
|
||||||
|
|
||||||
asciinema recorder does its job by utilizing pseudo-terminal for capturing
|
|
||||||
all the output that goes to a terminal and saving it in memory (together with
|
|
||||||
timing information). The captured output includes all the text and invisible
|
|
||||||
escape/control sequences in a raw, unaltered form. When the recording session
|
|
||||||
finishes it uploads the output to asciinema.org. That's all about "recording"
|
|
||||||
part.
|
|
||||||
|
|
||||||
For the implementation details check out [recorder source
|
|
||||||
code](https://github.com/asciinema/asciinema).
|
|
||||||
|
|
||||||
## Playback
|
|
||||||
|
|
||||||
When asciinema.org accepts the upload of the captured output it saves it in a
|
|
||||||
file. Now, as the output is a raw, unaltered stream of text and control
|
|
||||||
sequences it can't be just played by incrementally printing text in proper
|
|
||||||
intervals. It requires interpretation of [ANSI escape code
|
|
||||||
sequences](http://en.wikipedia.org/wiki/ANSI_escape_code) in order to
|
|
||||||
correctly display color changes, cursor movement and printing text at proper
|
|
||||||
places on the screen.
|
|
||||||
|
|
||||||
Escape sequence interpretation was initially handled by asciinema's own VT100
|
|
||||||
terminal emulation layer written in Javascript but was later replaced with
|
|
||||||
[libtsm](http://www.freedesktop.org/wiki/Software/kmscon/libtsm/) based
|
|
||||||
interpreter. libtsm, "terminal-emulator state machine", is a wonderful, rock
|
|
||||||
solid library created by David Herrmann that is meant to be used by terminal
|
|
||||||
emulator authors and others in need of an escape sequence interpreter.
|
|
||||||
|
|
||||||
asciinema.org pre-processes the captured stream with libtsm based converter and
|
|
||||||
saves the result in a JSON file that contains simple representation of screen
|
|
||||||
changes for each animation frame (for each line that was changed on the
|
|
||||||
screen there is a string to be printed and color attributes for it). The
|
|
||||||
player loads the JSON data and simply renders each change at a right time.
|
|
||||||
|
|
||||||
The end result is a smooth animation with all text attributes (bold,
|
|
||||||
underline, inverse, ...) and 256 colors perfectly rendered.
|
|
||||||
|
|
||||||
For the implementation details check out [asciinema.org source
|
|
||||||
code](https://github.com/asciinema/asciinema.org).
|
|
66
app/views/docs/installation.html.md
Normal file
66
app/views/docs/installation.html.md
Normal file
@ -0,0 +1,66 @@
|
|||||||
|
<% content_for(:title, 'Installation') %>
|
||||||
|
|
||||||
|
# Installation
|
||||||
|
|
||||||
|
## The easy way
|
||||||
|
|
||||||
|
<%= render partial: 'docs/script_install' %>
|
||||||
|
|
||||||
|
## Manual download
|
||||||
|
|
||||||
|
You can
|
||||||
|
[download the latest binary](https://github.com/asciinema/asciinema/releases)
|
||||||
|
for your platform and place it in your `$PATH`.
|
||||||
|
|
||||||
|
## Using package manager
|
||||||
|
|
||||||
|
You can also use your favorite package manager to install asciinema recorder.
|
||||||
|
Note that it takes time for native packages to be updated so you may not get
|
||||||
|
the latest released version.
|
||||||
|
|
||||||
|
### Homebrew
|
||||||
|
|
||||||
|
On OS X asciinema is available in Homebrew:
|
||||||
|
|
||||||
|
brew update
|
||||||
|
brew install asciinema
|
||||||
|
|
||||||
|
### Arch Linux
|
||||||
|
|
||||||
|
Arch Linux users can install the
|
||||||
|
[AUR package](https://aur.archlinux.org/packages/asciinema/):
|
||||||
|
|
||||||
|
sudo yaourt -S asciinema
|
||||||
|
|
||||||
|
### Fedora
|
||||||
|
|
||||||
|
asciinema rpm package is included in the main Fedora 19 and 20 repository:
|
||||||
|
|
||||||
|
sudo yum install asciinema
|
||||||
|
|
||||||
|
### Gentoo Linux
|
||||||
|
|
||||||
|
Gentoo Linux users can install the
|
||||||
|
[portage package](http://packages.gentoo.org/package/app-misc/asciinema):
|
||||||
|
|
||||||
|
sudo emerge asciinema
|
||||||
|
|
||||||
|
### Ubuntu
|
||||||
|
|
||||||
|
To install Ubuntu package add
|
||||||
|
[zanchey ppa](https://launchpad.net/~zanchey/+archive/asciinema) to your
|
||||||
|
software sources list:
|
||||||
|
|
||||||
|
sudo apt-add-repository ppa:zanchey/asciinema
|
||||||
|
sudo apt-get update
|
||||||
|
sudo apt-get install asciinema
|
||||||
|
|
||||||
|
### No package for your operating system?
|
||||||
|
|
||||||
|
If you use other operating system and you know how to build a native package
|
||||||
|
for it then don't hesitate, build one and let us know.
|
||||||
|
|
||||||
|
## From source
|
||||||
|
|
||||||
|
For instructions on building asciinema from source please refer to the
|
||||||
|
[README file](https://github.com/asciinema/asciinema/blob/master/README.md).
|
@ -1,67 +0,0 @@
|
|||||||
- content_for(:title, 'Installation')
|
|
||||||
|
|
||||||
h1 Installation
|
|
||||||
|
|
||||||
h2 The easy way
|
|
||||||
= render partial: 'docs/script_install'
|
|
||||||
|
|
||||||
markdown:
|
|
||||||
|
|
||||||
## Manual download
|
|
||||||
|
|
||||||
You can
|
|
||||||
[download the latest binary](https://github.com/asciinema/asciinema/releases)
|
|
||||||
for your platform and place it in your `$PATH`.
|
|
||||||
|
|
||||||
## Using package manager
|
|
||||||
|
|
||||||
You can also use your favorite package manager to install asciinema recorder.
|
|
||||||
Note that it takes time for native packages to be updated so you may not get
|
|
||||||
the latest released version.
|
|
||||||
|
|
||||||
### Homebrew
|
|
||||||
|
|
||||||
On OS X asciinema is available in Homebrew:
|
|
||||||
|
|
||||||
brew update
|
|
||||||
brew install asciinema
|
|
||||||
|
|
||||||
### Arch Linux
|
|
||||||
|
|
||||||
Arch Linux users can install the
|
|
||||||
[AUR package](https://aur.archlinux.org/packages/asciinema/):
|
|
||||||
|
|
||||||
sudo yaourt -S asciinema
|
|
||||||
|
|
||||||
### Fedora
|
|
||||||
|
|
||||||
asciinema rpm package is included in the main Fedora 19 and 20 repository:
|
|
||||||
|
|
||||||
sudo yum install asciinema
|
|
||||||
|
|
||||||
### Gentoo Linux
|
|
||||||
|
|
||||||
Gentoo Linux users can install the
|
|
||||||
[portage package](http://packages.gentoo.org/package/app-misc/asciinema):
|
|
||||||
|
|
||||||
sudo emerge asciinema
|
|
||||||
|
|
||||||
### Ubuntu
|
|
||||||
|
|
||||||
To install Ubuntu package add
|
|
||||||
[zanchey ppa](https://launchpad.net/~zanchey/+archive/asciinema) to your
|
|
||||||
software sources list:
|
|
||||||
|
|
||||||
sudo apt-add-repository ppa:zanchey/asciinema
|
|
||||||
sudo apt-get update
|
|
||||||
sudo apt-get install asciinema
|
|
||||||
|
|
||||||
### No package for your operating system?
|
|
||||||
|
|
||||||
If you use other operating system and you know how to build a native package
|
|
||||||
for it then don't hesitate, build one and let us know.
|
|
||||||
|
|
||||||
## From source
|
|
||||||
|
|
||||||
For instructions on building asciinema from source please refer to the
|
|
||||||
[README file](https://github.com/asciinema/asciinema/blob/master/README.md).
|
|
84
app/views/docs/usage.html.md
Normal file
84
app/views/docs/usage.html.md
Normal file
@ -0,0 +1,84 @@
|
|||||||
|
<% content_for(:title, 'Usage') %>
|
||||||
|
|
||||||
|
# Usage
|
||||||
|
|
||||||
|
asciinema is composed of multiple commands, similar to `git`, `rails` or
|
||||||
|
`brew`.
|
||||||
|
|
||||||
|
When you run `asciinema` with no arguments help message is displayed showing
|
||||||
|
all available commands with their options.
|
||||||
|
|
||||||
|
## `rec [filename]`
|
||||||
|
|
||||||
|
__Record terminal session.__
|
||||||
|
|
||||||
|
This is the single most important command in asciinema, since it is how you
|
||||||
|
utilize this tool's main job.
|
||||||
|
|
||||||
|
By running `asciinema rec [filename]` you start a new recording session. The
|
||||||
|
command (process) that is recorded can be specified with `-c` option (see
|
||||||
|
below), and defaults to `$SHELL` which is what you want in most cases.
|
||||||
|
|
||||||
|
Recording finishes when you exit the shell (hit <kbd>Ctrl+D</kbd> or type
|
||||||
|
`exit`). If the recorded process is not a shell then recording finishes when
|
||||||
|
the process exits.
|
||||||
|
|
||||||
|
If the `filename` argument is given then the resulting recording (called
|
||||||
|
[asciicast](https://github.com/asciinema/asciinema/blob/master/doc/asciicast-v1.md))
|
||||||
|
is saved to a local file. It can later be replayed with `asciinema play
|
||||||
|
<filename>` and/or uploaded to asciinema.org with `asciinema upload
|
||||||
|
<filename>`. If the `filename` argument is omitted then (after asking for
|
||||||
|
confirmation) the resulting asciicast is uploaded to asciinema.org for further
|
||||||
|
playback in a web browser.
|
||||||
|
|
||||||
|
`ASCIINEMA_REC=1` is added to recorded process environment variables. This
|
||||||
|
can be used by your shell's config file (`.bashrc`, `.zshrc`) to alter the
|
||||||
|
prompt or play a sound when shell is being recorded.
|
||||||
|
|
||||||
|
Available options:
|
||||||
|
|
||||||
|
* `-c, --command=<command>` - Specify command to record, defaults to $SHELL
|
||||||
|
* `-t, --title=<title>` - Specify title of the asciicast
|
||||||
|
* `-w, --max-wait=<sec>` - Reduce recorded terminal inactivity to max <sec> seconds
|
||||||
|
* `-y, --yes` - Answer yes to all prompts (e.g. upload confirmation)
|
||||||
|
|
||||||
|
## `play <filename>`
|
||||||
|
|
||||||
|
__Replay recorded asciicast in a terminal.__
|
||||||
|
|
||||||
|
This command replays given asciicast (as recorded by `rec` command) directly in
|
||||||
|
your terminal.
|
||||||
|
|
||||||
|
NOTE: it is recommended to run it in a terminal of dimensions not smaller than
|
||||||
|
the one used for recording as there's no "transcoding" of control sequences for
|
||||||
|
new terminal size.
|
||||||
|
|
||||||
|
## `upload <filename>`
|
||||||
|
|
||||||
|
__Upload recorded asciicast to asciinema.org site.__
|
||||||
|
|
||||||
|
This command uploads given asciicast (as recorded by `rec` command) to
|
||||||
|
asciinema.org for further playback in a web browser.
|
||||||
|
|
||||||
|
`asciinema rec demo.json` + `asciinema play demo.json` + `asciinema upload
|
||||||
|
demo.json` is a nice combo for when you want to review an asciicast before
|
||||||
|
publishing it on asciinema.org.
|
||||||
|
|
||||||
|
## `auth`
|
||||||
|
|
||||||
|
__Assign local API token to asciinema.org account.__
|
||||||
|
|
||||||
|
On every machine you install asciinema recorder, you get a new, unique API
|
||||||
|
token. This command connects this local token with your asciinema.org account,
|
||||||
|
and links all asciicasts recorded on this machine with the account.
|
||||||
|
|
||||||
|
This command displays the URL you should open in your web browser. If you never
|
||||||
|
logged in to asciinema.org then your account will be created when opening the
|
||||||
|
URL.
|
||||||
|
|
||||||
|
NOTE: it is __necessary__ to do this if you want to __edit or delete__ your
|
||||||
|
recordings on asciinema.org.
|
||||||
|
|
||||||
|
You can synchronize your `~/.asciinema/config` file (which keeps the API
|
||||||
|
token) across the machines but that's not necessary. You can assign new
|
||||||
|
tokens to your account from as many machines as you want.
|
@ -1,85 +0,0 @@
|
|||||||
- content_for(:title, 'Usage')
|
|
||||||
|
|
||||||
markdown:
|
|
||||||
|
|
||||||
# Usage
|
|
||||||
|
|
||||||
asciinema is composed of multiple commands, similar to `git`, `rails` or
|
|
||||||
`brew`.
|
|
||||||
|
|
||||||
When you run `asciinema` with no arguments help message is displayed showing
|
|
||||||
all available commands with their options.
|
|
||||||
|
|
||||||
## `rec [filename]`
|
|
||||||
|
|
||||||
__Record terminal session.__
|
|
||||||
|
|
||||||
This is the single most important command in asciinema, since it is how you
|
|
||||||
utilize this tool's main job.
|
|
||||||
|
|
||||||
By running `asciinema rec [filename]` you start a new recording session. The
|
|
||||||
command (process) that is recorded can be specified with `-c` option (see
|
|
||||||
below), and defaults to `$SHELL` which is what you want in most cases.
|
|
||||||
|
|
||||||
Recording finishes when you exit the shell (hit <kbd>Ctrl+D</kbd> or type
|
|
||||||
`exit`). If the recorded process is not a shell then recording finishes when
|
|
||||||
the process exits.
|
|
||||||
|
|
||||||
If the `filename` argument is given then the resulting recording (called
|
|
||||||
[asciicast](doc/asciicast-v1.md)) is saved to a local file. It can later be
|
|
||||||
replayed with `asciinema play <filename>` and/or uploaded to asciinema.org with
|
|
||||||
`asciinema upload <filename>`. If the `filename` argument is omitted then
|
|
||||||
(after asking for confirmation) the resulting asciicast is uploaded to
|
|
||||||
asciinema.org for further playback in a web browser.
|
|
||||||
|
|
||||||
`ASCIINEMA_REC=1` is added to recorded process environment variables. This
|
|
||||||
can be used by your shell's config file (`.bashrc`, `.zshrc`) to alter the
|
|
||||||
prompt or play a sound when shell is being recorded.
|
|
||||||
|
|
||||||
Available options:
|
|
||||||
|
|
||||||
* `-c, --command=<command>` - Specify command to record, defaults to $SHELL
|
|
||||||
* `-t, --title=<title>` - Specify title of the asciicast
|
|
||||||
* `-w, --max-wait=<sec>` - Reduce recorded terminal inactivity to max <sec> seconds
|
|
||||||
* `-y, --yes` - Answer yes to all prompts (e.g. upload confirmation)
|
|
||||||
|
|
||||||
## `play <filename>`
|
|
||||||
|
|
||||||
__Replay recorded asciicast in a terminal.__
|
|
||||||
|
|
||||||
This command replays given asciicast (as recorded by `rec` command) directly in
|
|
||||||
your terminal.
|
|
||||||
|
|
||||||
NOTE: it is recommended to run it in a terminal of dimensions not smaller than
|
|
||||||
the one used for recording as there's no "transcoding" of control sequences for
|
|
||||||
new terminal size.
|
|
||||||
|
|
||||||
## `upload <filename>`
|
|
||||||
|
|
||||||
__Upload recorded asciicast to asciinema.org site.__
|
|
||||||
|
|
||||||
This command uploads given asciicast (as recorded by `rec` command) to
|
|
||||||
asciinema.org for further playback in a web browser.
|
|
||||||
|
|
||||||
`asciinema rec demo.json` + `asciinema play demo.json` + `asciinema upload
|
|
||||||
demo.json` is a nice combo for when you want to review an asciicast before
|
|
||||||
publishing it on asciinema.org.
|
|
||||||
|
|
||||||
## `auth`
|
|
||||||
|
|
||||||
__Assign local API token to asciinema.org account.__
|
|
||||||
|
|
||||||
On every machine you install asciinema recorder, you get a new, unique API
|
|
||||||
token. This command connects this local token with your asciinema.org account,
|
|
||||||
and links all asciicasts recorded on this machine with the account.
|
|
||||||
|
|
||||||
This command displays the URL you should open in your web browser. If you never
|
|
||||||
logged in to asciinema.org then your account will be created when opening the
|
|
||||||
URL.
|
|
||||||
|
|
||||||
NOTE: it is __necessary__ to do this if you want to __edit or delete__ your
|
|
||||||
recordings on asciinema.org.
|
|
||||||
|
|
||||||
You can synchronize your `~/.asciinema/config` file (which keeps the API
|
|
||||||
token) across the machines but that's not necessary. You can assign new
|
|
||||||
tokens to your account from as many machines as you want.
|
|
@ -9,3 +9,16 @@ MKD_RENDERER = Redcarpet::Markdown.new(
|
|||||||
:no_intra_emphasis => true,
|
:no_intra_emphasis => true,
|
||||||
:autolink => true
|
:autolink => true
|
||||||
)
|
)
|
||||||
|
|
||||||
|
module MarkdownHandler
|
||||||
|
def self.erb
|
||||||
|
@erb ||= ActionView::Template.registered_template_handler(:erb)
|
||||||
|
end
|
||||||
|
|
||||||
|
def self.call(template)
|
||||||
|
compiled_source = erb.call(template)
|
||||||
|
"MKD_RENDERER.render(begin;#{compiled_source};end)"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
ActionView::Template.register_template_handler :md, MarkdownHandler
|
||||||
|
Loading…
Reference in New Issue
Block a user