postext-pdf 1.29.0 → 1.29.2
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/dist/__tests__/scriptContextHan.test.js +3 -1
- package/dist/__tests__/scriptContextHan.test.js.map +1 -1
- package/dist/__tests__/shapingLanguageDocument.test.js +1 -1
- package/dist/__tests__/shapingLanguageDocument.test.js.map +1 -1
- package/dist/__tests__/shapingLanguageRuns.test.d.ts +2 -0
- package/dist/__tests__/shapingLanguageRuns.test.d.ts.map +1 -0
- package/dist/__tests__/shapingLanguageRuns.test.js +250 -0
- package/dist/__tests__/shapingLanguageRuns.test.js.map +1 -0
- package/dist/__tests__/shapingLanguageRunsDocument.test.d.ts +2 -0
- package/dist/__tests__/shapingLanguageRunsDocument.test.d.ts.map +1 -0
- package/dist/__tests__/shapingLanguageRunsDocument.test.js +327 -0
- package/dist/__tests__/shapingLanguageRunsDocument.test.js.map +1 -0
- package/dist/faceFiles.d.ts +9 -0
- package/dist/faceFiles.d.ts.map +1 -1
- package/dist/faceFiles.js +16 -1
- package/dist/faceFiles.js.map +1 -1
- package/dist/pdf-backend/blockRender.d.ts.map +1 -1
- package/dist/pdf-backend/blockRender.js +11 -1
- package/dist/pdf-backend/blockRender.js.map +1 -1
- package/dist/pdf-backend/primitives.js +7 -7
- package/dist/pdf-backend/primitives.js.map +1 -1
- package/dist/pdf-backend/renderResourceBlock.d.ts.map +1 -1
- package/dist/pdf-backend/renderResourceBlock.js +8 -2
- package/dist/pdf-backend/renderResourceBlock.js.map +1 -1
- package/dist/pdf-backend/shapedText.d.ts.map +1 -1
- package/dist/pdf-backend/shapedText.js +16 -6
- package/dist/pdf-backend/shapedText.js.map +1 -1
- package/dist/pdf-backend/wordPieces.d.ts +48 -0
- package/dist/pdf-backend/wordPieces.d.ts.map +1 -0
- package/dist/pdf-backend/wordPieces.js +72 -0
- package/dist/pdf-backend/wordPieces.js.map +1 -0
- package/dist/shapingLanguage.d.ts +40 -3
- package/dist/shapingLanguage.d.ts.map +1 -1
- package/dist/shapingLanguage.js +168 -5
- package/dist/shapingLanguage.js.map +1 -1
- package/package.json +3 -3
|
@@ -39,13 +39,49 @@ export declare function shapingScriptLetter(): number | undefined;
|
|
|
39
39
|
* acts on, else ignored), then put back the script in force before, also
|
|
40
40
|
* when `fn` throws. */
|
|
41
41
|
export declare function withShapingScript<T>(script: string | undefined, fn: () => T): T;
|
|
42
|
+
/** Run `fn` (the shaping of one part of a word, cut out by the file that
|
|
43
|
+
* draws it) with the part shaped in the script of `letter`
|
|
44
|
+
* ({@link besideLetterOf}; undefined: as a text of its own), then put back
|
|
45
|
+
* what was in force before, also when `fn` throws. */
|
|
46
|
+
export declare function withBesideLetter<T>(letter: number | undefined, fn: () => T): T;
|
|
47
|
+
/**
|
|
48
|
+
* The letter whose script the part `[from, to)` of `text` takes, when the
|
|
49
|
+
* part holds no letter and `text` (the string the layout measured: a word,
|
|
50
|
+
* a run of one direction) does: the nearest letter before it in its word,
|
|
51
|
+
* else the first after it. A word ends at a space: the browser shapes each
|
|
52
|
+
* word of a run apart, so a mark between two spaces takes nothing from
|
|
53
|
+
* the words either side. That is the script the browser gave the part,
|
|
54
|
+
* whatever file draws it (Chrome 154, measured: `«أنا` in Markazi Text
|
|
55
|
+
* under `ar` is 939 thousandths of the em set right to left, 636 for the
|
|
56
|
+
* letters and 303 for the guillemet of Arabic text, which alone is 407).
|
|
57
|
+
* Undefined, the part shaped as a text of its own, for a part with a
|
|
58
|
+
* letter, for one that holds two words, for text with no character above
|
|
59
|
+
* U+00FF (all of it is Latin text to the canvas), when the letter is of a
|
|
60
|
+
* script the rule leaves alone ({@link BESIDE_SCRIPTS}), with a script in
|
|
61
|
+
* force (#725) and in a document that keeps the host's language.
|
|
62
|
+
*/
|
|
63
|
+
export declare function besideLetterOf(text: string, from: number, to: number): number | undefined;
|
|
64
|
+
/**
|
|
65
|
+
* Run `fn` (the shaping of the runs and the parts of `text`, a string
|
|
66
|
+
* HarfBuzz sets) knowing whether `text` holds a right-to-left letter
|
|
67
|
+
* (`rightToLeft`). Such a string is not one the canvas kept in eight
|
|
68
|
+
* bits, so a piece of it with no letter and none beside it in its word
|
|
69
|
+
* (the `(` and the `)` of `كتاب (1)`, each a run of its own; the `.` of
|
|
70
|
+
* `كتاب . كتاب`) was shaped in no script, even where the piece alone has
|
|
71
|
+
* no character above U+00FF: Amiri sets those brackets 0.458 em wide, and
|
|
72
|
+
* 0.255 em as Latin text. Put back afterwards, also when `fn` throws.
|
|
73
|
+
*/
|
|
74
|
+
export declare function withinRightToLeftText<T>(rightToLeft: boolean, fn: () => T): T;
|
|
42
75
|
/**
|
|
43
76
|
* The script (ISO 15924) `text` is shaped in, undefined for the one the
|
|
44
77
|
* shaper reads from the text (the default script, for text with no
|
|
45
78
|
* letter). The script in force; else, and for a word the layout measured
|
|
46
79
|
* beside an ideograph, as the canvas shaped the text of a document in its
|
|
47
|
-
* own language:
|
|
48
|
-
*
|
|
80
|
+
* own language: the script of the letter a part with no letter was cut
|
|
81
|
+
* from beside ({@link withBesideLetter}), else Latin with no character
|
|
82
|
+
* above U+00FF (but no script for a piece with no letter of a string with
|
|
83
|
+
* right-to-left letters, {@link withinRightToLeftText}), no script beside
|
|
84
|
+
* an ideograph. For HarfBuzz; fontkit is told the same
|
|
49
85
|
* ({@link shapeInCurrentLanguage}).
|
|
50
86
|
*/
|
|
51
87
|
export declare function shapingScriptOf(text: string): string | undefined;
|
|
@@ -61,7 +97,8 @@ export declare function shapingKey(text: string): string;
|
|
|
61
97
|
* Text of a document shaped in its own language is told the language
|
|
62
98
|
* system of that language for the script it is shaped in
|
|
63
99
|
* ({@link languageSystem}): the script in force (the default one for a
|
|
64
|
-
* word measured beside an ideograph), else
|
|
100
|
+
* word measured beside an ideograph), else the script of the letter a
|
|
101
|
+
* part with no letter was cut from beside, else Latin for text with no
|
|
65
102
|
* character above U+00FF, else the one fontkit reads from the text
|
|
66
103
|
* ({@link shapingScriptOf}).
|
|
67
104
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shapingLanguage.d.ts","sourceRoot":"","sources":["../src/shapingLanguage.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"shapingLanguage.d.ts","sourceRoot":"","sources":["../src/shapingLanguage.ts"],"names":[],"mappings":"AAwEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAyDvC;;yBAEyB;AACzB,wBAAgB,eAAe,IAAI,MAAM,GAAG,SAAS,CAEpD;AAED;;;qCAGqC;AACrC,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,GAAG,SAAS,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,CAEnF;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,GAAG,SAAS,EAAE,QAAQ,EAAE,MAAM,GAAG,SAAS,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,CASjH;AAED;;;qBAGqB;AACrB,wBAAgB,sBAAsB,IAAI,OAAO,CAEhD;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,QAAQ,UAAQ,GAAG,CAAC,CAIjG;AAWD;kCACkC;AAClC,wBAAgB,aAAa,IAAI,MAAM,GAAG,SAAS,CAElD;AAED,2EAA2E;AAC3E,wBAAgB,mBAAmB,IAAI,MAAM,GAAG,SAAS,CAExD;AAED;;wBAEwB;AACxB,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,GAAG,SAAS,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,CAU/E;AAgCD;;;uDAGuD;AACvD,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,GAAG,SAAS,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,CAS9E;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAyBzF;AAMD;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,CAS7E;AAeD;;;;;;;;;;;GAWG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAMhE;AAED;;yDAEyD;AACzD,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAK/C;AAoID;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,CAyB1D"}
|
package/dist/shapingLanguage.js
CHANGED
|
@@ -36,6 +36,25 @@
|
|
|
36
36
|
* ({@link shapingScriptOf}). Any other text with no letter (`……`, `—`)
|
|
37
37
|
* was measured in the default script, by the canvas and by both shapers.
|
|
38
38
|
*
|
|
39
|
+
* That rule is for the string the canvas was handed, the word the layout
|
|
40
|
+
* measured, not for what a face made of several files leaves of it.
|
|
41
|
+
* Chrome cuts a string into runs of one direction and each run into words
|
|
42
|
+
* at its spaces, and gives a mark the script of the word it stands in
|
|
43
|
+
* before it looks for the file that draws it: the `»` and the stop of
|
|
44
|
+
* `خالة.»`, which Fontsource keeps in the `latin` file of an Arabic
|
|
45
|
+
* family, are Arabic text to it. Markazi Text draws its guillemets 0.1 em
|
|
46
|
+
* narrower for Arabic text in Arabic (`arab`, `ARA `) and Amiri sets a
|
|
47
|
+
* Latin stop and brackets under `latn` only, so a mark shaped alone as
|
|
48
|
+
* Latin text came out at another width than the one measured (#764). So:
|
|
49
|
+
*
|
|
50
|
+
* - a part with no letter, cut out of a word that has one, is shaped in
|
|
51
|
+
* the script of the letter beside it ({@link besideLetterOf},
|
|
52
|
+
* {@link withBesideLetter});
|
|
53
|
+
* - a piece with no letter and none beside it, in a string with
|
|
54
|
+
* right-to-left letters (never one kept in eight bits), is shaped in no
|
|
55
|
+
* script, also where the piece itself has no character above U+00FF
|
|
56
|
+
* ({@link withinRightToLeftText}).
|
|
57
|
+
*
|
|
39
58
|
* The script in force (#725) is for one word at a time: a word with no
|
|
40
59
|
* letter (`46.`, `1367)`) that the layout measured in the script of the
|
|
41
60
|
* text around it (`VDTLineSegment.scriptContext`) is shaped in that script
|
|
@@ -176,6 +195,131 @@ export function withShapingScript(script, fn) {
|
|
|
176
195
|
}
|
|
177
196
|
/** Text a browser keeps in eight bits: no character above U+00FF. */
|
|
178
197
|
const LATIN_1_RE = /^[\u0000-\u00FF]*$/;
|
|
198
|
+
/** The space words are cut at. */
|
|
199
|
+
const SPACE = 0x20;
|
|
200
|
+
/** The scripts a mark takes from the letter beside it (ISO 15924, the
|
|
201
|
+
* names `\p{sc=…}` knows them by): the ones a family comes cut into
|
|
202
|
+
* files by, and the right-to-left ones HarfBuzz paints. Not Han, kana or
|
|
203
|
+
* Hangul: the canvas shapes each of those characters apart from what
|
|
204
|
+
* stands beside it (see the module comment). */
|
|
205
|
+
const BESIDE_SCRIPTS = ['Latn', 'Grek', 'Cyrl', 'Armn', 'Geor', 'Hebr', 'Arab', 'Syrc', 'Thaa', 'Nkoo', 'Samr', 'Mand', 'Adlm', 'Rohg'];
|
|
206
|
+
let besideScriptRes;
|
|
207
|
+
const besideScripts = new Map();
|
|
208
|
+
/** The script of the letter `cp`, one of {@link BESIDE_SCRIPTS}; undefined
|
|
209
|
+
* for a letter of any other script and for a character with none. */
|
|
210
|
+
function besideScriptOf(cp) {
|
|
211
|
+
if (besideScripts.has(cp))
|
|
212
|
+
return besideScripts.get(cp);
|
|
213
|
+
besideScriptRes ??= BESIDE_SCRIPTS.map((code) => [code, new RegExp(`\\p{sc=${code}}`, 'u')]);
|
|
214
|
+
const ch = String.fromCodePoint(cp);
|
|
215
|
+
const script = besideScriptRes.find(([, re]) => re.test(ch))?.[0];
|
|
216
|
+
if (besideScripts.size >= SCRIPT_SLOTS)
|
|
217
|
+
besideScripts.clear();
|
|
218
|
+
besideScripts.set(cp, script);
|
|
219
|
+
return script;
|
|
220
|
+
}
|
|
221
|
+
/** The letter (a code point) whose script a part with no letter is shaped
|
|
222
|
+
* in now; undefined: the part is shaped as a text of its own. */
|
|
223
|
+
let besideLetter;
|
|
224
|
+
/** Run `fn` (the shaping of one part of a word, cut out by the file that
|
|
225
|
+
* draws it) with the part shaped in the script of `letter`
|
|
226
|
+
* ({@link besideLetterOf}; undefined: as a text of its own), then put back
|
|
227
|
+
* what was in force before, also when `fn` throws. */
|
|
228
|
+
export function withBesideLetter(letter, fn) {
|
|
229
|
+
if (letter === besideLetter)
|
|
230
|
+
return fn();
|
|
231
|
+
const previous = besideLetter;
|
|
232
|
+
besideLetter = letter;
|
|
233
|
+
try {
|
|
234
|
+
return fn();
|
|
235
|
+
}
|
|
236
|
+
finally {
|
|
237
|
+
besideLetter = previous;
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
/**
|
|
241
|
+
* The letter whose script the part `[from, to)` of `text` takes, when the
|
|
242
|
+
* part holds no letter and `text` (the string the layout measured: a word,
|
|
243
|
+
* a run of one direction) does: the nearest letter before it in its word,
|
|
244
|
+
* else the first after it. A word ends at a space: the browser shapes each
|
|
245
|
+
* word of a run apart, so a mark between two spaces takes nothing from
|
|
246
|
+
* the words either side. That is the script the browser gave the part,
|
|
247
|
+
* whatever file draws it (Chrome 154, measured: `«أنا` in Markazi Text
|
|
248
|
+
* under `ar` is 939 thousandths of the em set right to left, 636 for the
|
|
249
|
+
* letters and 303 for the guillemet of Arabic text, which alone is 407).
|
|
250
|
+
* Undefined, the part shaped as a text of its own, for a part with a
|
|
251
|
+
* letter, for one that holds two words, for text with no character above
|
|
252
|
+
* U+00FF (all of it is Latin text to the canvas), when the letter is of a
|
|
253
|
+
* script the rule leaves alone ({@link BESIDE_SCRIPTS}), with a script in
|
|
254
|
+
* force (#725) and in a document that keeps the host's language.
|
|
255
|
+
*/
|
|
256
|
+
export function besideLetterOf(text, from, to) {
|
|
257
|
+
if (!shapedAsCanvas() || currentScript !== undefined)
|
|
258
|
+
return undefined;
|
|
259
|
+
if (STRONG_SCRIPT_RE.test(text.slice(from, to)) || LATIN_1_RE.test(text))
|
|
260
|
+
return undefined;
|
|
261
|
+
// The part without the spaces at its ends: what is left is in one word.
|
|
262
|
+
let start = from;
|
|
263
|
+
let end = to;
|
|
264
|
+
while (start < end && text.charCodeAt(start) === SPACE)
|
|
265
|
+
start++;
|
|
266
|
+
while (end > start && text.charCodeAt(end - 1) === SPACE)
|
|
267
|
+
end--;
|
|
268
|
+
if (start === end || text.slice(start, end).includes(' '))
|
|
269
|
+
return undefined;
|
|
270
|
+
let found;
|
|
271
|
+
// Backwards by UTF-16 unit: a low surrogate is skipped to its pair.
|
|
272
|
+
for (let at = start - 1; at >= 0 && found === undefined; at--) {
|
|
273
|
+
const unit = text.charCodeAt(at);
|
|
274
|
+
if (unit === SPACE)
|
|
275
|
+
break;
|
|
276
|
+
if (unit >= 0xDC00 && unit <= 0xDFFF)
|
|
277
|
+
continue;
|
|
278
|
+
const cp = text.codePointAt(at);
|
|
279
|
+
if (STRONG_SCRIPT_RE.test(String.fromCodePoint(cp)))
|
|
280
|
+
found = cp;
|
|
281
|
+
}
|
|
282
|
+
for (let at = end; at < text.length && found === undefined;) {
|
|
283
|
+
const cp = text.codePointAt(at);
|
|
284
|
+
if (cp === SPACE)
|
|
285
|
+
break;
|
|
286
|
+
if (STRONG_SCRIPT_RE.test(String.fromCodePoint(cp)))
|
|
287
|
+
found = cp;
|
|
288
|
+
at += cp > 0xFFFF ? 2 : 1;
|
|
289
|
+
}
|
|
290
|
+
return found !== undefined && besideScriptOf(found) !== undefined ? found : undefined;
|
|
291
|
+
}
|
|
292
|
+
/** Whether the text being shaped is part of a string with right-to-left
|
|
293
|
+
* letters ({@link withinRightToLeftText}). */
|
|
294
|
+
let rightToLeftText = false;
|
|
295
|
+
/**
|
|
296
|
+
* Run `fn` (the shaping of the runs and the parts of `text`, a string
|
|
297
|
+
* HarfBuzz sets) knowing whether `text` holds a right-to-left letter
|
|
298
|
+
* (`rightToLeft`). Such a string is not one the canvas kept in eight
|
|
299
|
+
* bits, so a piece of it with no letter and none beside it in its word
|
|
300
|
+
* (the `(` and the `)` of `كتاب (1)`, each a run of its own; the `.` of
|
|
301
|
+
* `كتاب . كتاب`) was shaped in no script, even where the piece alone has
|
|
302
|
+
* no character above U+00FF: Amiri sets those brackets 0.458 em wide, and
|
|
303
|
+
* 0.255 em as Latin text. Put back afterwards, also when `fn` throws.
|
|
304
|
+
*/
|
|
305
|
+
export function withinRightToLeftText(rightToLeft, fn) {
|
|
306
|
+
if (rightToLeft === rightToLeftText)
|
|
307
|
+
return fn();
|
|
308
|
+
const previous = rightToLeftText;
|
|
309
|
+
rightToLeftText = rightToLeft;
|
|
310
|
+
try {
|
|
311
|
+
return fn();
|
|
312
|
+
}
|
|
313
|
+
finally {
|
|
314
|
+
rightToLeftText = previous;
|
|
315
|
+
}
|
|
316
|
+
}
|
|
317
|
+
/** Whether `text` is shaped in no script though it has no character above
|
|
318
|
+
* U+00FF: a piece with no letter of a string with right-to-left letters
|
|
319
|
+
* ({@link withinRightToLeftText}). */
|
|
320
|
+
function unscripted(text) {
|
|
321
|
+
return rightToLeftText && !STRONG_SCRIPT_RE.test(text);
|
|
322
|
+
}
|
|
179
323
|
/** Whether text is shaped as the canvas shaped it (see the module
|
|
180
324
|
* comment): the text of a document shaped in its own language. */
|
|
181
325
|
function shapedAsCanvas() {
|
|
@@ -186,8 +330,11 @@ function shapedAsCanvas() {
|
|
|
186
330
|
* shaper reads from the text (the default script, for text with no
|
|
187
331
|
* letter). The script in force; else, and for a word the layout measured
|
|
188
332
|
* beside an ideograph, as the canvas shaped the text of a document in its
|
|
189
|
-
* own language:
|
|
190
|
-
*
|
|
333
|
+
* own language: the script of the letter a part with no letter was cut
|
|
334
|
+
* from beside ({@link withBesideLetter}), else Latin with no character
|
|
335
|
+
* above U+00FF (but no script for a piece with no letter of a string with
|
|
336
|
+
* right-to-left letters, {@link withinRightToLeftText}), no script beside
|
|
337
|
+
* an ideograph. For HarfBuzz; fontkit is told the same
|
|
191
338
|
* ({@link shapeInCurrentLanguage}).
|
|
192
339
|
*/
|
|
193
340
|
export function shapingScriptOf(text) {
|
|
@@ -195,7 +342,10 @@ export function shapingScriptOf(text) {
|
|
|
195
342
|
return currentScript;
|
|
196
343
|
if (currentScript === 'Hani')
|
|
197
344
|
return undefined;
|
|
198
|
-
|
|
345
|
+
if (currentScript !== undefined)
|
|
346
|
+
return currentScript;
|
|
347
|
+
const beside = besideLetter !== undefined ? besideScriptOf(besideLetter) : undefined;
|
|
348
|
+
return beside ?? (LATIN_1_RE.test(text) && !unscripted(text) ? 'Latn' : undefined);
|
|
199
349
|
}
|
|
200
350
|
/** The key a cache of shaped `text` holds it under: the text itself with
|
|
201
351
|
* no language and no script in force (as every cache did), else tagged
|
|
@@ -203,6 +353,10 @@ export function shapingScriptOf(text) {
|
|
|
203
353
|
export function shapingKey(text) {
|
|
204
354
|
if (currentScript !== undefined)
|
|
205
355
|
return `${currentScript}\u0001${current?.key ?? ''}\u0000${text}`;
|
|
356
|
+
if (besideLetter !== undefined && shapedAsCanvas())
|
|
357
|
+
return `${besideScriptOf(besideLetter) ?? ''}\u0003${current?.key ?? ''}\u0000${text}`;
|
|
358
|
+
if (shapedAsCanvas() && unscripted(text) && LATIN_1_RE.test(text))
|
|
359
|
+
return `\u0004${current?.key ?? ''}\u0000${text}`;
|
|
206
360
|
return current === undefined ? text : `${current.key}\u0000${text}`;
|
|
207
361
|
}
|
|
208
362
|
/** Text with a character of a script of its own (Han, kana, Latin…), from
|
|
@@ -253,6 +407,10 @@ function scriptEntry(table, scripts) {
|
|
|
253
407
|
}
|
|
254
408
|
return undefined;
|
|
255
409
|
}
|
|
410
|
+
/** Whether a face names the script `tag` in its `GSUB` or its `GPOS`. */
|
|
411
|
+
function hasScript(face, tag) {
|
|
412
|
+
return [face.GSUB, face.GPOS].some((table) => table?.scriptList?.some((entry) => entry.tag === tag) ?? false);
|
|
413
|
+
}
|
|
256
414
|
function hasLanguage(entry, tag) {
|
|
257
415
|
const padded = tag.padEnd(4, ' ');
|
|
258
416
|
return entry?.script?.langSysRecords?.some((record) => record.tag === padded) ?? false;
|
|
@@ -316,7 +474,8 @@ const shaped = new WeakSet();
|
|
|
316
474
|
* Text of a document shaped in its own language is told the language
|
|
317
475
|
* system of that language for the script it is shaped in
|
|
318
476
|
* ({@link languageSystem}): the script in force (the default one for a
|
|
319
|
-
* word measured beside an ideograph), else
|
|
477
|
+
* word measured beside an ideograph), else the script of the letter a
|
|
478
|
+
* part with no letter was cut from beside, else Latin for text with no
|
|
320
479
|
* character above U+00FF, else the one fontkit reads from the text
|
|
321
480
|
* ({@link shapingScriptOf}).
|
|
322
481
|
*
|
|
@@ -347,9 +506,13 @@ export function shapeInCurrentLanguage(font) {
|
|
|
347
506
|
const scriptTag = script ?? (typeof text === 'string' && !STRONG_SCRIPT_RE.test(text) ? 'hani' : undefined);
|
|
348
507
|
return layout(text, features, scriptTag, lang, direction);
|
|
349
508
|
}
|
|
509
|
+
// A part with no letter, in the script of the letter it was cut from
|
|
510
|
+
// beside: the first of that script's tags the font has.
|
|
511
|
+
const beside = inForce === undefined && script === undefined && besideLetter !== undefined ? scriptsOfText(layout, String.fromCodePoint(besideLetter)) : NO_SCRIPT;
|
|
512
|
+
const besideTag = beside.find((tag) => hasScript(face, tag)) ?? beside[0];
|
|
350
513
|
// `DFLT`: the default script, which fontkit also takes for a script
|
|
351
514
|
// the font lacks.
|
|
352
|
-
const scriptTag = inForce === 'hani' ? 'DFLT' : inForce ?? script ?? (LATIN_1_RE.test(text) ? 'latn' : undefined);
|
|
515
|
+
const scriptTag = inForce === 'hani' ? 'DFLT' : inForce ?? script ?? besideTag ?? (LATIN_1_RE.test(text) && !unscripted(text) ? 'latn' : undefined);
|
|
353
516
|
const system = languageSystem(face, scriptTag !== undefined ? [scriptTag] : scriptsOfText(layout, text), state);
|
|
354
517
|
return layout(text, features, scriptTag, system, inForce !== undefined ? direction ?? 'ltr' : direction);
|
|
355
518
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shapingLanguage.js","sourceRoot":"","sources":["../src/shapingLanguage.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"shapingLanguage.js","sourceRoot":"","sources":["../src/shapingLanguage.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "postext-pdf",
|
|
3
|
-
"version": "1.29.
|
|
3
|
+
"version": "1.29.2",
|
|
4
4
|
"description": "Browser-native PDF renderer for Postext documents. Consumes the same VDT as the canvas/HTML backends and produces a physical PDF with faithful glyph positioning, justification, crop marks, and baseline grid.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -40,7 +40,7 @@
|
|
|
40
40
|
"./package.json": "./package.json"
|
|
41
41
|
},
|
|
42
42
|
"peerDependencies": {
|
|
43
|
-
"postext": "^1.29.
|
|
43
|
+
"postext": "^1.29.2"
|
|
44
44
|
},
|
|
45
45
|
"dependencies": {
|
|
46
46
|
"@pdf-lib/fontkit": "^1.1.1",
|
|
@@ -54,7 +54,7 @@
|
|
|
54
54
|
"@types/node": "^26.5.0",
|
|
55
55
|
"eslint": "^9.39.4",
|
|
56
56
|
"harfbuzzjs": "1.6.2",
|
|
57
|
-
"postext": "1.29.
|
|
57
|
+
"postext": "1.29.2",
|
|
58
58
|
"typescript": "^6.0.3",
|
|
59
59
|
"typescript-eslint": "^8.70.0",
|
|
60
60
|
"vitest": "^5.0.0"
|