ReplSim
A utility for animating text in HTML documents to simulate REPL interactions.
Usage
ReplSim is defined using UMD, so it may be included in AMD environments, CommonJS environments, or as a property of the global scope. The exported value is a constructor function that is intended to be invoked with a DOM node containing REPL-like text and an optional object of settings to modify the behavior.
var el = document;var options = // A RegExp describing which lines should be considered input. Text following // the prompt will be animated as if entered via a keyboard. Non-matching // lines will be printed to the screen immediately as if output by an // automated process. promptRe: /^\$ / // The amount of time (in milliseconds) to "blink" the cursor. cursorPeriod: 700 // The amount of time (in milliseconds) to pause at the end of a line of // input before simulating "submiting" and moving to the next line. submitDelay: 800 // The mount of time (in milliseconds) to pause after printing an input // prompt before animating the following text input readDelay: 1000 // Function to retrieve the height of a current element; this will be used to // ensure the container does not change in size over the course of the // animation. { return elclientHeight; } // Function that returns the amount of time (in milliseconds) to delay // between each keystroke. This is called for every key stroke to support // dynamic values, such as those produced by `Math.random`. { return 50 + Math * 100; }; var rs = el options;rs;
Instances support the following methods:
play()
- begin the animation; returns a Promise which is fulfilled when the animation is completedestroy()
- cancel animation; useful when the containing markup must be removed from the DOM; the animation cannot be re-started after this method is invoked
To repeat animation indefinitely, chain off of the Promise returned by play
,
e.g.
var rs = el options; { rs;};
License
Copyright 2016 Mike Pennisi under the GNU General Public License v3.0