postext 0.1.3 → 0.1.5

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.
Files changed (46) hide show
  1. package/README.md +8 -2
  2. package/dist/__tests__/exports.test.js +26 -0
  3. package/dist/__tests__/exports.test.js.map +1 -1
  4. package/dist/canvas-backend.d.ts +5 -0
  5. package/dist/canvas-backend.d.ts.map +1 -0
  6. package/dist/canvas-backend.js +183 -0
  7. package/dist/canvas-backend.js.map +1 -0
  8. package/dist/createLayout.d.ts +2 -2
  9. package/dist/createLayout.d.ts.map +1 -1
  10. package/dist/createLayout.js +25 -2
  11. package/dist/createLayout.js.map +1 -1
  12. package/dist/defaults.d.ts +26 -3
  13. package/dist/defaults.d.ts.map +1 -1
  14. package/dist/defaults.js +309 -8
  15. package/dist/defaults.js.map +1 -1
  16. package/dist/hyphenate.d.ts +11 -0
  17. package/dist/hyphenate.d.ts.map +1 -0
  18. package/dist/hyphenate.js +140 -0
  19. package/dist/hyphenate.js.map +1 -0
  20. package/dist/index.d.ts +11 -2
  21. package/dist/index.d.ts.map +1 -1
  22. package/dist/index.js +7 -1
  23. package/dist/index.js.map +1 -1
  24. package/dist/measure.d.ts +40 -0
  25. package/dist/measure.d.ts.map +1 -0
  26. package/dist/measure.js +267 -0
  27. package/dist/measure.js.map +1 -0
  28. package/dist/parse.d.ts +17 -0
  29. package/dist/parse.d.ts.map +1 -0
  30. package/dist/parse.js +152 -0
  31. package/dist/parse.js.map +1 -0
  32. package/dist/pipeline.d.ts +4 -0
  33. package/dist/pipeline.d.ts.map +1 -0
  34. package/dist/pipeline.js +324 -0
  35. package/dist/pipeline.js.map +1 -0
  36. package/dist/types.d.ts +122 -7
  37. package/dist/types.d.ts.map +1 -1
  38. package/dist/units.d.ts +9 -0
  39. package/dist/units.d.ts.map +1 -0
  40. package/dist/units.js +27 -0
  41. package/dist/units.js.map +1 -0
  42. package/dist/vdt.d.ts +83 -0
  43. package/dist/vdt.d.ts.map +1 -0
  44. package/dist/vdt.js +50 -0
  45. package/dist/vdt.js.map +1 -0
  46. package/package.json +5 -1
