Releases: asciinema/asciinema-player
3.4.0
- introduced new parsers for typescript and ttyrec formats
- added markers
- added
controls
option for controling visibility of control bar - added scrubbing support to the progress bar, allowing for navigattion through the timeline of a recording. Thanks to @blake-mealey for this contribution #166!
- added offline state for live drivers
- fixed
idleTimeLimit
option behaviour with input ("i") events - fixed time display when pre-buffering in live drivers
- added ability for configuring live drivers'
minFrameTime
- right mouse button clicks on scrubber are now ignored
- prefixed most CSS classes to minimize clashes with host page CSS
- other CSS improvements like removing legacy prefixes, etc
- refactorings to driver initialization and poster rendering
3.3.0
- improved initialization with regards to obtaining font metrics (helps when embedding in Reveal.js slides)
- exposed input recorded with
asciinema rec --stdin
viainput
events - added
inputOffset
source option to shift fired input events in time - fixed
player.play()
to not act like toggle - disabled font ligatures
- added
minFrameTime
source option to change FPS cap (default: 1/60s) - smoother playback without jitter for websocket and eventsource drivers thanks to (now) default buffer of 100ms
- improved handling of current time for live drivers
- changed loading indicator to more familiar, good looking one
- refactored player core with regards to states player can be in
Example use of new input
event:
const player = AsciinemaPlayer.create('/demo.cast', document.getElementById('demo'));
player.addEventListener('input', { data } => {
console.log('input!', JSON.stringify(data));
})
inputOffset
source option can be used to shift fired input events in time, e.g. when you need them to fire earlier due to audio samples taking extra time to be emitted:
const player = AsciinemaPlayer.create({
url: '/demo.cast',
inputOffset: -0.25
}, document.getElementById('demo'));
player.addEventListener('input', { data } => {
// this is fired 250 ms earlier than it would be without `inputOffset`
playSound(data);
})
3.2.0
- moved control bar below last terminal line
- added frame stepping with dot key (when paused)
- added ability to implement custom format parser with
{ url: "...", parser: parserFn }
source - doc - disabled logging by default, can be enabled with
{ logger: console }
option - doc - upgraded VT module to latest version
- further improvements to Websocket and EventSource (SSE) drivers
- code refactoring, bundler related upgrades
3.1.2
3.1.1
3.1.0
- added support for faint graphic rendition
- added Nord color theme
- implemented ansi.sys variant of DECSC/DECRC control sequences: CSI s and CSI u
- fixed charset switching (shift out/in control sequence behaviour)
- fixed upper line clearing when scrolling down within scroll region
- improved soft reset (DECSTR control sequence) - charset states (G0, G1, GL) are now reset as well
3.0.1
3.0.0
Brand new player rewritten from scratch. Smaller, faster, better.
Upgrading from v2 to v3
v2.x used, now deprecated, document.registerElement(...)
API for registering
<asciinema-player>
custom HTML element. This way of initializing the player
has been removed in v3.x, replaced with standard JavaScript API.
Instead of this v2 code:
<!DOCTYPE html>
<html>
<head>
...
<link rel="stylesheet" type="text/css" href="/asciinema-player.css" />
...
</head>
<body>
...
<asciinema-player src="/demo.cast" speed="2" loop></asciinema-player>
...
<script src="/asciinema-player.js"></script>
</body>
</html>
Use this v3 code:
<!DOCTYPE html>
<html>
<head>
...
<link rel="stylesheet" type="text/css" href="/asciinema-player.css" />
...
</head>
<body>
...
<div id="demo"></div>
...
<script src="/asciinema-player.min.js"></script>
<script>
AsciinemaPlayer.create('/demo.cast', document.getElementById('demo'), {
speed: 2,
loop: true
});
</script>
</body>
</html>
There's also asciinema-player npm package, which can be
used instead of the standalone bundle. Check the quick start guide for details.
src
attribute becomes the first argument to AsciinemaPlayer.create()
. The
second argument specifies the container element to mount the player under. All
other option attributes are now passed in options objects as the third argument.
The following table shows how 2.x attributes map to new 3.x options:
2.x attribute | 3.x option | example | notes |
---|---|---|---|
cols |
cols |
{ cols: 80 } |
|
rows |
rows |
{ rows: 24 } |
|
autoplay |
autoPlay |
{ autoPlay: true } |
|
preload |
preload |
{ preload: true } |
|
loop |
loop |
{ loop: true } or { loop: 3 } |
|
start-at |
startAt |
{ startAt: 33 } |
|
speed |
speed |
{ speed: 2 } |
|
idle-time-limit |
idleTimeLimit |
{ idleTimeLimit: 2 } |
|
poster |
poster |
{ poster: "npt:2:34" } |
|
font-size |
terminalFontSize |
{ terminalFontSize: "20px", fit: false } |
requires fit: false |
theme |
theme |
{ theme: "dracula" } |
|
title |
- | - | removed |
author |
- | - | removed |
author-url |
- | - | removed |
author-img-url |
- | - | removed |
3.0.0-rc.4
v3.0.0-rc.4 Bump version
3.0.0-rc.3
v3.0.0-rc.3 Words