Skip to content

Releases: asciinema/asciinema-player

3.4.0

14 May 20:05
Compare
Choose a tag to compare
  • 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

14 May 20:07
Compare
Choose a tag to compare
  • improved initialization with regards to obtaining font metrics (helps when embedding in Reveal.js slides)
  • exposed input recorded with asciinema rec --stdin via input 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

13 Mar 22:19
Compare
Choose a tag to compare
  • 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

02 Mar 09:19
Compare
Choose a tag to compare
  • fixed error thrown by ResizeObserver when resizing browser window
  • improvements to Websocket and EventSource (SSE) drivers (these are not yet officially supported, will document them in README once they're ready for prime time)

3.1.1

27 Feb 13:20
Compare
Choose a tag to compare
  • upgraded VT module to latest version
  • improved buffer implementation for live sources (websocket, SSE)

3.1.0

10 Feb 14:57
Compare
Choose a tag to compare
  • 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

12 Jun 20:00
Compare
Choose a tag to compare
v3.0.1

Bump version

3.0.0

01 May 20:29
Compare
Choose a tag to compare

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

08 May 18:42
Compare
Choose a tag to compare
3.0.0-rc.4 Pre-release
Pre-release
v3.0.0-rc.4

Bump version

3.0.0-rc.3

02 Apr 20:26
Compare
Choose a tag to compare
3.0.0-rc.3 Pre-release
Pre-release
v3.0.0-rc.3

Words