Thanks for taking the time to contribute! 🎉 captionkit aims to be a small, dependency-free, correct subtitle toolkit. Contributions are reviewed with that in mind.
git clone https://github.com/didrod205/captionkit.git
cd captionkit
npm install| Command | What it does |
|---|---|
npm test |
Run the test suite (Vitest). |
npm run test:watch |
Re-run tests on change. |
npm run typecheck |
Type-check without emitting. |
npm run build |
Build the library (dist/). |
npm run build:web |
Build the web app (docs/). |
npm run dev |
Run the web app locally (vite). |
- More formats (ASS/SSA, SBV, SAMI) — add a parser/serializer.
- More re-timing tools (split/merge files, cap line length, CPS warnings).
- Robustness for messy real-world files (with a test fixture).
- Every change needs tests. Subtitles are all about edge cases — keep all times in integer milliseconds and assert exact values.
npm run typecheckandnpm testmust pass.- Keep the public API small and the package zero-dependency.
- Preserve timecode precision; never lose the millisecond field.
Open an issue with a minimal subtitle snippet that reproduces it, the operation, and what you expected vs. got.
By contributing you agree your contributions are licensed under the project's MIT License.