package/dist/defaults.js CHANGED
@@ -7,28 +7,31 @@ export const PAGE_SIZE_PRESETS = {
7
7
  const DEFAULT_PAGE_MARGINS = {
8
8
  top: { value: 2, unit: 'cm' },
9
9
  bottom: { value: 2, unit: 'cm' },
10
- left: { value: 2, unit: 'cm' },
11
- right: { value: 2, unit: 'cm' },
10
+ left: { value: 1.5, unit: 'cm' },
11
+ right: { value: 1.5, unit: 'cm' },
12
12
  };
13
13
  export const DEFAULT_PAGE_CONFIG = {
14
- backgroundColor: '#ffffff',
14
+ backgroundColor: { hex: 'transparent', model: 'hex' },
15
15
  sizePreset: '17x24',
16
16
  width: { value: 17, unit: 'cm' },
17
17
  height: { value: 24, unit: 'cm' },
18
18
  margins: DEFAULT_PAGE_MARGINS,
19
19
  dpi: 300,
20
20
  cutLines: false,
21
- baselineGrid: { enabled: false, color: '#cccccc' },
21
+ baselineGrid: { enabled: false, color: { hex: '#cccccc', model: 'hex' }, lineWidth: { value: 0.5, unit: 'pt' } },
22
22
  };
23
23
  export function dimensionsEqual(a, b) {
24
24
  return a.value === b.value && a.unit === b.unit;
25
25
  }
26
+ export function colorsEqual(a, b) {
27
+ return a.hex === b.hex && a.model === b.model;
28
+ }
26
29
  export function stripPageDefaults(page) {
27
30
  if (!page)
28
31
  return undefined;
29
32
  const result = {};
30
33
  let hasOverride = false;
31
- if (page.backgroundColor !== undefined && page.backgroundColor !== DEFAULT_PAGE_CONFIG.backgroundColor) {
34
+ if (page.backgroundColor !== undefined && !colorsEqual(page.backgroundColor, DEFAULT_PAGE_CONFIG.backgroundColor)) {
32
35
  result.backgroundColor = page.backgroundColor;
33
36
  hasOverride = true;
34
37
  }
@@ -54,7 +57,7 @@ export function stripPageDefaults(page) {
54
57
  }
55
58
  }
56
59
  if (hasMarginOverride) {
57
- result.margins = { ...DEFAULT_PAGE_MARGINS, ...m };
60
+ result.margins = m;
58
61
  hasOverride = true;
59
62
  }
60
63
  }
@@ -68,17 +71,235 @@ export function stripPageDefaults(page) {
68
71
  }
69
72
  if (page.baselineGrid) {
70
73
  const enabledOverride = page.baselineGrid.enabled !== undefined && page.baselineGrid.enabled !== DEFAULT_PAGE_CONFIG.baselineGrid.enabled;
71
- const colorOverride = page.baselineGrid.color !== undefined && page.baselineGrid.color !== DEFAULT_PAGE_CONFIG.baselineGrid.color;
72
- if (enabledOverride || colorOverride) {
74
+ const colorOverride = page.baselineGrid.color !== undefined && !colorsEqual(page.baselineGrid.color, DEFAULT_PAGE_CONFIG.baselineGrid.color);
75
+ const lineWidthOverride = page.baselineGrid.lineWidth !== undefined && !dimensionsEqual(page.baselineGrid.lineWidth, DEFAULT_PAGE_CONFIG.baselineGrid.lineWidth);
76
+ if (enabledOverride || colorOverride || lineWidthOverride) {
73
77
  result.baselineGrid = {
74
78
  enabled: page.baselineGrid.enabled ?? DEFAULT_PAGE_CONFIG.baselineGrid.enabled,
75
79
  ...(colorOverride ? { color: page.baselineGrid.color } : {}),
80
+ ...(lineWidthOverride ? { lineWidth: page.baselineGrid.lineWidth } : {}),
76
81
  };
77
82
  hasOverride = true;
78
83
  }
79
84
  }
80
85
  return hasOverride ? result : undefined;
81
86
  }
87
+ export const DEFAULT_COLUMN_RULE = {
88
+ enabled: false,
89
+ color: { hex: '#cccccc', model: 'hex' },
90
+ lineWidth: { value: 0.5, unit: 'pt' },
91
+ };
92
+ export const DEFAULT_LAYOUT_CONFIG = {
93
+ layoutType: 'double',
94
+ gutterWidth: { value: 0.75, unit: 'cm' },
95
+ sideColumnPercent: 33,
96
+ columnRule: { ...DEFAULT_COLUMN_RULE },
97
+ };
98
+ export function stripLayoutDefaults(layout) {
99
+ if (!layout)
100
+ return undefined;
101
+ const result = {};
102
+ let hasOverride = false;
103
+ if (layout.layoutType !== undefined && layout.layoutType !== DEFAULT_LAYOUT_CONFIG.layoutType) {
104
+ result.layoutType = layout.layoutType;
105
+ hasOverride = true;
106
+ }
107
+ if (layout.gutterWidth !== undefined && !dimensionsEqual(layout.gutterWidth, DEFAULT_LAYOUT_CONFIG.gutterWidth)) {
108
+ result.gutterWidth = layout.gutterWidth;
109
+ hasOverride = true;
110
+ }
111
+ if (layout.sideColumnPercent !== undefined && layout.sideColumnPercent !== DEFAULT_LAYOUT_CONFIG.sideColumnPercent) {
112
+ result.sideColumnPercent = layout.sideColumnPercent;
113
+ hasOverride = true;
114
+ }
115
+ if (layout.columnRule) {
116
+ const cr = {};
117
+ let hasCrOverride = false;
118
+ if (layout.columnRule.enabled !== undefined && layout.columnRule.enabled !== DEFAULT_COLUMN_RULE.enabled) {
119
+ cr.enabled = layout.columnRule.enabled;
120
+ hasCrOverride = true;
121
+ }
122
+ if (layout.columnRule.color && !colorsEqual(layout.columnRule.color, DEFAULT_COLUMN_RULE.color)) {
123
+ cr.color = layout.columnRule.color;
124
+ hasCrOverride = true;
125
+ }
126
+ if (layout.columnRule.lineWidth && !dimensionsEqual(layout.columnRule.lineWidth, DEFAULT_COLUMN_RULE.lineWidth)) {
127
+ cr.lineWidth = layout.columnRule.lineWidth;
128
+ hasCrOverride = true;
129
+ }
130
+ if (hasCrOverride) {
131
+ result.columnRule = cr;
132
+ hasOverride = true;
133
+ }
134
+ }
135
+ return hasOverride ? result : undefined;
136
+ }
137
+ export const DEFAULT_HYPHENATION_CONFIG = {
138
+ enabled: true,
139
+ locale: 'en-us',
140
+ };
141
+ export const DEFAULT_BODY_TEXT_CONFIG = {
142
+ fontFamily: 'EB Garamond',
143
+ fontSize: { value: 9, unit: 'pt' },
144
+ lineHeight: { value: 1.5, unit: 'em' },
145
+ color: { hex: '#000000', model: 'cmyk' },
146
+ textAlign: 'justify',
147
+ fontWeight: 400,
148
+ boldFontWeight: 700,
149
+ hyphenation: { ...DEFAULT_HYPHENATION_CONFIG },
150
+ };
151
+ export function hyphenationEqual(a, b) {
152
+ if (!a && !b)
153
+ return true;
154
+ if (!a || !b)
155
+ return false;
156
+ return (a.enabled ?? DEFAULT_HYPHENATION_CONFIG.enabled) === (b.enabled ?? DEFAULT_HYPHENATION_CONFIG.enabled)
157
+ && (a.locale ?? DEFAULT_HYPHENATION_CONFIG.locale) === (b.locale ?? DEFAULT_HYPHENATION_CONFIG.locale);
158
+ }
159
+ export function stripBodyTextDefaults(bodyText) {
160
+ if (!bodyText)
161
+ return undefined;
162
+ const result = {};
163
+ let hasOverride = false;
164
+ if (bodyText.fontFamily !== undefined && bodyText.fontFamily !== DEFAULT_BODY_TEXT_CONFIG.fontFamily) {
165
+ result.fontFamily = bodyText.fontFamily;
166
+ hasOverride = true;
167
+ }
168
+ if (bodyText.fontSize !== undefined && !dimensionsEqual(bodyText.fontSize, DEFAULT_BODY_TEXT_CONFIG.fontSize)) {
169
+ result.fontSize = bodyText.fontSize;
170
+ hasOverride = true;
171
+ }
172
+ if (bodyText.lineHeight !== undefined && !dimensionsEqual(bodyText.lineHeight, DEFAULT_BODY_TEXT_CONFIG.lineHeight)) {
173
+ result.lineHeight = bodyText.lineHeight;
174
+ hasOverride = true;
175
+ }
176
+ if (bodyText.color !== undefined && !colorsEqual(bodyText.color, DEFAULT_BODY_TEXT_CONFIG.color)) {
177
+ result.color = bodyText.color;
178
+ hasOverride = true;
179
+ }
180
+ if (bodyText.textAlign !== undefined && bodyText.textAlign !== DEFAULT_BODY_TEXT_CONFIG.textAlign) {
181
+ result.textAlign = bodyText.textAlign;
182
+ hasOverride = true;
183
+ }
184
+ if (bodyText.fontWeight !== undefined && bodyText.fontWeight !== DEFAULT_BODY_TEXT_CONFIG.fontWeight) {
185
+ result.fontWeight = bodyText.fontWeight;
186
+ hasOverride = true;
187
+ }
188
+ if (bodyText.boldFontWeight !== undefined && bodyText.boldFontWeight !== DEFAULT_BODY_TEXT_CONFIG.boldFontWeight) {
189
+ result.boldFontWeight = bodyText.boldFontWeight;
190
+ hasOverride = true;
191
+ }
192
+ if (bodyText.hyphenation && !hyphenationEqual(bodyText.hyphenation, DEFAULT_BODY_TEXT_CONFIG.hyphenation)) {
193
+ result.hyphenation = bodyText.hyphenation;
194
+ hasOverride = true;
195
+ }
196
+ return hasOverride ? result : undefined;
197
+ }
198
+ const DEFAULT_HEADING_FONT = 'Open Sans';
199
+ const DEFAULT_HEADING_LINE_HEIGHT = { value: 1.2, unit: 'em' };
200
+ const DEFAULT_HEADING_COLOR = { hex: '#000000', model: 'cmyk' };
201
+ const DEFAULT_HEADING_FONT_WEIGHT = 700;
202
+ const DEFAULT_HEADING_MARGIN_TOP = { value: 1.5, unit: 'em' };
203
+ const DEFAULT_HEADING_MARGIN_BOTTOM = { value: 0.5, unit: 'em' };
204
+ const DEFAULT_HEADING_LEVELS = [
205
+ { level: 1, fontSize: { value: 18, unit: 'pt' }, lineHeight: DEFAULT_HEADING_LINE_HEIGHT, fontFamily: DEFAULT_HEADING_FONT, color: DEFAULT_HEADING_COLOR, fontWeight: DEFAULT_HEADING_FONT_WEIGHT, marginTop: DEFAULT_HEADING_MARGIN_TOP, marginBottom: DEFAULT_HEADING_MARGIN_BOTTOM },
206
+ { level: 2, fontSize: { value: 15, unit: 'pt' }, lineHeight: DEFAULT_HEADING_LINE_HEIGHT, fontFamily: DEFAULT_HEADING_FONT, color: DEFAULT_HEADING_COLOR, fontWeight: DEFAULT_HEADING_FONT_WEIGHT, marginTop: DEFAULT_HEADING_MARGIN_TOP, marginBottom: DEFAULT_HEADING_MARGIN_BOTTOM },
207
+ { level: 3, fontSize: { value: 12, unit: 'pt' }, lineHeight: DEFAULT_HEADING_LINE_HEIGHT, fontFamily: DEFAULT_HEADING_FONT, color: DEFAULT_HEADING_COLOR, fontWeight: DEFAULT_HEADING_FONT_WEIGHT, marginTop: DEFAULT_HEADING_MARGIN_TOP, marginBottom: DEFAULT_HEADING_MARGIN_BOTTOM },
208
+ { level: 4, fontSize: { value: 10, unit: 'pt' }, lineHeight: DEFAULT_HEADING_LINE_HEIGHT, fontFamily: DEFAULT_HEADING_FONT, color: DEFAULT_HEADING_COLOR, fontWeight: DEFAULT_HEADING_FONT_WEIGHT, marginTop: DEFAULT_HEADING_MARGIN_TOP, marginBottom: DEFAULT_HEADING_MARGIN_BOTTOM },
209
+ { level: 5, fontSize: { value: 9, unit: 'pt' }, lineHeight: DEFAULT_HEADING_LINE_HEIGHT, fontFamily: DEFAULT_HEADING_FONT, color: DEFAULT_HEADING_COLOR, fontWeight: DEFAULT_HEADING_FONT_WEIGHT, marginTop: DEFAULT_HEADING_MARGIN_TOP, marginBottom: DEFAULT_HEADING_MARGIN_BOTTOM },
210
+ { level: 6, fontSize: { value: 8, unit: 'pt' }, lineHeight: DEFAULT_HEADING_LINE_HEIGHT, fontFamily: DEFAULT_HEADING_FONT, color: DEFAULT_HEADING_COLOR, fontWeight: DEFAULT_HEADING_FONT_WEIGHT, marginTop: DEFAULT_HEADING_MARGIN_TOP, marginBottom: DEFAULT_HEADING_MARGIN_BOTTOM },
211
+ ];
212
+ export const DEFAULT_HEADINGS_CONFIG = {
213
+ fontFamily: DEFAULT_HEADING_FONT,
214
+ lineHeight: DEFAULT_HEADING_LINE_HEIGHT,
215
+ color: DEFAULT_HEADING_COLOR,
216
+ textAlign: 'left',
217
+ fontWeight: DEFAULT_HEADING_FONT_WEIGHT,
218
+ marginTop: DEFAULT_HEADING_MARGIN_TOP,
219
+ marginBottom: DEFAULT_HEADING_MARGIN_BOTTOM,
220
+ levels: DEFAULT_HEADING_LEVELS,
221
+ };
222
+ export function stripHeadingsDefaults(headings) {
223
+ if (!headings)
224
+ return undefined;
225
+ const result = {};
226
+ let hasOverride = false;
227
+ if (headings.fontFamily !== undefined && headings.fontFamily !== DEFAULT_HEADINGS_CONFIG.fontFamily) {
228
+ result.fontFamily = headings.fontFamily;
229
+ hasOverride = true;
230
+ }
231
+ if (headings.lineHeight !== undefined && !dimensionsEqual(headings.lineHeight, DEFAULT_HEADINGS_CONFIG.lineHeight)) {
232
+ result.lineHeight = headings.lineHeight;
233
+ hasOverride = true;
234
+ }
235
+ if (headings.color !== undefined && !colorsEqual(headings.color, DEFAULT_HEADINGS_CONFIG.color)) {
236
+ result.color = headings.color;
237
+ hasOverride = true;
238
+ }
239
+ if (headings.textAlign !== undefined && headings.textAlign !== DEFAULT_HEADINGS_CONFIG.textAlign) {
240
+ result.textAlign = headings.textAlign;
241
+ hasOverride = true;
242
+ }
243
+ if (headings.fontWeight !== undefined && headings.fontWeight !== DEFAULT_HEADINGS_CONFIG.fontWeight) {
244
+ result.fontWeight = headings.fontWeight;
245
+ hasOverride = true;
246
+ }
247
+ if (headings.marginTop !== undefined && !dimensionsEqual(headings.marginTop, DEFAULT_HEADINGS_CONFIG.marginTop)) {
248
+ result.marginTop = headings.marginTop;
249
+ hasOverride = true;
250
+ }
251
+ if (headings.marginBottom !== undefined && !dimensionsEqual(headings.marginBottom, DEFAULT_HEADINGS_CONFIG.marginBottom)) {
252
+ result.marginBottom = headings.marginBottom;
253
+ hasOverride = true;
254
+ }
255
+ if (headings.levels && headings.levels.length > 0) {
256
+ const strippedLevels = [];
257
+ for (const level of headings.levels) {
258
+ const def = DEFAULT_HEADING_LEVELS.find((d) => d.level === level.level);
259
+ if (!def) {
260
+ strippedLevels.push(level);
261
+ continue;
262
+ }
263
+ const entry = { level: level.level };
264
+ let levelHasOverride = false;
265
+ if (level.fontSize !== undefined && !dimensionsEqual(level.fontSize, def.fontSize)) {
266
+ entry.fontSize = level.fontSize;
267
+ levelHasOverride = true;
268
+ }
269
+ if (level.lineHeight !== undefined && !dimensionsEqual(level.lineHeight, def.lineHeight)) {
270
+ entry.lineHeight = level.lineHeight;
271
+ levelHasOverride = true;
272
+ }
273
+ if (level.fontFamily !== undefined && level.fontFamily !== def.fontFamily) {
274
+ entry.fontFamily = level.fontFamily;
275
+ levelHasOverride = true;
276
+ }
277
+ if (level.color !== undefined && !colorsEqual(level.color, def.color)) {
278
+ entry.color = level.color;
279
+ levelHasOverride = true;
280
+ }
281
+ if (level.fontWeight !== undefined && level.fontWeight !== def.fontWeight) {
282
+ entry.fontWeight = level.fontWeight;
283
+ levelHasOverride = true;
284
+ }
285
+ if (level.marginTop !== undefined && !dimensionsEqual(level.marginTop, def.marginTop)) {
286
+ entry.marginTop = level.marginTop;
287
+ levelHasOverride = true;
288
+ }
289
+ if (level.marginBottom !== undefined && !dimensionsEqual(level.marginBottom, def.marginBottom)) {
290
+ entry.marginBottom = level.marginBottom;
291
+ levelHasOverride = true;
292
+ }
293
+ if (levelHasOverride)
294
+ strippedLevels.push(entry);
295
+ }
296
+ if (strippedLevels.length > 0) {
297
+ result.levels = strippedLevels;
298
+ hasOverride = true;
299
+ }
300
+ }
301
+ return hasOverride ? result : undefined;
302
+ }
82
303
  export function stripConfigDefaults(config) {
83
304
  const result = { ...config };
84
305
  const strippedPage = stripPageDefaults(config.page);
@@ -88,6 +309,27 @@ export function stripConfigDefaults(config) {
88
309
  else {
89
310
  delete result.page;
90
311
  }
312
+ const strippedLayout = stripLayoutDefaults(config.layout);
313
+ if (strippedLayout) {
314
+ result.layout = strippedLayout;
315
+ }
316
+ else {
317
+ delete result.layout;
318
+ }
319
+ const strippedBodyText = stripBodyTextDefaults(config.bodyText);
320
+ if (strippedBodyText) {
321
+ result.bodyText = strippedBodyText;
322
+ }
323
+ else {
324
+ delete result.bodyText;
325
+ }
326
+ const strippedHeadings = stripHeadingsDefaults(config.headings);
327
+ if (strippedHeadings) {
328
+ result.headings = strippedHeadings;
329
+ }
330
+ else {
331
+ delete result.headings;
332
+ }
91
333
  return result;
92
334
  }
93
335
  export function resolvePageConfig(partial) {
@@ -112,8 +354,67 @@ export function resolvePageConfig(partial) {
112
354
  ? {
113
355
  enabled: partial.baselineGrid.enabled ?? DEFAULT_PAGE_CONFIG.baselineGrid.enabled,
114
356
  color: partial.baselineGrid.color ?? DEFAULT_PAGE_CONFIG.baselineGrid.color,
357
+ lineWidth: partial.baselineGrid.lineWidth ?? DEFAULT_PAGE_CONFIG.baselineGrid.lineWidth,
115
358
  }
116
359
  : { ...DEFAULT_PAGE_CONFIG.baselineGrid },
117
360
  };
118
361
  }
362
+ export function resolveLayoutConfig(partial) {
363
+ if (!partial)
364
+ return { ...DEFAULT_LAYOUT_CONFIG };
365
+ return {
366
+ layoutType: partial.layoutType ?? DEFAULT_LAYOUT_CONFIG.layoutType,
367
+ gutterWidth: partial.gutterWidth ?? DEFAULT_LAYOUT_CONFIG.gutterWidth,
368
+ sideColumnPercent: partial.sideColumnPercent ?? DEFAULT_LAYOUT_CONFIG.sideColumnPercent,
369
+ columnRule: partial.columnRule
370
+ ? {
371
+ enabled: partial.columnRule.enabled ?? DEFAULT_COLUMN_RULE.enabled,
372
+ color: partial.columnRule.color ?? DEFAULT_COLUMN_RULE.color,
373
+ lineWidth: partial.columnRule.lineWidth ?? DEFAULT_COLUMN_RULE.lineWidth,
374
+ }
375
+ : { ...DEFAULT_COLUMN_RULE },
376
+ };
377
+ }
378
+ export function resolveBodyTextConfig(partial) {
379
+ if (!partial)
380
+ return { ...DEFAULT_BODY_TEXT_CONFIG, hyphenation: { ...DEFAULT_HYPHENATION_CONFIG } };
381
+ return {
382
+ fontFamily: partial.fontFamily ?? DEFAULT_BODY_TEXT_CONFIG.fontFamily,
383
+ fontSize: partial.fontSize ?? DEFAULT_BODY_TEXT_CONFIG.fontSize,
384
+ lineHeight: partial.lineHeight ?? DEFAULT_BODY_TEXT_CONFIG.lineHeight,
385
+ color: partial.color ?? DEFAULT_BODY_TEXT_CONFIG.color,
386
+ textAlign: partial.textAlign ?? DEFAULT_BODY_TEXT_CONFIG.textAlign,
387
+ fontWeight: partial.fontWeight ?? DEFAULT_BODY_TEXT_CONFIG.fontWeight,
388
+ boldFontWeight: partial.boldFontWeight ?? DEFAULT_BODY_TEXT_CONFIG.boldFontWeight,
389
+ hyphenation: {
390
+ enabled: partial.hyphenation?.enabled ?? DEFAULT_HYPHENATION_CONFIG.enabled,
391
+ locale: partial.hyphenation?.locale ?? DEFAULT_HYPHENATION_CONFIG.locale,
392
+ },
393
+ };
394
+ }
395
+ export function resolveHeadingsConfig(partial) {
396
+ if (!partial)
397
+ return { ...DEFAULT_HEADINGS_CONFIG, levels: DEFAULT_HEADING_LEVELS.map((l) => ({ ...l })) };
398
+ const generalFont = partial.fontFamily ?? DEFAULT_HEADINGS_CONFIG.fontFamily;
399
+ const generalLineHeight = partial.lineHeight ?? DEFAULT_HEADINGS_CONFIG.lineHeight;
400
+ const generalColor = partial.color ?? DEFAULT_HEADINGS_CONFIG.color;
401
+ const generalTextAlign = partial.textAlign ?? DEFAULT_HEADINGS_CONFIG.textAlign;
402
+ const generalFontWeight = partial.fontWeight ?? DEFAULT_HEADINGS_CONFIG.fontWeight;
403
+ const generalMarginTop = partial.marginTop ?? DEFAULT_HEADINGS_CONFIG.marginTop;
404
+ const generalMarginBottom = partial.marginBottom ?? DEFAULT_HEADINGS_CONFIG.marginBottom;
405
+ const levels = DEFAULT_HEADING_LEVELS.map((def) => {
406
+ const override = partial.levels?.find((l) => l.level === def.level);
407
+ return {
408
+ level: def.level,
409
+ fontSize: override?.fontSize ?? def.fontSize,
410
+ lineHeight: override?.lineHeight ?? generalLineHeight,
411
+ fontFamily: override?.fontFamily ?? generalFont,
412
+ color: override?.color ?? generalColor,
413
+ fontWeight: override?.fontWeight ?? generalFontWeight,
414
+ marginTop: override?.marginTop ?? generalMarginTop,
415
+ marginBottom: override?.marginBottom ?? generalMarginBottom,
416
+ };
417
+ });
418
+ return { fontFamily: generalFont, lineHeight: generalLineHeight, color: generalColor, textAlign: generalTextAlign, fontWeight: generalFontWeight, marginTop: generalMarginTop, marginBottom: generalMarginBottom, levels };
419
+ }
119
420
  //# sourceMappingURL=defaults.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"defaults.js","sourceRoot":"","sources":["../src/defaults.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"defaults.js","sourceRoot":"","sources":["../src/defaults.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import type { HyphenationLocale } from './types';
2
+ /**
3
+ * Set the current hyphenation locale.
4
+ */
5
+ export declare function setHyphenationLocale(locale: HyphenationLocale): void;
6
+ /**
7
+ * Hyphenate a full text string by inserting soft hyphens at syllable boundaries.
8
+ * Only affects words, preserving all whitespace and punctuation.
9
+ */
10
+ export declare function hyphenateText(text: string, locale?: HyphenationLocale): string;
11
+ //# sourceMappingURL=hyphenate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hyphenate.d.ts","sourceRoot":"","sources":["../src/hyphenate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAgJjD;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI,CAEpE;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,iBAAiB,GAAG,MAAM,CAG9E"}
@@ -0,0 +1,140 @@
1
+ const SOFT_HYPHEN = '\u00AD';
2
+ const MIN_WORD_LENGTH = 5;
3
+ const MIN_PREFIX = 2;
4
+ const MIN_SUFFIX = 3;
5
+ // ---------------------------------------------------------------------------
6
+ // Vowel sets per locale
7
+ // ---------------------------------------------------------------------------
8
+ const VOWELS = {
9
+ 'en-us': new Set('aeiouyAEIOUY'),
10
+ 'es': new Set('aeiouáéíóúüAEIOUÁÉÍÓÚÜ'),
11
+ 'fr': new Set('aeiouyàâæéèêëïîôœùûüÿAEIOUYÀÂÆÉÈÊËÏÎÔŒÙÛÜŸ'),
12
+ 'de': new Set('aeiouyäöüAEIOUYÄÖÜ'),
13
+ 'it': new Set('aeiouyàèéìíòóùúAEIOUYÀÈÉÌÍÒÓÙÚ'),
14
+ 'pt': new Set('aeiouyáâãàéêíóôõúüAEIOUYÁÂÃÀÉÊÍÓÔÕÚÜ'),
15
+ 'ca': new Set('aeiouyàèéíïòóúüAEIOUYÀÈÉÍÏÒÓÚÜ'),
16
+ 'nl': new Set('aeiouyAEIOUY'),
17
+ };
18
+ // ---------------------------------------------------------------------------
19
+ // Common prefixes & suffixes for better break points
20
+ // ---------------------------------------------------------------------------
21
+ const COMMON_PREFIXES = {
22
+ 'en-us': ['over', 'under', 'inter', 'trans', 'super', 'anti', 'auto', 'counter', 'dis', 'mis', 'non', 'pre', 'post', 'semi', 'sub', 'un', 're'],
23
+ 'es': ['des', 'inter', 'trans', 'sobre', 'contra', 'anti', 'auto', 'pre', 'post', 'semi', 'sub', 'in', 're'],
24
+ 'fr': ['contre', 'entre', 'inter', 'trans', 'super', 'anti', 'auto', 'pré', 'post', 'semi', 'sous', 'sur', 'dé', 're'],
25
+ 'de': ['über', 'unter', 'zwischen', 'gegen', 'wider', 'vor', 'nach', 'aus', 'ein', 'um', 'ab', 'an', 'auf', 'ver', 'zer', 'ent', 'emp', 'be', 'ge', 'miss'],
26
+ 'it': ['contro', 'inter', 'trans', 'sopra', 'sotto', 'anti', 'auto', 'pre', 'post', 'semi', 'dis', 'ri', 'in'],
27
+ 'pt': ['des', 'inter', 'trans', 'sobre', 'contra', 'anti', 'auto', 'pré', 'pós', 'semi', 'sub', 'in', 're'],
28
+ 'ca': ['des', 'inter', 'trans', 'sobre', 'contra', 'anti', 'auto', 'pre', 'post', 'semi', 'sub', 'in', 're'],
29
+ 'nl': ['over', 'onder', 'tussen', 'tegen', 'voor', 'ver', 'her', 'ont', 'be', 'ge'],
30
+ };
31
+ const COMMON_SUFFIXES = {
32
+ 'en-us': ['tion', 'sion', 'ment', 'ness', 'able', 'ible', 'ful', 'less', 'ous', 'ive', 'ing', 'ence', 'ance', 'ity'],
33
+ 'es': ['ción', 'sión', 'mente', 'miento', 'idad', 'ble', 'oso', 'ivo', 'ando', 'endo', 'ción', 'dad'],
34
+ 'fr': ['tion', 'sion', 'ment', 'eur', 'euse', 'able', 'ible', 'eux', 'ive', 'ence', 'ance', 'ité'],
35
+ 'de': ['ung', 'heit', 'keit', 'lich', 'isch', 'schaft', 'ment', 'tion', 'bar', 'sam', 'haft'],
36
+ 'it': ['zione', 'sione', 'mente', 'mento', 'ità', 'bile', 'oso', 'ivo', 'ando', 'endo'],
37
+ 'pt': ['ção', 'são', 'mente', 'mento', 'dade', 'vel', 'oso', 'ivo', 'ando', 'endo'],
38
+ 'ca': ['ció', 'sió', 'ment', 'tat', 'ble', 'ós', 'iu', 'ant', 'ent'],
39
+ 'nl': ['heid', 'lijk', 'ting', 'baar', 'zaam', 'isch', 'ment', 'sel'],
40
+ };
41
+ // ---------------------------------------------------------------------------
42
+ // Core hyphenation algorithm
43
+ // ---------------------------------------------------------------------------
44
+ function isVowel(char, vowelSet) {
45
+ return vowelSet.has(char);
46
+ }
47
+ function isConsonant(char, vowelSet) {
48
+ return /\p{L}/u.test(char) && !vowelSet.has(char);
49
+ }
50
+ /**
51
+ * Find syllable break points in a word using vowel/consonant patterns.
52
+ * Returns an array of indices where soft hyphens should be inserted.
53
+ */
54
+ function findBreakPoints(word, locale) {
55
+ if (word.length < MIN_WORD_LENGTH)
56
+ return [];
57
+ const vowelSet = VOWELS[locale] ?? VOWELS['en-us'];
58
+ const lower = word.toLowerCase();
59
+ const breaks = [];
60
+ // Check for prefix break
61
+ const prefixes = COMMON_PREFIXES[locale] ?? COMMON_PREFIXES['en-us'];
62
+ for (const prefix of prefixes) {
63
+ if (lower.startsWith(prefix) && word.length - prefix.length >= MIN_SUFFIX) {
64
+ breaks.push(prefix.length);
65
+ break;
66
+ }
67
+ }
68
+ // Check for suffix break
69
+ const suffixes = COMMON_SUFFIXES[locale] ?? COMMON_SUFFIXES['en-us'];
70
+ for (const suffix of suffixes) {
71
+ if (lower.endsWith(suffix) && word.length - suffix.length >= MIN_PREFIX) {
72
+ const idx = word.length - suffix.length;
73
+ if (!breaks.includes(idx))
74
+ breaks.push(idx);
75
+ break;
76
+ }
77
+ }
78
+ // V-CV pattern: break before a consonant followed by a vowel
79
+ // VC-CV pattern: break between consonants when surrounded by vowels
80
+ for (let i = MIN_PREFIX; i < word.length - MIN_SUFFIX + 1; i++) {
81
+ if (breaks.includes(i))
82
+ continue;
83
+ const prev = word[i - 1];
84
+ const curr = word[i];
85
+ const next = i + 1 < word.length ? word[i + 1] : '';
86
+ // Break before consonant + vowel (V-CV)
87
+ if (isVowel(prev, vowelSet) && isConsonant(curr, vowelSet) && next && isVowel(next, vowelSet)) {
88
+ breaks.push(i);
89
+ continue;
90
+ }
91
+ // Break between two consonants (VC-CV)
92
+ if (i >= 2) {
93
+ const prevPrev = word[i - 2];
94
+ if (isVowel(prevPrev, vowelSet) && isConsonant(prev, vowelSet) && isConsonant(curr, vowelSet) && next && isVowel(next, vowelSet)) {
95
+ breaks.push(i);
96
+ }
97
+ }
98
+ }
99
+ return breaks.sort((a, b) => a - b);
100
+ }
101
+ /**
102
+ * Insert soft hyphens into a word at syllable boundaries.
103
+ */
104
+ function hyphenateWord(word, locale) {
105
+ // Skip short words, words with existing hyphens, numbers, etc.
106
+ if (word.length < MIN_WORD_LENGTH)
107
+ return word;
108
+ if (/[\d]/.test(word))
109
+ return word;
110
+ const breakPoints = findBreakPoints(word, locale);
111
+ if (breakPoints.length === 0)
112
+ return word;
113
+ let result = '';
114
+ let lastIdx = 0;
115
+ for (const bp of breakPoints) {
116
+ result += word.slice(lastIdx, bp) + SOFT_HYPHEN;
117
+ lastIdx = bp;
118
+ }
119
+ result += word.slice(lastIdx);
120
+ return result;
121
+ }
122
+ // ---------------------------------------------------------------------------
123
+ // Public API
124
+ // ---------------------------------------------------------------------------
125
+ let currentLocale = 'en-us';
126
+ /**
127
+ * Set the current hyphenation locale.
128
+ */
129
+ export function setHyphenationLocale(locale) {
130
+ currentLocale = locale;
131
+ }
132
+ /**
133
+ * Hyphenate a full text string by inserting soft hyphens at syllable boundaries.
134
+ * Only affects words, preserving all whitespace and punctuation.
135
+ */
136
+ export function hyphenateText(text, locale) {
137
+ const loc = locale ?? currentLocale;
138
+ return text.replace(/\p{L}+/gu, (word) => hyphenateWord(word, loc));
139
+ }
140
+ //# sourceMappingURL=hyphenate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hyphenate.js","sourceRoot":"","sources":["../src/hyphenate.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,4 +1,13 @@
1
1
  export { createLayout } from './createLayout';
2
- export { DEFAULT_PAGE_CONFIG, PAGE_SIZE_PRESETS, resolvePageConfig, dimensionsEqual, stripPageDefaults, stripConfigDefaults } from './defaults';
3
- export type { PostextContent, PostextResource, PostextNote, PostextConfig, PostextSectionOverride, ColumnConfig, ResourcePlacementConfig, TypographyConfig, ReferenceConfig, PlacementStrategy, DimensionUnit, Dimension, PageSizePreset, PageMargins, BaselineGridConfig, PageConfig, } from './types';
2
+ export { buildDocument } from './pipeline';
3
+ export { renderToCanvas, renderPage, renderPageToCanvas } from './canvas-backend';
4
+ export { dimensionToPx } from './units';
5
+ export { buildFontString, measureBlock, measureRichBlock, initHyphenator, clearMeasurementCache } from './measure';
6
+ export type { MeasuredBlock, MeasureBlockOptions } from './measure';
7
+ export { hyphenateText, setHyphenationLocale } from './hyphenate';
8
+ export { parseMarkdown } from './parse';
9
+ export { DEFAULT_PAGE_CONFIG, PAGE_SIZE_PRESETS, resolvePageConfig, DEFAULT_LAYOUT_CONFIG, DEFAULT_COLUMN_RULE, resolveLayoutConfig, stripLayoutDefaults, DEFAULT_BODY_TEXT_CONFIG, DEFAULT_HYPHENATION_CONFIG, resolveBodyTextConfig, stripBodyTextDefaults, hyphenationEqual, DEFAULT_HEADINGS_CONFIG, resolveHeadingsConfig, stripHeadingsDefaults, dimensionsEqual, colorsEqual, stripPageDefaults, stripConfigDefaults } from './defaults';
10
+ export type { PostextContent, PostextResource, PostextNote, PostextConfig, PostextSectionOverride, ColumnConfig, ResourcePlacementConfig, TypographyConfig, ReferenceConfig, PlacementStrategy, ColorModel, ColorValue, DimensionUnit, Dimension, PageSizePreset, PageMargins, BaselineGridConfig, PageConfig, ResolvedPageConfig, LayoutType, ColumnRuleConfig, LayoutConfig, ResolvedLayoutConfig, TextAlign, HyphenationLocale, HyphenationConfig, ResolvedHyphenationConfig, BodyTextConfig, ResolvedBodyTextConfig, HeadingLevelConfig, ResolvedHeadingLevelConfig, HeadingsConfig, ResolvedHeadingsConfig, } from './types';
11
+ export type { BoundingBox, ResolvedConfig, VDTBlockType, VDTLineSegment, VDTLine, VDTBlock, VDTColumn, VDTFootnoteArea, VDTPage, VDTDocument, } from './vdt';
12
+ export type { ContentBlock, ContentBlockType, InlineSpan } from './parse';
4
13
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,eAAe,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAChJ,YAAY,EACV,cAAc,EACd,eAAe,EACf,WAAW,EACX,aAAa,EACb,sBAAsB,EACtB,YAAY,EACZ,uBAAuB,EACvB,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,aAAa,EACb,SAAS,EACT,cAAc,EACd,WAAW,EACX,kBAAkB,EAClB,UAAU,GACX,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAClF,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,gBAAgB,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AACnH,YAAY,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,wBAAwB,EAAE,0BAA0B,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,eAAe,EAAE,WAAW,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAChb,YAAY,EACV,cAAc,EACd,eAAe,EACf,WAAW,EACX,aAAa,EACb,sBAAsB,EACtB,YAAY,EACZ,uBAAuB,EACvB,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,UAAU,EACV,UAAU,EACV,aAAa,EACb,SAAS,EACT,cAAc,EACd,WAAW,EACX,kBAAkB,EAClB,UAAU,EACV,kBAAkB,EAClB,UAAU,EACV,gBAAgB,EAChB,YAAY,EACZ,oBAAoB,EACpB,SAAS,EACT,iBAAiB,EACjB,iBAAiB,EACjB,yBAAyB,EACzB,cAAc,EACd,sBAAsB,EACtB,kBAAkB,EAClB,0BAA0B,EAC1B,cAAc,EACd,sBAAsB,GACvB,MAAM,SAAS,CAAC;AACjB,YAAY,EACV,WAAW,EACX,cAAc,EACd,YAAY,EACZ,cAAc,EACd,OAAO,EACP,QAAQ,EACR,SAAS,EACT,eAAe,EACf,OAAO,EACP,WAAW,GACZ,MAAM,OAAO,CAAC;AACf,YAAY,EAAE,YAAY,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC"}
package/dist/index.js CHANGED
@@ -1,3 +1,9 @@
1
1
  export { createLayout } from './createLayout';
2
- export { DEFAULT_PAGE_CONFIG, PAGE_SIZE_PRESETS, resolvePageConfig, dimensionsEqual, stripPageDefaults, stripConfigDefaults } from './defaults';
2
+ export { buildDocument } from './pipeline';
3
+ export { renderToCanvas, renderPage, renderPageToCanvas } from './canvas-backend';
4
+ export { dimensionToPx } from './units';
5
+ export { buildFontString, measureBlock, measureRichBlock, initHyphenator, clearMeasurementCache } from './measure';
6
+ export { hyphenateText, setHyphenationLocale } from './hyphenate';
7
+ export { parseMarkdown } from './parse';
8
+ export { DEFAULT_PAGE_CONFIG, PAGE_SIZE_PRESETS, resolvePageConfig, DEFAULT_LAYOUT_CONFIG, DEFAULT_COLUMN_RULE, resolveLayoutConfig, stripLayoutDefaults, DEFAULT_BODY_TEXT_CONFIG, DEFAULT_HYPHENATION_CONFIG, resolveBodyTextConfig, stripBodyTextDefaults, hyphenationEqual, DEFAULT_HEADINGS_CONFIG, resolveHeadingsConfig, stripHeadingsDefaults, dimensionsEqual, colorsEqual, stripPageDefaults, stripConfigDefaults } from './defaults';
3
9
  //# sourceMappingURL=index.js.map