From 495023fbf323c56240360bf5f46b4fba49cfbcfa Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 13 Jan 2026 00:11:28 +0000 Subject: [PATCH 01/17] Initial plan From 0d896814792e7917737b6b3f4caa7048677357ea Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 13 Jan 2026 00:18:21 +0000 Subject: [PATCH 02/17] Add comprehensive fontkit research and implementation Co-authored-by: danmarshall <11507384+danmarshall@users.noreply.github.com> --- FONTKIT_EXAMPLES.md | 308 ++++++++++ FONTKIT_RESEARCH.md | 539 ++++++++++++++++++ package.json | 3 + .../maker.js/src/models/FontKitAdapter.ts | 299 ++++++++++ packages/maker.js/test/fontkit-adapter.js | 332 +++++++++++ packages/maker.js/tsconfig.json | 3 +- 6 files changed, 1483 insertions(+), 1 deletion(-) create mode 100644 FONTKIT_EXAMPLES.md create mode 100644 FONTKIT_RESEARCH.md create mode 100644 packages/maker.js/src/models/FontKitAdapter.ts create mode 100644 packages/maker.js/test/fontkit-adapter.js diff --git a/FONTKIT_EXAMPLES.md b/FONTKIT_EXAMPLES.md new file mode 100644 index 000000000..db1e37d00 --- /dev/null +++ b/FONTKIT_EXAMPLES.md @@ -0,0 +1,308 @@ +# FontKit Adapter Example + +This example demonstrates how to use the FontKitAdapter to use fontkit fonts with Maker.js. + +## Installation + +```bash +npm install makerjs fontkit +``` + +For browser use, you'll need to include fontkit's browser bundle. + +## Node.js Example + +```javascript +const makerjs = require('makerjs'); +const fontkit = require('fontkit'); + +// Load a font using fontkit +const font = fontkit.openSync('path/to/font.ttf'); + +// Option 1: Use the adapter explicitly +const adapter = new makerjs.models.FontKitAdapter(font); +const text1 = new makerjs.models.Text(adapter, 'Hello World', 72); + +// Option 2: Use TextAuto which auto-detects the font type +const text2 = new makerjs.models.TextAuto(font, 'Hello World', 72); + +// Export to SVG +const svg = makerjs.exporter.toSVG(text2); +console.log(svg); +``` + +## TypeScript Example + +```typescript +import * as makerjs from 'makerjs'; +import * as fontkit from 'fontkit'; + +// Load font +const font = fontkit.openSync('path/to/font.ttf'); + +// Create text with fontkit font +const text = new makerjs.models.TextAuto(font, 'Hello World', 72); + +// Export +const svg = makerjs.exporter.toSVG(text); +``` + +## Browser Example + +```html + + +
+