UNPKG

ass-compiler

Version:

Parses and compiles ASS subtitle format to easy-to-use data structure.

82 lines (67 loc) 2.37 kB
# ass-compiler [![GitHub Action](https://img.shields.io/github/actions/workflow/status/weizhenye/ass-compiler/ci.yml?logo=github)](https://github.com/weizhenye/ass-compiler/actions) [![Codecov](https://img.shields.io/codecov/c/gh/weizhenye/ass-compiler?logo=codecov)](https://codecov.io/gh/weizhenye/ass-compiler) [![License](https://img.shields.io/npm/l/ass-compiler)](https://github.com/weizhenye/ass-compiler/blob/master/LICENSE) [![NPM Version](https://img.shields.io/npm/v/ass-compiler?logo=npm)](https://www.npmjs.com/package/ass-compiler) [![jsDelivr](https://img.shields.io/jsdelivr/npm/hm/ass-compiler?logo=jsdelivr)](https://www.jsdelivr.com/package/npm/ass-compiler) [![File size](https://img.shields.io/bundlejs/size/ass-compiler)](https://bundlephobia.com/result?p=ass-compiler) Parses and compiles ASS subtitle format to easy-to-use data structure. [Online Viewer](https://ass.js.org/ass-compiler/) ## Installation ```bash npm install ass-compiler ``` ## Usage You can use `parse` or `compile` as your need. ```js import { parse, stringify, compile, decompile } from 'ass-compiler'; // ASS file content const text = ` [Script Info] ; ... `; // parse just turn ASS text into JSON const parsedASS = parse(text); const stringifiedText = stringify(parsedASS); // compile will get rid of invalid tags, merge duplicated tags, transform drawings, etc. const compiledASS = compile(text, options); const decompiledText = decompile(compiledASS); ``` ### options ```js { // Used for default values if it's not in `[Script Info]` section. defaultInfo: { PlayResX: 1280, PlayResY: 720, }, // A Style named `Default` will be automatic generated by options.defaultStyle // if it is not exists in `[V4+ Style]` section. defaultStyle: { Name: 'Default', Fontname: 'Arial', Fontsize: '20', PrimaryColour: '&H00FFFFFF&', SecondaryColour: '&H000000FF&', OutlineColour: '&H00000000&', BackColour: '&H00000000&', Bold: '0', Italic: '0', Underline: '0', StrikeOut: '0', ScaleX: '100', ScaleY: '100', Spacing: '0', Angle: '0', BorderStyle: '1', Outline: '2', Shadow: '2', Alignment: '2', MarginL: '10', MarginR: '10', MarginV: '10', Encoding: '1', }, } ``` For details of data structure, please use the [online viewer](https://ass.js.org/ass-compiler/).