textmode.export.js 1.6.0 → 1.7.1-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +88 -159
- package/dist/textmode.export.esm.js +1 -6090
- package/dist/textmode.export.umd.js +1 -68
- package/dist/types/augmentations/index.d.ts +0 -1
- package/dist/types/augmentations/textmode.d.ts +0 -1
- package/dist/types/exporters/base/CharacterResolver.d.ts +0 -1
- package/dist/types/exporters/base/DataExtractor.d.ts +0 -1
- package/dist/types/exporters/base/FileHandler.d.ts +0 -1
- package/dist/types/exporters/base/FramePreparation.d.ts +10 -0
- package/dist/types/exporters/base/LayerTarget.d.ts +4 -3
- package/dist/types/exporters/base/index.d.ts +1 -1
- package/dist/types/exporters/gif/GIFEncoderWorker.d.ts +1 -0
- package/dist/types/exporters/gif/GIFExporter.d.ts +7 -26
- package/dist/types/exporters/gif/GIFRecorder.d.ts +2 -3
- package/dist/types/exporters/gif/GIFWorkerClient.d.ts +15 -0
- package/dist/types/exporters/gif/index.d.ts +0 -1
- package/dist/types/exporters/gif/types.d.ts +19 -1
- package/dist/types/exporters/image/ImageExporter.d.ts +2 -1
- package/dist/types/exporters/image/index.d.ts +0 -1
- package/dist/types/exporters/image/types.d.ts +2 -1
- package/dist/types/exporters/json/JSONDataExtractor.d.ts +0 -1
- package/dist/types/exporters/json/JSONExporter.d.ts +0 -1
- package/dist/types/exporters/json/index.d.ts +0 -1
- package/dist/types/exporters/json/types.d.ts +8 -1
- package/dist/types/exporters/svg/SVGContentGenerator.d.ts +0 -1
- package/dist/types/exporters/svg/SVGDataExtractor.d.ts +0 -1
- package/dist/types/exporters/svg/SVGExporter.d.ts +0 -1
- package/dist/types/exporters/svg/SVGPathGenerator.d.ts +0 -1
- package/dist/types/exporters/svg/index.d.ts +0 -1
- package/dist/types/exporters/svg/types.d.ts +2 -1
- package/dist/types/exporters/txt/TXTExporter.d.ts +0 -1
- package/dist/types/exporters/txt/index.d.ts +0 -1
- package/dist/types/exporters/txt/types.d.ts +2 -1
- package/dist/types/exporters/video/VideoExporter.d.ts +4 -4
- package/dist/types/exporters/video/VideoFrameDriver.d.ts +3 -3
- package/dist/types/exporters/video/VideoRecorder.d.ts +0 -1
- package/dist/types/exporters/video/errors.d.ts +0 -1
- package/dist/types/exporters/video/index.d.ts +0 -1
- package/dist/types/exporters/video/types.d.ts +34 -6
- package/dist/types/exporters/video/withAbortableTimeout.d.ts +0 -1
- package/dist/types/index.d.ts +15 -31
- package/dist/types/overlay/blades/Blade.d.ts +0 -1
- package/dist/types/overlay/blades/GIFBlade.d.ts +0 -1
- package/dist/types/overlay/blades/ImageBlade.d.ts +0 -1
- package/dist/types/overlay/blades/JSONBlade.d.ts +0 -1
- package/dist/types/overlay/blades/RecordingBlade.d.ts +0 -1
- package/dist/types/overlay/blades/SVGBlade.d.ts +0 -1
- package/dist/types/overlay/blades/TextBlade.d.ts +0 -1
- package/dist/types/overlay/blades/VideoBlade.d.ts +0 -1
- package/dist/types/overlay/blades/index.d.ts +0 -1
- package/dist/types/overlay/components/actions/Button.d.ts +0 -1
- package/dist/types/overlay/components/base/Component.d.ts +0 -1
- package/dist/types/overlay/components/base/Container.d.ts +0 -1
- package/dist/types/overlay/components/base/Field.d.ts +0 -1
- package/dist/types/overlay/components/display/Header.d.ts +0 -1
- package/dist/types/overlay/components/display/StatusDisplay.d.ts +0 -1
- package/dist/types/overlay/components/inputs/CheckboxInput.d.ts +0 -1
- package/dist/types/overlay/components/inputs/LayerTargetSelect.d.ts +0 -1
- package/dist/types/overlay/components/inputs/NumberInput.d.ts +0 -1
- package/dist/types/overlay/components/inputs/SelectInput.d.ts +0 -1
- package/dist/types/overlay/components/inputs/TextInput.d.ts +0 -1
- package/dist/types/overlay/config/DefaultsStore.d.ts +0 -1
- package/dist/types/overlay/config/ExportDefaults.d.ts +0 -1
- package/dist/types/overlay/core/EventBus.d.ts +0 -1
- package/dist/types/overlay/core/OverlayController.d.ts +0 -1
- package/dist/types/overlay/core/StateManager.d.ts +0 -1
- package/dist/types/overlay/formatRegistry.d.ts +0 -1
- package/dist/types/overlay/index.d.ts +0 -1
- package/dist/types/overlay/models/FormatDefinition.d.ts +0 -1
- package/dist/types/overlay/models/OverlayEvents.d.ts +0 -1
- package/dist/types/overlay/models/OverlayState.d.ts +0 -1
- package/dist/types/overlay/services/ClipboardService.d.ts +0 -1
- package/dist/types/overlay/services/ExportService.d.ts +0 -1
- package/dist/types/overlay/services/OverlayPositionStorage.d.ts +0 -1
- package/dist/types/overlay/services/PositionService.d.ts +0 -1
- package/dist/types/overlay/types.d.ts +0 -1
- package/dist/types/overlay/utils/classes.d.ts +0 -1
- package/dist/types/types.d.ts +109 -23
- package/dist/types/utils/pixels.d.ts +0 -1
- package/package.json +47 -61
- package/dist/types/augmentations/index.d.ts.map +0 -1
- package/dist/types/augmentations/textmode.d.ts.map +0 -1
- package/dist/types/augmentations/textmode.test.d.ts +0 -2
- package/dist/types/augmentations/textmode.test.d.ts.map +0 -1
- package/dist/types/exporters/base/CharacterResolver.d.ts.map +0 -1
- package/dist/types/exporters/base/DataExtractor.d.ts.map +0 -1
- package/dist/types/exporters/base/FileHandler.d.ts.map +0 -1
- package/dist/types/exporters/base/LayerTarget.d.ts.map +0 -1
- package/dist/types/exporters/base/index.d.ts.map +0 -1
- package/dist/types/exporters/gif/GIFExporter.d.ts.map +0 -1
- package/dist/types/exporters/gif/GIFRecorder.d.ts.map +0 -1
- package/dist/types/exporters/gif/index.d.ts.map +0 -1
- package/dist/types/exporters/gif/types.d.ts.map +0 -1
- package/dist/types/exporters/image/ImageExporter.d.ts.map +0 -1
- package/dist/types/exporters/image/index.d.ts.map +0 -1
- package/dist/types/exporters/image/types.d.ts.map +0 -1
- package/dist/types/exporters/json/JSONDataExtractor.d.ts.map +0 -1
- package/dist/types/exporters/json/JSONExporter.d.ts.map +0 -1
- package/dist/types/exporters/json/JSONExporter.test.d.ts +0 -2
- package/dist/types/exporters/json/JSONExporter.test.d.ts.map +0 -1
- package/dist/types/exporters/json/index.d.ts.map +0 -1
- package/dist/types/exporters/json/types.d.ts.map +0 -1
- package/dist/types/exporters/svg/SVGContentGenerator.d.ts.map +0 -1
- package/dist/types/exporters/svg/SVGDataExtractor.d.ts.map +0 -1
- package/dist/types/exporters/svg/SVGExporter.d.ts.map +0 -1
- package/dist/types/exporters/svg/SVGExporter.test.d.ts +0 -2
- package/dist/types/exporters/svg/SVGExporter.test.d.ts.map +0 -1
- package/dist/types/exporters/svg/SVGPathGenerator.d.ts.map +0 -1
- package/dist/types/exporters/svg/index.d.ts.map +0 -1
- package/dist/types/exporters/svg/types.d.ts.map +0 -1
- package/dist/types/exporters/txt/TXTExporter.d.ts.map +0 -1
- package/dist/types/exporters/txt/TXTExporter.test.d.ts +0 -2
- package/dist/types/exporters/txt/TXTExporter.test.d.ts.map +0 -1
- package/dist/types/exporters/txt/index.d.ts.map +0 -1
- package/dist/types/exporters/txt/types.d.ts.map +0 -1
- package/dist/types/exporters/video/VideoExporter.d.ts.map +0 -1
- package/dist/types/exporters/video/VideoExporter.test.d.ts +0 -2
- package/dist/types/exporters/video/VideoExporter.test.d.ts.map +0 -1
- package/dist/types/exporters/video/VideoFrameDriver.d.ts.map +0 -1
- package/dist/types/exporters/video/VideoFrameDriver.test.d.ts +0 -2
- package/dist/types/exporters/video/VideoFrameDriver.test.d.ts.map +0 -1
- package/dist/types/exporters/video/VideoRecorder.d.ts.map +0 -1
- package/dist/types/exporters/video/VideoRecorder.test.d.ts +0 -2
- package/dist/types/exporters/video/VideoRecorder.test.d.ts.map +0 -1
- package/dist/types/exporters/video/errors.d.ts.map +0 -1
- package/dist/types/exporters/video/index.d.ts.map +0 -1
- package/dist/types/exporters/video/types.d.ts.map +0 -1
- package/dist/types/exporters/video/withAbortableTimeout.d.ts.map +0 -1
- package/dist/types/index.d.ts.map +0 -1
- package/dist/types/overlay/blades/Blade.d.ts.map +0 -1
- package/dist/types/overlay/blades/GIFBlade.d.ts.map +0 -1
- package/dist/types/overlay/blades/ImageBlade.d.ts.map +0 -1
- package/dist/types/overlay/blades/JSONBlade.d.ts.map +0 -1
- package/dist/types/overlay/blades/RecordingBlade.d.ts.map +0 -1
- package/dist/types/overlay/blades/SVGBlade.d.ts.map +0 -1
- package/dist/types/overlay/blades/TextBlade.d.ts.map +0 -1
- package/dist/types/overlay/blades/VideoBlade.d.ts.map +0 -1
- package/dist/types/overlay/blades/index.d.ts.map +0 -1
- package/dist/types/overlay/components/actions/Button.d.ts.map +0 -1
- package/dist/types/overlay/components/base/Component.d.ts.map +0 -1
- package/dist/types/overlay/components/base/Container.d.ts.map +0 -1
- package/dist/types/overlay/components/base/Field.d.ts.map +0 -1
- package/dist/types/overlay/components/display/Header.d.ts.map +0 -1
- package/dist/types/overlay/components/display/StatusDisplay.d.ts.map +0 -1
- package/dist/types/overlay/components/inputs/CheckboxInput.d.ts.map +0 -1
- package/dist/types/overlay/components/inputs/LayerTargetSelect.d.ts.map +0 -1
- package/dist/types/overlay/components/inputs/NumberInput.d.ts.map +0 -1
- package/dist/types/overlay/components/inputs/RangeInput.d.ts +0 -35
- package/dist/types/overlay/components/inputs/RangeInput.d.ts.map +0 -1
- package/dist/types/overlay/components/inputs/SelectInput.d.ts.map +0 -1
- package/dist/types/overlay/components/inputs/TextInput.d.ts.map +0 -1
- package/dist/types/overlay/config/DefaultsStore.d.ts.map +0 -1
- package/dist/types/overlay/config/DefaultsStore.test.d.ts +0 -2
- package/dist/types/overlay/config/DefaultsStore.test.d.ts.map +0 -1
- package/dist/types/overlay/config/ExportDefaults.d.ts.map +0 -1
- package/dist/types/overlay/config/ExportDefaults.test.d.ts +0 -2
- package/dist/types/overlay/config/ExportDefaults.test.d.ts.map +0 -1
- package/dist/types/overlay/core/EventBus.d.ts.map +0 -1
- package/dist/types/overlay/core/OverlayController.d.ts.map +0 -1
- package/dist/types/overlay/core/OverlayController.test.d.ts +0 -2
- package/dist/types/overlay/core/OverlayController.test.d.ts.map +0 -1
- package/dist/types/overlay/core/StateManager.d.ts.map +0 -1
- package/dist/types/overlay/formatRegistry.d.ts.map +0 -1
- package/dist/types/overlay/formatRegistry.test.d.ts +0 -2
- package/dist/types/overlay/formatRegistry.test.d.ts.map +0 -1
- package/dist/types/overlay/index.d.ts.map +0 -1
- package/dist/types/overlay/models/FormatDefinition.d.ts.map +0 -1
- package/dist/types/overlay/models/OverlayEvents.d.ts.map +0 -1
- package/dist/types/overlay/models/OverlayState.d.ts.map +0 -1
- package/dist/types/overlay/services/ClipboardService.d.ts.map +0 -1
- package/dist/types/overlay/services/ExportService.d.ts.map +0 -1
- package/dist/types/overlay/services/OverlayPositionStorage.d.ts.map +0 -1
- package/dist/types/overlay/services/PositionService.d.ts.map +0 -1
- package/dist/types/overlay/services/PositionService.test.d.ts +0 -2
- package/dist/types/overlay/services/PositionService.test.d.ts.map +0 -1
- package/dist/types/overlay/types.d.ts.map +0 -1
- package/dist/types/overlay/utils/classes.d.ts.map +0 -1
- package/dist/types/types.d.ts.map +0 -1
- package/dist/types/utils/pixels.d.ts.map +0 -1
- package/dist/types/version.d.ts +0 -2
- package/dist/types/version.d.ts.map +0 -1
package/README.md
CHANGED
|
@@ -1,177 +1,106 @@
|
|
|
1
|
-
# textmode.export.js
|
|
1
|
+
# textmode.export.js
|
|
2
2
|
|
|
3
3
|
<div align="center">
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
5
|
+
<img alt="textmode.export.js — save textmode in every format" src=".github/assets/readme-og.png" />
|
|
6
|
+
|
|
7
|
+
| [](https://www.typescriptlang.org/) [](https://vitejs.dev/) | [](https://code.textmode.art/api/textmode.export.js/) [](https://code.textmode.art/docs/exporting.html) [](https://discord.gg/sjrw8QXNks) | [](https://ko-fi.com/V7V8JG2FY) [](https://github.com/sponsors/humanbydefinition) |
|
|
8
|
+
|:---|:---|:---|
|
|
7
9
|
|
|
8
10
|
</div>
|
|
9
11
|
|
|
10
|
-
`textmode.export.js` is an add-on
|
|
12
|
+
`textmode.export.js` is an export add-on for [`textmode.js`](https://github.com/humanbydefinition/textmode.js) that turns a sketch into shareable files and data. Through one consistent browser-based API, it produces plain text and JSON, raster images, animated GIFs, WebM and MP4 video, and scalable vector graphics.
|
|
11
13
|
|
|
12
|
-
|
|
13
|
-
- JSON document data (`.json`)
|
|
14
|
-
- Image files (`.png`, `.jpg`, `.webp`)
|
|
15
|
-
- Animated image files (`.gif`)
|
|
16
|
-
- Video files (`.webm`, `.mp4`)
|
|
17
|
-
- Scalable vector graphics (`.svg`)
|
|
14
|
+
Choose a compact still, structured document data, or a complete animation to suit the way your work will be used. `textmode.export.js` offers programmatic controls for automated workflows and an optional overlay UI for people saving and sharing directly from a sketch.
|
|
18
15
|
|
|
19
|
-
|
|
16
|
+
## Features
|
|
20
17
|
|
|
21
|
-
|
|
18
|
+
- **Six output families** - TXT, structured JSON, SVG, PNG/JPEG/WebP, animated GIF, and MP4/WebM video
|
|
19
|
+
- **Exact canvas capture** - Preserve the final presented result, including compositing, shaders, filters, and post-processing
|
|
20
|
+
- **Layer-aware documents** - Export selected layers to TXT/SVG/JSON or preserve the complete descriptive layer stack in JSON
|
|
21
|
+
- **Programmatic exports** - Return text, SVG, and JSON in memory or save them directly as files
|
|
22
|
+
- **Interactive overlay** - Built-in format controls, live layer selectors, runtime defaults, visibility controls, and remembered placement
|
|
23
|
+
- **Clipboard workflows** - Copy text, JSON, SVG, and raster output without downloading files
|
|
24
|
+
- **Controlled animation capture** - Configure frames, frame rate, scale, GIF repetition, video encoding, transparency, progress, and more
|
|
22
25
|
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
- The latest `textmode.export.js` version requires `textmode.js` v0.7.0 or later.
|
|
26
|
-
|
|
27
|
-
### UMD
|
|
28
|
-
|
|
29
|
-
To use `textmode.export.js` in a UMD environment, download the latest `umd` build from the [**GitHub releases page**](https://github.com/humanbydefinition/textmode.export.js/releases/) or import it directly from a CDN like [**jsDelivr**](https://www.jsdelivr.com/package/npm/textmode.export.js). The library is distributed as a single JavaScript file, which you can include in your project by adding the following script tag to your HTML file:
|
|
30
|
-
|
|
31
|
-
```html
|
|
32
|
-
<!-- index.html -->
|
|
33
|
-
<!DOCTYPE html>
|
|
34
|
-
<html>
|
|
35
|
-
<head>
|
|
36
|
-
<title>textmode.js sketch</title>
|
|
37
|
-
|
|
38
|
-
<!-- Import textmode.js from jsDelivr CDN -->
|
|
39
|
-
<script src="https://cdn.jsdelivr.net/npm/textmode.js@latest/dist/textmode.umd.js"></script>
|
|
40
|
-
|
|
41
|
-
<!-- Import textmode.export.js from jsDelivr CDN -->
|
|
42
|
-
<script src="https://cdn.jsdelivr.net/npm/textmode.export.js@latest/dist/textmode.export.umd.js"></script>
|
|
43
|
-
</head>
|
|
44
|
-
<body>
|
|
45
|
-
<script src="sketch.js"></script>
|
|
46
|
-
</body>
|
|
47
|
-
</html>
|
|
48
|
-
```
|
|
49
|
-
|
|
50
|
-
```javascript
|
|
51
|
-
// sketch.js
|
|
52
|
-
const t = textmode.create({
|
|
53
|
-
width: window.innerWidth,
|
|
54
|
-
height: window.innerHeight,
|
|
55
|
-
fontSize: 16,
|
|
56
|
-
frameRate: 60,
|
|
57
|
-
plugins: [ExportPlugin],
|
|
58
|
-
});
|
|
59
|
-
|
|
60
|
-
t.setup(() => {
|
|
61
|
-
// Optional setup code here (e.g., load fonts/shaders, initialize variables that access 't')
|
|
62
|
-
});
|
|
63
|
-
|
|
64
|
-
t.draw(() => {
|
|
65
|
-
t.background(32); // Dark gray background
|
|
66
|
-
|
|
67
|
-
t.char('A');
|
|
68
|
-
t.charColor(255, 0, 0); // Cover the top-left quarter of the grid with a rectangle of red 'A's
|
|
69
|
-
t.rect(0, 0, t.grid.cols / 2, t.grid.rows / 2);
|
|
70
|
-
|
|
71
|
-
// ...add your drawing code here!
|
|
72
|
-
|
|
73
|
-
if (t.frameCount === 60) {
|
|
74
|
-
t.saveCanvas({
|
|
75
|
-
format: 'png',
|
|
76
|
-
filename: 'my-sketch',
|
|
77
|
-
});
|
|
78
|
-
}
|
|
79
|
-
});
|
|
80
|
-
|
|
81
|
-
// Control the export overlay UI at runtime
|
|
82
|
-
// t.exportOverlay.hide(); // Hide the overlay
|
|
83
|
-
// t.exportOverlay.show(); // Show the overlay
|
|
84
|
-
// t.exportOverlay.toggle(); // Toggle visibility
|
|
85
|
-
|
|
86
|
-
// Override input defaults at runtime
|
|
87
|
-
// t.exportOverlay.setDefaults({ image: { scale: 2 } });
|
|
88
|
-
|
|
89
|
-
t.windowResized(() => {
|
|
90
|
-
t.resizeCanvas(window.innerWidth, window.innerHeight);
|
|
91
|
-
});
|
|
92
|
-
```
|
|
93
|
-
|
|
94
|
-
#### ESM
|
|
95
|
-
|
|
96
|
-
To use `textmode.export.js` in an ESM environment, you can install it via `npm`:
|
|
97
|
-
|
|
98
|
-
```bash
|
|
99
|
-
npm install textmode.export.js
|
|
100
|
-
```
|
|
101
|
-
|
|
102
|
-
Then, you can import it in your JavaScript or TypeScript files:
|
|
103
|
-
|
|
104
|
-
```html
|
|
105
|
-
<!-- index.html -->
|
|
106
|
-
<!DOCTYPE html>
|
|
107
|
-
<html lang="en">
|
|
108
|
-
<head>
|
|
109
|
-
<meta charset="utf-8" />
|
|
110
|
-
<title>textmode.js sketch</title>
|
|
111
|
-
</head>
|
|
112
|
-
<body>
|
|
113
|
-
<script type="module" src="./sketch.js"></script>
|
|
114
|
-
</body>
|
|
115
|
-
</html>
|
|
116
|
-
```
|
|
117
|
-
|
|
118
|
-
```javascript
|
|
119
|
-
// sketch.js
|
|
120
|
-
import { textmode } from 'textmode.js';
|
|
121
|
-
import { ExportPlugin } from 'textmode.export.js';
|
|
122
|
-
|
|
123
|
-
const t = textmode.create({
|
|
124
|
-
width: window.innerWidth,
|
|
125
|
-
height: window.innerHeight,
|
|
126
|
-
fontSize: 16,
|
|
127
|
-
frameRate: 60,
|
|
128
|
-
plugins: [ExportPlugin],
|
|
129
|
-
});
|
|
130
|
-
|
|
131
|
-
t.setup(() => {
|
|
132
|
-
// Optional setup code here (e.g., load fonts/shaders, initialize variables that access 't')
|
|
133
|
-
});
|
|
134
|
-
|
|
135
|
-
t.draw(() => {
|
|
136
|
-
t.background(32); // Dark gray background
|
|
137
|
-
|
|
138
|
-
t.char('A');
|
|
139
|
-
t.charColor(255, 0, 0); // Cover the top-left quarter of the grid with a rectangle of red 'A's
|
|
140
|
-
t.rect(0, 0, t.grid.cols / 2, t.grid.rows / 2);
|
|
141
|
-
|
|
142
|
-
// ...add your drawing code here!
|
|
143
|
-
|
|
144
|
-
if (t.frameCount === 60) {
|
|
145
|
-
t.saveCanvas({
|
|
146
|
-
format: 'png',
|
|
147
|
-
filename: 'my-sketch',
|
|
148
|
-
});
|
|
149
|
-
}
|
|
150
|
-
});
|
|
151
|
-
|
|
152
|
-
// Control the export overlay UI at runtime
|
|
153
|
-
// t.exportOverlay.hide(); // Hide the overlay
|
|
154
|
-
// t.exportOverlay.show(); // Show the overlay
|
|
155
|
-
// t.exportOverlay.toggle(); // Toggle visibility
|
|
156
|
-
|
|
157
|
-
// Override input defaults at runtime
|
|
158
|
-
// t.exportOverlay.setDefaults({ image: { scale: 2 } });
|
|
159
|
-
|
|
160
|
-
t.windowResized(() => {
|
|
161
|
-
t.resizeCanvas(window.innerWidth, window.innerHeight);
|
|
162
|
-
});
|
|
163
|
-
```
|
|
26
|
+
## Try it online first
|
|
164
27
|
|
|
165
|
-
|
|
28
|
+
Open [editor.textmode.art](https://editor.textmode.art/), a browser-based live-coding environment for the
|
|
29
|
+
complete official `textmode.js` ecosystem. Sketches run as you edit, with no local toolchain required.
|
|
30
|
+
|
|
31
|
+
The editor includes `textmode.js` and all four official add-ons: `textmode.export.js`, `textmode.filters.js`,
|
|
32
|
+
`textmode.figlet.js`, and `textmode.synth.js`.
|
|
33
|
+
|
|
34
|
+
- Write with Monaco-powered completions, hover documentation, and diagnostics.
|
|
35
|
+
- Start with a blank sketch, an included example, or a community gallery sketch.
|
|
36
|
+
- Keep code and preferences saved in the browser, then share sketches through URL-based links.
|
|
37
|
+
- Use microphone or line-input analysis for audio-reactive work, and create on desktop or mobile.
|
|
166
38
|
|
|
167
|
-
|
|
39
|
+
Use it to experiment with export functionality while your sketch is running.
|
|
168
40
|
|
|
169
|
-
|
|
41
|
+
## Installation
|
|
42
|
+
|
|
43
|
+
Follow the [official installation guide](https://code.textmode.art/docs/installation) to install
|
|
44
|
+
`textmode.export.js` alongside `textmode.js` with npm or browser-ready UMD bundles.
|
|
45
|
+
|
|
46
|
+
## Next steps
|
|
170
47
|
|
|
171
|
-
|
|
48
|
+
- **[Read the exporting documentation](https://code.textmode.art/docs/exporting.html)** for supported formats and workflows.
|
|
49
|
+
- **[Browse the API reference](https://code.textmode.art/api/textmode.export.js/)** for the complete typed API.
|
|
50
|
+
- **[Explore the examples](./examples/)** to see export plugins and options in action.
|
|
51
|
+
- **[Try the live editor](https://editor.textmode.art/)** to experiment with exports in the browser.
|
|
52
|
+
|
|
53
|
+
## Contributing
|
|
54
|
+
|
|
55
|
+
Thank you for considering contributing to this project! (✿◠‿◠)
|
|
56
|
+
|
|
57
|
+
Please read the [Contributing Guide](./CONTRIBUTING.md) to get started.
|
|
58
|
+
|
|
59
|
+
<!-- TEXTMODE-CONTRIBUTORS:START -->
|
|
60
|
+
<!-- prettier-ignore-start -->
|
|
61
|
+
<!-- Generated from https://github.com/humanbydefinition/code.textmode.art/blob/main/.vitepress/data/contributors.json and https://github.com/humanbydefinition/code.textmode.art/blob/main/.vitepress/data/contribution-types.json. Do not edit this section directly. -->
|
|
62
|
+
## Contributors
|
|
63
|
+
|
|
64
|
+
Thanks to the people who contribute code, documentation, design, examples, ideas, infrastructure, and care
|
|
65
|
+
across the textmode.js ecosystem.
|
|
66
|
+
|
|
67
|
+
<!-- markdownlint-disable MD033 -->
|
|
68
|
+
<table>
|
|
69
|
+
<tbody>
|
|
70
|
+
<tr>
|
|
71
|
+
<td align="center" valign="top" width="14.28%">
|
|
72
|
+
<a href="https://github.com/humanbydefinition">
|
|
73
|
+
<img src="https://github.com/humanbydefinition.png?s=100" width="100px" alt="humanbydefinition avatar" />
|
|
74
|
+
<br /><sub><b>humanbydefinition</b></sub>
|
|
75
|
+
</a>
|
|
76
|
+
<br /><span title="Code: Commits and pull requests" aria-label="Code: Commits and pull requests">💻</span> <span title="Documentation: README, guides, and API documentation" aria-label="Documentation: README, guides, and API documentation">📖</span> <span title="Design: User experience, branding, and visual design" aria-label="Design: User experience, branding, and visual design">🎨</span> <span title="Examples: Usage examples and creative sketches" aria-label="Examples: Usage examples and creative sketches">💡</span> <span title="Ideas and planning: Feature proposals, planning, and feedback" aria-label="Ideas and planning: Feature proposals, planning, and feedback">🤔</span> <span title="Maintenance: Refactoring and project upkeep" aria-label="Maintenance: Refactoring and project upkeep">🚧</span> <span title="Infrastructure: Continuous integration, hosting, and build systems" aria-label="Infrastructure: Continuous integration, hosting, and build systems">🚇</span> <span title="Tools: Developer and community tooling" aria-label="Tools: Developer and community tooling">🔧</span> <span title="Plugins and libraries: Plugin and utility library development" aria-label="Plugins and libraries: Plugin and utility library development">🔌</span> <span title="Code review: Reviewing pull requests" aria-label="Code review: Reviewing pull requests">👀</span>
|
|
77
|
+
</td>
|
|
78
|
+
<td align="center" valign="top" width="14.28%">
|
|
79
|
+
<a href="https://github.com/trintlermint">
|
|
80
|
+
<img src="https://github.com/trintlermint.png?s=100" width="100px" alt="trintlermint avatar" />
|
|
81
|
+
<br /><sub><b>trintlermint</b></sub>
|
|
82
|
+
</a>
|
|
83
|
+
<br /><span title="Design: User experience, branding, and visual design" aria-label="Design: User experience, branding, and visual design">🎨</span> <span title="Examples: Usage examples and creative sketches" aria-label="Examples: Usage examples and creative sketches">💡</span>
|
|
84
|
+
</td>
|
|
85
|
+
</tr>
|
|
86
|
+
</tbody>
|
|
87
|
+
</table>
|
|
88
|
+
<!-- markdownlint-enable MD033 -->
|
|
89
|
+
|
|
90
|
+
Contribution details and profile links are maintained on the [textmode.js contributors page](https://code.textmode.art/docs/contributors).
|
|
91
|
+
<!-- prettier-ignore-end -->
|
|
92
|
+
<!-- TEXTMODE-CONTRIBUTORS:END -->
|
|
93
|
+
|
|
94
|
+
## License
|
|
95
|
+
|
|
96
|
+
`textmode.export.js` is licensed under the [MIT License](./LICENSE).
|
|
172
97
|
|
|
173
98
|
## Acknowledgements
|
|
174
99
|
|
|
175
|
-
|
|
100
|
+
- **[mediabunny](https://github.com/Vanilagy/mediabunny)**
|
|
101
|
+
- WebM and MP4 video export support via WebCodecs, by [Vanilagy](https://github.com/Vanilagy).
|
|
102
|
+
- License: [MPL-2.0](https://github.com/Vanilagy/mediabunny/blob/main/LICENSE).
|
|
176
103
|
|
|
177
|
-
|
|
104
|
+
- **[gifenc](https://github.com/mattdesl/gifenc)**
|
|
105
|
+
- Animated GIF encoding by [Matt DesLauriers](https://github.com/mattdesl).
|
|
106
|
+
- License: [MIT License](https://github.com/mattdesl/gifenc/blob/main/LICENSE.md).
|