Skip to content

Commit eedbd52

Browse files
committed
docs: document how to add a terminal export
1 parent 9fff2c2 commit eedbd52

1 file changed

Lines changed: 16 additions & 0 deletions

File tree

README.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,22 @@ Project structure:
7676
* `src/presentation` - Vue components, Pinia stores, fonts, and styles
7777
* `public` - static assets copied to the final build, including images and SEO files
7878

79+
Adding a new terminal export
80+
---------
81+
82+
To add support for a new terminal:
83+
84+
1. Add a serializer in `src/infrastructure/serialization/scheme-exports/`, following the existing `serialize...` functions there.
85+
2. Reuse helpers from `src/infrastructure/serialization/scheme-exports/shared.js` when the target format maps the standard 16-color palette, foreground, or background.
86+
3. Register the new serializer in `src/infrastructure/serialization/scheme-exporters.js`:
87+
add it to `EXPORT_BUILDERS`, then add a matching entry to `SCHEME_DOWNLOADS` with `id`, `buttonId`, `text`, `linkLabel`, `downloadName`, and `mimeType`.
88+
4. Update the user-facing list in the `For users` section above with short installation instructions for the new terminal.
89+
5. Extend `tests/infrastructure/serialization/scheme-exporters.test.js`:
90+
keep the generic “all formats build a blob” coverage, and add at least one format-specific assertion that checks the actual output structure or color mapping.
91+
6. Verify locally with `npm test`, `npm run build`, and, if you touched test scope or reporting, `npm run test:coverage`.
92+
93+
The download dialog reads `SCHEME_DOWNLOADS` directly, so after registration the new export should appear automatically unless you want extra UI changes.
94+
7995
Coverage
8096
---------
8197

0 commit comments

Comments
 (0)