### Install svg-term with npm Source: https://github.com/marionebl/svg-term/blob/master/README.md This command installs the svg-term package using npm, making it available for use in Node.js projects. It's the primary way to get started with the library. ```sh npm install svg-term ``` -------------------------------- ### Render asciicast to SVG with JavaScript Source: https://github.com/marionebl/svg-term/blob/master/README.md This JavaScript code snippet demonstrates how to use the svg-term library to render an asciicast file into an SVG string. It reads an asciicast JSON file, processes it using the `render` function, and outputs the resulting SVG. ```js const fs = require('fs'); const {promisify} = require('util'); const readFile = promisify(fs.readFile); const {render} = require('svg-term'); (async () => { const data = String(await readFile('./asciicast.json')); const svg = render(data); // => ... })() ``` -------------------------------- ### svg-term TypeScript API Definition Source: https://github.com/marionebl/svg-term/blob/master/README.md This TypeScript code defines the interface for the `render` function and its associated `Options` and `Theme` types within the svg-term library. It outlines the expected input formats, available customization options like themes, window framing, idle time, FPS, and time range rendering, as well as the structure for defining custom color themes. ```ts // `input` can be string/object of v1 or v2: // https://github.com/asciinema/asciinema/blob/develop/doc // or an already loaded cast: // https://github.com/marionebl/load-asciicast // // `options` won't take effect if `input` is an already loaded cast. render(input: string, options?: Options): string interface Options { /** * ANSI theme to use * - has to contain all keys if specified * - defaults to Atom One theme if omitted **/ theme?: Theme; /** Render with a framing window, defaults to false */ window?: boolean; /** Idle time limit in milliseconds */ idle?: number, /** Frames per second limit, see https://github.com/marionebl/svg-term/issues/13 */ fps?: number, /** Lower bound of timeline to render in milliseconds */ from?: number; /** Upper bound of timeline to render in milliseconds */ to?: number; /** Timestamp of single frame to render in milliseconds **/ at?: number; } interface Theme { /** ANSI Black */ 0: RGBColor; /** ANSI Red */ 1: RGBColor; /** ANSI Green */ 2: RGBColor; /** ANSI Yellow */ 3: RGBColor; /** ANSI Blue */ 4: RGBColor; /** ANSI Magenta */ 5: RGBColor; /** ANSI Cyan */ 6: RGBColor; /** ANSI White */ 7: RGBColor; /** ANSI Light Black */ 8: RGBColor; /** ANSI Light Red */ 9: RGBColor; /** ANSI Light Green */ 10: RGBColor; /** ANSI Light Yellow */ 11: RGBColor; /** ANSI Light Blue */ 12: RGBColor; /** ANSI Light Magenta */ 13: RGBColor; /** ANSI Light Cyan */ 14: RGBColor; /** ANSI Light White */ 15: RGBColor; /** Default background color */ background: RGBColor; /** Default color for bold text */ bold: RGBColor; /** Cursor color */ cursor: RGBColor; /** Default text color */ text: RGBColor /** Default font size */ fontSize: number; /** Default line height */ lineHeight: number; /** Default font family */ fontFamily: string; } type RGBColor = [number, number, number]; ``` === COMPLETE CONTENT === This response contains all available snippets from this library. No additional content exists. Do not make further requests.