UNPKG

subforge

Version:

High-performance subtitle toolkit for parsing, converting, and authoring across 20+ formats.

40 lines (35 loc) 1.01 kB
import type { SubtitleDocument } from '../../../core/types.ts' import { formatTime } from './time.ts' /** * Serializes a subtitle document to SBV format. * * Converts subtitle events to SBV format with timestamp pairs in H:MM:SS.mmm,H:MM:SS.mmm notation. * Each subtitle is followed by a blank line separator. * * @param doc - The subtitle document to serialize * @returns SBV formatted string * * @example * ```ts * const sbv = toSBV(document); * console.log(sbv); * // 0:00:01.500,0:00:04.000 * // First subtitle * // * // 0:00:05.000,0:00:08.000 * // Second subtitle * ``` */ export function toSBV(doc: SubtitleDocument): string { let result = '' const events = doc.events const len = events.length for (let i = 0; i < len; i++) { const event = events[i]! // SBV doesn't support styling, so always use plain text const text = event.text result += formatTime(event.start) + ',' + formatTime(event.end) + '\n' result += text + '\n\n' } return result }