postext 1.25.5 → 1.26.0
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__/cjk/headingNumberMark.test.d.ts +2 -0
- package/dist/__tests__/cjk/headingNumberMark.test.d.ts.map +1 -0
- package/dist/__tests__/cjk/headingNumberMark.test.js +108 -0
- package/dist/__tests__/cjk/headingNumberMark.test.js.map +1 -0
- package/dist/__tests__/cjk/japaneseDash.test.d.ts +2 -0
- package/dist/__tests__/cjk/japaneseDash.test.d.ts.map +1 -0
- package/dist/__tests__/cjk/japaneseDash.test.js +250 -0
- package/dist/__tests__/cjk/japaneseDash.test.js.map +1 -0
- package/dist/__tests__/cjk/japaneseSpacing.test.js +1 -1
- package/dist/__tests__/cjk/punctuation.test.js +5 -3
- package/dist/__tests__/cjk/punctuation.test.js.map +1 -1
- package/dist/__tests__/columnRuleBands.test.js +47 -0
- package/dist/__tests__/columnRuleBands.test.js.map +1 -1
- package/dist/__tests__/comics/canvas.test.js +38 -1
- package/dist/__tests__/comics/canvas.test.js.map +1 -1
- package/dist/__tests__/comics/html.test.js +16 -3
- package/dist/__tests__/comics/html.test.js.map +1 -1
- package/dist/__tests__/design/cjkDesignDash.test.js +7 -4
- package/dist/__tests__/design/cjkDesignDash.test.js.map +1 -1
- package/dist/__tests__/englishApostropheHyphenation.test.d.ts +2 -0
- package/dist/__tests__/englishApostropheHyphenation.test.d.ts.map +1 -0
- package/dist/__tests__/englishApostropheHyphenation.test.js +47 -0
- package/dist/__tests__/englishApostropheHyphenation.test.js.map +1 -0
- package/dist/__tests__/exports.test.js +1 -0
- package/dist/__tests__/exports.test.js.map +1 -1
- package/dist/__tests__/leaderMinRepeats.test.d.ts +2 -0
- package/dist/__tests__/leaderMinRepeats.test.d.ts.map +1 -0
- package/dist/__tests__/leaderMinRepeats.test.js +109 -0
- package/dist/__tests__/leaderMinRepeats.test.js.map +1 -0
- package/dist/__tests__/pipeline/footnoteRuntTracking.test.d.ts +2 -0
- package/dist/__tests__/pipeline/footnoteRuntTracking.test.d.ts.map +1 -0
- package/dist/__tests__/pipeline/footnoteRuntTracking.test.js +90 -0
- package/dist/__tests__/pipeline/footnoteRuntTracking.test.js.map +1 -0
- package/dist/__tests__/pipeline/orderedNumberAlign.test.d.ts +2 -0
- package/dist/__tests__/pipeline/orderedNumberAlign.test.d.ts.map +1 -0
- package/dist/__tests__/pipeline/orderedNumberAlign.test.js +108 -0
- package/dist/__tests__/pipeline/orderedNumberAlign.test.js.map +1 -0
- package/dist/__tests__/pipeline/trailingCapColumnNote.test.d.ts +2 -0
- package/dist/__tests__/pipeline/trailingCapColumnNote.test.d.ts.map +1 -0
- package/dist/__tests__/pipeline/trailingCapColumnNote.test.js +63 -0
- package/dist/__tests__/pipeline/trailingCapColumnNote.test.js.map +1 -0
- package/dist/__tests__/pipeline/trailingCapFloatHead.test.d.ts +2 -0
- package/dist/__tests__/pipeline/trailingCapFloatHead.test.d.ts.map +1 -0
- package/dist/__tests__/pipeline/trailingCapFloatHead.test.js +91 -0
- package/dist/__tests__/pipeline/trailingCapFloatHead.test.js.map +1 -0
- package/dist/__tests__/rtl/arabicLeadingNumbers.test.d.ts +2 -0
- package/dist/__tests__/rtl/arabicLeadingNumbers.test.d.ts.map +1 -0
- package/dist/__tests__/rtl/arabicLeadingNumbers.test.js +186 -0
- package/dist/__tests__/rtl/arabicLeadingNumbers.test.js.map +1 -0
- package/dist/__tests__/rtl/listMarkerDirection.test.d.ts +2 -0
- package/dist/__tests__/rtl/listMarkerDirection.test.d.ts.map +1 -0
- package/dist/__tests__/rtl/listMarkerDirection.test.js +197 -0
- package/dist/__tests__/rtl/listMarkerDirection.test.js.map +1 -0
- package/dist/__tests__/trackedLigatures.test.d.ts +2 -0
- package/dist/__tests__/trackedLigatures.test.d.ts.map +1 -0
- package/dist/__tests__/trackedLigatures.test.js +230 -0
- package/dist/__tests__/trackedLigatures.test.js.map +1 -0
- package/dist/__tests__/vectorRasterScale.test.d.ts +2 -0
- package/dist/__tests__/vectorRasterScale.test.d.ts.map +1 -0
- package/dist/__tests__/vectorRasterScale.test.js +304 -0
- package/dist/__tests__/vectorRasterScale.test.js.map +1 -0
- package/dist/bidi.d.ts +43 -3
- package/dist/bidi.d.ts.map +1 -1
- package/dist/bidi.js +29 -7
- package/dist/bidi.js.map +1 -1
- package/dist/canvas-backend/blockRender.d.ts.map +1 -1
- package/dist/canvas-backend/blockRender.js +43 -5
- package/dist/canvas-backend/blockRender.js.map +1 -1
- package/dist/canvas-backend/comic.d.ts +8 -4
- package/dist/canvas-backend/comic.d.ts.map +1 -1
- package/dist/canvas-backend/comic.js +13 -6
- package/dist/canvas-backend/comic.js.map +1 -1
- package/dist/canvas-backend/deviceScale.d.ts +31 -0
- package/dist/canvas-backend/deviceScale.d.ts.map +1 -0
- package/dist/canvas-backend/deviceScale.js +45 -0
- package/dist/canvas-backend/deviceScale.js.map +1 -0
- package/dist/canvas-backend/index.d.ts +5 -1
- package/dist/canvas-backend/index.d.ts.map +1 -1
- package/dist/canvas-backend/index.js.map +1 -1
- package/dist/canvas-backend/renderResourceBlock.d.ts +5 -3
- package/dist/canvas-backend/renderResourceBlock.d.ts.map +1 -1
- package/dist/canvas-backend/renderResourceBlock.js +39 -6
- package/dist/canvas-backend/renderResourceBlock.js.map +1 -1
- package/dist/canvas-backend/trackedText.d.ts +55 -0
- package/dist/canvas-backend/trackedText.d.ts.map +1 -0
- package/dist/canvas-backend/trackedText.js +145 -0
- package/dist/canvas-backend/trackedText.js.map +1 -0
- package/dist/canvas-backend/wordRuns.d.ts +4 -0
- package/dist/canvas-backend/wordRuns.d.ts.map +1 -1
- package/dist/canvas-backend/wordRuns.js +9 -1
- package/dist/canvas-backend/wordRuns.js.map +1 -1
- package/dist/columnRule.d.ts +2 -1
- package/dist/columnRule.d.ts.map +1 -1
- package/dist/columnRule.js +11 -3
- package/dist/columnRule.js.map +1 -1
- package/dist/comics/layoutPage.d.ts.map +1 -1
- package/dist/comics/layoutPage.js +54 -2
- package/dist/comics/layoutPage.js.map +1 -1
- package/dist/comics/lettering/__tests__/ellipsisFace.test.d.ts +2 -0
- package/dist/comics/lettering/__tests__/ellipsisFace.test.d.ts.map +1 -0
- package/dist/comics/lettering/__tests__/ellipsisFace.test.js +54 -0
- package/dist/comics/lettering/__tests__/ellipsisFace.test.js.map +1 -0
- package/dist/comics/lettering/__tests__/polish.test.js +8 -0
- package/dist/comics/lettering/__tests__/polish.test.js.map +1 -1
- package/dist/comics/lettering/__tests__/round4.test.d.ts +2 -0
- package/dist/comics/lettering/__tests__/round4.test.d.ts.map +1 -0
- package/dist/comics/lettering/__tests__/round4.test.js +212 -0
- package/dist/comics/lettering/__tests__/round4.test.js.map +1 -0
- package/dist/comics/lettering/letter.js +2 -2
- package/dist/comics/lettering/letter.js.map +1 -1
- package/dist/comics/lettering/placement.d.ts +10 -3
- package/dist/comics/lettering/placement.d.ts.map +1 -1
- package/dist/comics/lettering/placement.js +162 -22
- package/dist/comics/lettering/placement.js.map +1 -1
- package/dist/comics/lettering/text.d.ts.map +1 -1
- package/dist/comics/lettering/text.js +25 -3
- package/dist/comics/lettering/text.js.map +1 -1
- package/dist/comics/lettering/types.d.ts +29 -2
- package/dist/comics/lettering/types.d.ts.map +1 -1
- package/dist/defaults/orderedLists.d.ts +1 -0
- package/dist/defaults/orderedLists.d.ts.map +1 -1
- package/dist/defaults/orderedLists.js +7 -0
- package/dist/defaults/orderedLists.js.map +1 -1
- package/dist/design/bidiText.d.ts +5 -2
- package/dist/design/bidiText.d.ts.map +1 -1
- package/dist/design/bidiText.js +7 -4
- package/dist/design/bidiText.js.map +1 -1
- package/dist/design/layout.d.ts +5 -0
- package/dist/design/layout.d.ts.map +1 -1
- package/dist/design/layout.js +1 -1
- package/dist/design/layout.js.map +1 -1
- package/dist/html-backend.d.ts.map +1 -1
- package/dist/html-backend.js +32 -6
- package/dist/html-backend.js.map +1 -1
- package/dist/htmlComic.d.ts +2 -1
- package/dist/htmlComic.d.ts.map +1 -1
- package/dist/htmlComic.js +14 -1
- package/dist/htmlComic.js.map +1 -1
- package/dist/hyphenate.d.ts.map +1 -1
- package/dist/hyphenate.js +52 -0
- package/dist/hyphenate.js.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/math/rasterCache.d.ts +7 -1
- package/dist/math/rasterCache.d.ts.map +1 -1
- package/dist/math/rasterCache.js +23 -11
- package/dist/math/rasterCache.js.map +1 -1
- package/dist/measure/bidiLines.d.ts +8 -0
- package/dist/measure/bidiLines.d.ts.map +1 -1
- package/dist/measure/bidiLines.js +13 -0
- package/dist/measure/bidiLines.js.map +1 -1
- package/dist/measure/cache.d.ts.map +1 -1
- package/dist/measure/cache.js +5 -3
- package/dist/measure/cache.js.map +1 -1
- package/dist/measure/cjkCompose.d.ts +10 -0
- package/dist/measure/cjkCompose.d.ts.map +1 -1
- package/dist/measure/cjkCompose.js +95 -19
- package/dist/measure/cjkCompose.js.map +1 -1
- package/dist/measure/cjkPunctuation.d.ts +10 -0
- package/dist/measure/cjkPunctuation.d.ts.map +1 -1
- package/dist/measure/cjkPunctuation.js +18 -1
- package/dist/measure/cjkPunctuation.js.map +1 -1
- package/dist/measure/hardBreaks.d.ts.map +1 -1
- package/dist/measure/hardBreaks.js +4 -1
- package/dist/measure/hardBreaks.js.map +1 -1
- package/dist/measure/leader.d.ts +6 -1
- package/dist/measure/leader.d.ts.map +1 -1
- package/dist/measure/leader.js +8 -3
- package/dist/measure/leader.js.map +1 -1
- package/dist/measure/plain.d.ts.map +1 -1
- package/dist/measure/plain.js +4 -2
- package/dist/measure/plain.js.map +1 -1
- package/dist/measure/rich.d.ts.map +1 -1
- package/dist/measure/rich.js +7 -4
- package/dist/measure/rich.js.map +1 -1
- package/dist/measure/types.d.ts +7 -0
- package/dist/measure/types.d.ts.map +1 -1
- package/dist/measure/types.js.map +1 -1
- package/dist/pipeline/build.d.ts.map +1 -1
- package/dist/pipeline/build.js +38 -5
- package/dist/pipeline/build.js.map +1 -1
- package/dist/pipeline/buildBlockKind.d.ts +5 -0
- package/dist/pipeline/buildBlockKind.d.ts.map +1 -1
- package/dist/pipeline/buildBlockKind.js +1 -0
- package/dist/pipeline/buildBlockKind.js.map +1 -1
- package/dist/pipeline/calloutLayout.d.ts.map +1 -1
- package/dist/pipeline/calloutLayout.js +8 -4
- package/dist/pipeline/calloutLayout.js.map +1 -1
- package/dist/pipeline/citations.d.ts.map +1 -1
- package/dist/pipeline/citations.js +52 -6
- package/dist/pipeline/citations.js.map +1 -1
- package/dist/pipeline/config.d.ts +6 -0
- package/dist/pipeline/config.d.ts.map +1 -1
- package/dist/pipeline/config.js +12 -1
- package/dist/pipeline/config.js.map +1 -1
- package/dist/pipeline/headerFooter.d.ts +2 -0
- package/dist/pipeline/headerFooter.d.ts.map +1 -1
- package/dist/pipeline/headerFooter.js +3 -1
- package/dist/pipeline/headerFooter.js.map +1 -1
- package/dist/pipeline/lists.d.ts +8 -0
- package/dist/pipeline/lists.d.ts.map +1 -1
- package/dist/pipeline/lists.js +18 -1
- package/dist/pipeline/lists.js.map +1 -1
- package/dist/pipeline/measureContentBlock.d.ts.map +1 -1
- package/dist/pipeline/measureContentBlock.js +3 -0
- package/dist/pipeline/measureContentBlock.js.map +1 -1
- package/dist/types.d.ts +13 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/vdt.d.ts +9 -0
- package/dist/vdt.d.ts.map +1 -1
- package/dist/vdt.js.map +1 -1
- package/package.json +1 -1
package/dist/measure/cache.js
CHANGED
|
@@ -5,15 +5,17 @@ import { hasCJK } from './cjk';
|
|
|
5
5
|
import { getCjkLineBreak } from './cjkClasses';
|
|
6
6
|
import { getMeasureRegion, getMeasureUprightDigits, getMeasureWritingMode } from './vertical';
|
|
7
7
|
import { cjkCompositionKey, getCjkComposition } from './cjkPunctuation';
|
|
8
|
-
import { getMeasureDirection } from './bidiLines';
|
|
8
|
+
import { getMeasureArabicNumbers, getMeasureDirection } from './bidiLines';
|
|
9
9
|
import { evictionsSince, measurementGeneration } from './canvas';
|
|
10
10
|
/** Options that change a block's lines, joined into its cache key. The
|
|
11
11
|
* active hyphenation dictionary is one: soft hyphens (and the syllables an
|
|
12
12
|
* overlong word is divided at) depend on it. So is a right-to-left base
|
|
13
13
|
* direction (`MeasureBlockOptions.direction`, else the build's), which
|
|
14
|
-
* joins the key only when set, so every left-to-right key is unchanged
|
|
14
|
+
* joins the key only when set, so every left-to-right key is unchanged;
|
|
15
|
+
* and the Arabic reading of leading numbers (#665), in the documents
|
|
16
|
+
* that have it. */
|
|
15
17
|
function optionsKey(options) {
|
|
16
|
-
return `${(options?.direction ?? getMeasureDirection()) === 'rtl' ? 'rtl\x00' : ''}${options?.textAlign ?? ''}\x00${options?.hyphenate ?? ''}\x00${options?.firstLineIndentPx ?? ''}\x00${options?.hangingIndent ?? ''}\x00${options?.optimal ?? ''}\x00${options?.maxStretchRatio ?? ''}\x00${options?.minShrinkRatio ?? ''}\x00${options?.runtPenalty ?? ''}\x00${options?.runtMinCharacters ?? ''}\x00${options?.looseness ?? ''}\x00${options?.letterSpacingPx ?? ''}\x00${options?.hyphenationZonePx ?? ''}\x00${getHyphenationLocale()}${options?.justifyTrackingPx ? `\x00${options.justifyTrackingPx}` : ''}${options?.runtGraded ? '\x00rg' : ''}${options?.labelColumnPx !== undefined ? `\x00lc${options.labelColumnPx}` : ''}${options?.avoidHyphenAtLines?.length ? `\x00ah${options.avoidHyphenAtLines.join(',')}` : ''}${options?.kashida ? `\x00k${options.kashida.patterns}:${options.kashida.perWord}:${options.kashida.maxLengthPx}` : ''}${options?.lineIndentsPx?.length ? `\x00li${options.lineIndentsPx.join(',')}` : ''}${options?.tabs ? `\x00tb${JSON.stringify(options.tabs)}` : ''}`;
|
|
18
|
+
return `${(options?.direction ?? getMeasureDirection()) === 'rtl' ? 'rtl\x00' : ''}${getMeasureArabicNumbers() ? 'an\x00' : ''}${options?.textAlign ?? ''}\x00${options?.hyphenate ?? ''}\x00${options?.firstLineIndentPx ?? ''}\x00${options?.hangingIndent ?? ''}\x00${options?.optimal ?? ''}\x00${options?.maxStretchRatio ?? ''}\x00${options?.minShrinkRatio ?? ''}\x00${options?.runtPenalty ?? ''}\x00${options?.runtMinCharacters ?? ''}\x00${options?.looseness ?? ''}\x00${options?.letterSpacingPx ?? ''}\x00${options?.hyphenationZonePx ?? ''}\x00${getHyphenationLocale()}${options?.justifyTrackingPx ? `\x00${options.justifyTrackingPx}` : ''}${options?.runtGraded ? '\x00rg' : ''}${options?.labelColumnPx !== undefined ? `\x00lc${options.labelColumnPx}` : ''}${options?.labelLength ? `\x00ll${options.labelLength}` : ''}${options?.avoidHyphenAtLines?.length ? `\x00ah${options.avoidHyphenAtLines.join(',')}` : ''}${options?.kashida ? `\x00k${options.kashida.patterns}:${options.kashida.perWord}:${options.kashida.maxLengthPx}` : ''}${options?.lineIndentsPx?.length ? `\x00li${options.lineIndentsPx.join(',')}` : ''}${options?.tabs ? `\x00tb${JSON.stringify(options.tabs)}` : ''}`;
|
|
17
19
|
}
|
|
18
20
|
/** The CJK line-break level and composition (punctuation widths, hanging,
|
|
19
21
|
* the Han–Latin space), joined to the key of a text that holds CJK only,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cache.js","sourceRoot":"","sources":["../../src/measure/cache.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cache.js","sourceRoot":"","sources":["../../src/measure/cache.ts"],"names":[],"mappings":"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"}
|
|
@@ -36,6 +36,7 @@ import type { InlineSpan } from '../parse';
|
|
|
36
36
|
import type { VDTSegmentMarks } from '../vdt';
|
|
37
37
|
import { type MeasuredBlock, type MeasureBlockOptions } from './types';
|
|
38
38
|
import { type CjkLineBreakLevel } from './cjkClasses';
|
|
39
|
+
import { type CjkComposition } from './cjkPunctuation';
|
|
39
40
|
/**
|
|
40
41
|
* Whether a paragraph is set by the CJK composer: it holds more CJK letters
|
|
41
42
|
* than word spaces. A word space is a run of spaces between two characters
|
|
@@ -53,6 +54,15 @@ export declare function isCjkParagraph(text: string): boolean;
|
|
|
53
54
|
* CJK letters than word spaces (see {@link isCjkParagraph}). Both
|
|
54
55
|
* measuring paths ask this, so they agree. */
|
|
55
56
|
export declare function composesAsCjk(text: string): boolean;
|
|
57
|
+
/**
|
|
58
|
+
* Whether the CJK composer sets a paragraph that is nothing but a row of
|
|
59
|
+
* dashes (――――――, a rule the author typed between two passages): in a
|
|
60
|
+
* Chinese or Japanese document it does (#680), so the row is drawn as one
|
|
61
|
+
* rule (`routeSharedMarks`) where the word-by-word path would paint each
|
|
62
|
+
* dash at its face's advance, a stroke per cell. The dashes alone say
|
|
63
|
+
* nothing about the language ({@link composesAsCjk}); the document does.
|
|
64
|
+
*/
|
|
65
|
+
export declare function composesDashRow(text: string, c?: CjkComposition): boolean;
|
|
56
66
|
/** The marks a span sets on its characters (#193, #421), the defaults
|
|
57
67
|
* of what the span leaves unset filled in (`cjk.emphasisMark` has filled
|
|
58
68
|
* the region's in already, `pipeline/annotations.ts`): emphasis dots a
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cjkCompose.d.ts","sourceRoot":"","sources":["../../src/measure/cjkCompose.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAEH,OAAO,KAAK,EAA4B,UAAU,EAAiB,MAAM,UAAU,CAAC;AACpF,OAAO,KAAK,EAAwD,eAAe,EAAc,MAAM,QAAQ,CAAC;AAGhH,OAAO,EAA2D,KAAK,aAAa,EAAE,KAAK,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAmBhI,OAAO,EAeL,KAAK,iBAAiB,EACvB,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"cjkCompose.d.ts","sourceRoot":"","sources":["../../src/measure/cjkCompose.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAEH,OAAO,KAAK,EAA4B,UAAU,EAAiB,MAAM,UAAU,CAAC;AACpF,OAAO,KAAK,EAAwD,eAAe,EAAc,MAAM,QAAQ,CAAC;AAGhH,OAAO,EAA2D,KAAK,aAAa,EAAE,KAAK,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAmBhI,OAAO,EAeL,KAAK,iBAAiB,EACvB,MAAM,cAAc,CAAC;AAStB,OAAO,EAwBL,KAAK,cAAc,EAEpB,MAAM,kBAAkB,CAAC;AAgB1B;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAsBpD;AAED;;;+CAG+C;AAC/C,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEnD;AAKD;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,GAAE,cAAoC,GAAG,OAAO,CAE9F;AA2ID;;;;uCAIuC;AACvC,wBAAgB,SAAS,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,GAAG,eAAe,GAAG,SAAS,CAqB1F;AA0gFD;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,UAAU,EAAE,EACnB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,cAAc,EAAE,MAAM,EACtB,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,mBAAmB,GAAG,SAAS,GACvC,aAAa,CAyIf;AAaD;6BAC6B;AAC7B,MAAM,WAAW,aAAa;IAC5B,4DAA4D;IAC5D,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,iDAAiD;IACjD,KAAK,EAAE,MAAM,CAAC;IACd,wDAAwD;IACxD,WAAW,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC;CACtC;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,GAAG,SAAS,EAAE,eAAe,EAAE,MAAM,EAAE,KAAK,GAAE,iBAAqC,GAAG,aAAa,CAoC9K"}
|
|
@@ -46,7 +46,7 @@ import { cellAdvance, flowTextWidth, fontEm, fontFamilyOf, getMeasureRegion, get
|
|
|
46
46
|
import { isUprightMarkPair, verticalRuns } from '../writingMode';
|
|
47
47
|
import { foldWidth, isZhuyin, kuntenGeometry, noteRowBaselines, readingAdvance, readingBaseline, rubyGeometry, splitNote, withFontSize, ZHUYIN_SIZE_RATIO } from './cjkAnnotate';
|
|
48
48
|
import { boxesWidth, fullSizeKana, layoutJisRuby, layoutJukugo } from './rubyJis';
|
|
49
|
-
import { applyLineEdges, blankEnd, blankStart, boxCut, carryStopBlank, compositionFor, compressPair, DEFAULT_TITLE_MIN_CHARS, getCjkComposition, isLatinSpacingHan, isLatinSpacingLatin, isJlreqSpacing, isPlainComposition, jlreqShrinkStep, latinSpacingPx, lineEdgeCut, mayHang, punctuationBox, punctuationShrink, routesSharedMarks, shrinkPunctuation, shrinkStep, } from './cjkPunctuation';
|
|
49
|
+
import { applyLineEdges, blankEnd, blankStart, boxCut, carryStopBlank, compositionFor, compressPair, DEFAULT_TITLE_MIN_CHARS, getCjkComposition, isLatinSpacingHan, isLatinSpacingLatin, isJlreqSpacing, isPlainComposition, jlreqShrinkStep, latinSpacingPx, lineEdgeCut, joinsDashPairs, mayHang, punctuationBox, punctuationShrink, routesSharedMarks, shrinkPunctuation, shrinkStep, } from './cjkPunctuation';
|
|
50
50
|
/** Fit tolerance of the breaker (px): running sums of many widths may
|
|
51
51
|
* land a hair past a measure they fill exactly. */
|
|
52
52
|
const FIT_EPS = 1e-6;
|
|
@@ -103,6 +103,19 @@ export function isCjkParagraph(text) {
|
|
|
103
103
|
export function composesAsCjk(text) {
|
|
104
104
|
return hasCJK(text) && isCjkParagraph(text);
|
|
105
105
|
}
|
|
106
|
+
/** A paragraph that is a row of dashes and nothing else. */
|
|
107
|
+
const DASH_ROW_RE = /^\s*(?:\u2014{2,}|\u2015{2,})\s*$/;
|
|
108
|
+
/**
|
|
109
|
+
* Whether the CJK composer sets a paragraph that is nothing but a row of
|
|
110
|
+
* dashes (――――――, a rule the author typed between two passages): in a
|
|
111
|
+
* Chinese or Japanese document it does (#680), so the row is drawn as one
|
|
112
|
+
* rule (`routeSharedMarks`) where the word-by-word path would paint each
|
|
113
|
+
* dash at its face's advance, a stroke per cell. The dashes alone say
|
|
114
|
+
* nothing about the language ({@link composesAsCjk}); the document does.
|
|
115
|
+
*/
|
|
116
|
+
export function composesDashRow(text, c = getCjkComposition()) {
|
|
117
|
+
return (c.language === 'ja' || c.language === 'zh') && DASH_ROW_RE.test(text);
|
|
118
|
+
}
|
|
106
119
|
/** The marks a span sets on its characters (#193, #421), the defaults
|
|
107
120
|
* of what the span leaves unset filled in (`cjk.emphasisMark` has filled
|
|
108
121
|
* the region's in already, `pipeline/annotations.ts`): emphasis dots a
|
|
@@ -854,7 +867,7 @@ function buildUnits(spans, fonts, letterSpacingPx, vertical = false, route = fal
|
|
|
854
867
|
if (vertical && getMeasureRegion() === 'japan')
|
|
855
868
|
combineMarkPairs(units, letterSpacingPx);
|
|
856
869
|
if (route)
|
|
857
|
-
routeSharedMarks(units, letterSpacingPx, vertical);
|
|
870
|
+
routeSharedMarks(units, letterSpacingPx, vertical, route === 'dashes');
|
|
858
871
|
return units;
|
|
859
872
|
}
|
|
860
873
|
/** Give each kanbun mark (#430) to the last unit its spans made (a space
|
|
@@ -1030,7 +1043,14 @@ function unitScript(v) {
|
|
|
1030
1043
|
* it does any mark's (`cjk.punctuationWidth`). A glyph one em wide already changes
|
|
1031
1044
|
* nothing. Next to Western text on both sides (`He said “yes”`) they keep
|
|
1032
1045
|
* their own advance, and so do they in Japanese and Korean text (the
|
|
1033
|
-
* composer
|
|
1046
|
+
* composer routes them for Chinese text only, `routesSharedMarks`). In
|
|
1047
|
+
* Japanese text (`dashesOnly`, #680) only a two-em dash is set here: its
|
|
1048
|
+
* dashes keep the advance the face gives them and are stretched into one
|
|
1049
|
+
* stroke, as JLReq's double dash is one mark.
|
|
1050
|
+
*
|
|
1051
|
+
* A row of dashes longer than two (a rule drawn with ――――) is cut into
|
|
1052
|
+
* pairs, and an odd dash at its end: each runs on into the dashes it
|
|
1053
|
+
* touches (`continuesDash`), so the row is one rule.
|
|
1034
1054
|
*
|
|
1035
1055
|
* Down a vertical line (`vertical`) every mark stands in a cell of its own
|
|
1036
1056
|
* already; only the 破折号 is set here: the font's vertical form of a dash
|
|
@@ -1040,7 +1060,7 @@ function unitScript(v) {
|
|
|
1040
1060
|
* frame (sideways), the stretch running down the column
|
|
1041
1061
|
* (`VDTLineSegment.inkScale`).
|
|
1042
1062
|
*/
|
|
1043
|
-
function routeSharedMarks(units, letterSpacingPx, vertical = false) {
|
|
1063
|
+
function routeSharedMarks(units, letterSpacingPx, vertical = false, dashesOnly = false) {
|
|
1044
1064
|
if (!units.some(isSharedMarkUnit))
|
|
1045
1065
|
return;
|
|
1046
1066
|
// The script of the nearest unit on each side that is not transparent
|
|
@@ -1063,10 +1083,16 @@ function routeSharedMarks(units, letterSpacingPx, vertical = false) {
|
|
|
1063
1083
|
const u = units[k];
|
|
1064
1084
|
if (!isSharedMarkUnit(u))
|
|
1065
1085
|
continue;
|
|
1066
|
-
|
|
1067
|
-
//
|
|
1068
|
-
|
|
1069
|
-
|
|
1086
|
+
// A row of dashes (――――) is one rule: a pair, or the odd dash of the
|
|
1087
|
+
// row, runs on into the dashes that touch it (#680).
|
|
1088
|
+
const joinsBefore = continuesDash(units[k - 1], u);
|
|
1089
|
+
const joinsAfter = continuesDash(u, units[k + 1]);
|
|
1090
|
+
const dashChar = !(vertical && u.orient) && (u.text[0] === '\u2014' || u.text[0] === '\u2015');
|
|
1091
|
+
const dash = dashChar && (u.graphemes === 2 || joinsBefore || joinsAfter);
|
|
1092
|
+
// Vertical text, and Japanese text in either direction: a dash pair
|
|
1093
|
+
// only, and not one whose orientation the author set (`:upright[…]`,
|
|
1094
|
+
// `:sideways[…]`).
|
|
1095
|
+
if ((vertical || dashesOnly) && !dash)
|
|
1070
1096
|
continue;
|
|
1071
1097
|
const b = before[k];
|
|
1072
1098
|
const a = after[k];
|
|
@@ -1075,20 +1101,23 @@ function routeSharedMarks(units, letterSpacingPx, vertical = false) {
|
|
|
1075
1101
|
const em = emOfFont(u.style.font);
|
|
1076
1102
|
const font = u.style.font;
|
|
1077
1103
|
let place;
|
|
1078
|
-
|
|
1104
|
+
// Japanese text keeps each dash the advance its face gives it, so no
|
|
1105
|
+
// line moves; Chinese text gives it an em.
|
|
1106
|
+
const cell = dashesOnly ? u.width / u.graphemes : em + letterSpacingPx;
|
|
1107
|
+
const rule = dash ? dashRule(u.text[0], font, em, cell, vertical, u.graphemes, joinsBefore, joinsAfter) : undefined;
|
|
1079
1108
|
if (rule) {
|
|
1080
1109
|
place = rule.place;
|
|
1081
1110
|
if (rule.scale !== undefined)
|
|
1082
1111
|
u.scale = rule.scale;
|
|
1083
1112
|
if (rule.shift !== undefined)
|
|
1084
1113
|
u.shift = rule.shift;
|
|
1085
|
-
if (vertical) {
|
|
1086
|
-
// The cells keep their length
|
|
1114
|
+
if (vertical || dashesOnly) {
|
|
1115
|
+
// The cells keep their length along the line.
|
|
1087
1116
|
u.place = place;
|
|
1088
1117
|
continue;
|
|
1089
1118
|
}
|
|
1090
1119
|
}
|
|
1091
|
-
else if (vertical) {
|
|
1120
|
+
else if (vertical || dashesOnly) {
|
|
1092
1121
|
// No ink metrics: each dash in its vertical form, as it was.
|
|
1093
1122
|
continue;
|
|
1094
1123
|
}
|
|
@@ -1116,6 +1145,20 @@ function routeSharedMarks(units, letterSpacingPx, vertical = false) {
|
|
|
1116
1145
|
u.place = place;
|
|
1117
1146
|
}
|
|
1118
1147
|
}
|
|
1148
|
+
/** The dash a unit is made of (— or ―): a pair, or a single dash; none for
|
|
1149
|
+
* a unit whose orientation the author set. */
|
|
1150
|
+
function dashOfUnit(u) {
|
|
1151
|
+
if (!u || u.orient || !isSharedMarkUnit(u))
|
|
1152
|
+
return undefined;
|
|
1153
|
+
const g = u.text[0];
|
|
1154
|
+
return g === '\u2014' || g === '\u2015' ? g : undefined;
|
|
1155
|
+
}
|
|
1156
|
+
/** Whether the dashes of `b` go on the rule of `a`, the unit before it:
|
|
1157
|
+
* the same dash in the same face, with nothing between them. */
|
|
1158
|
+
function continuesDash(a, b) {
|
|
1159
|
+
const g = dashOfUnit(a);
|
|
1160
|
+
return g !== undefined && g === dashOfUnit(b) && a.style.font === b.style.font && !b.zwspBefore && a.link === b.link;
|
|
1161
|
+
}
|
|
1119
1162
|
/** How far past the join each dash of a 破折号 runs, em: the two strokes
|
|
1120
1163
|
* overlap, so no seam shows between them at any resolution. */
|
|
1121
1164
|
const DASH_JOIN_EM = 0.02;
|
|
@@ -1132,17 +1175,30 @@ const DASH_JOIN_EM = 0.02;
|
|
|
1132
1175
|
* (`measureCentralBaseline`). Undefined when the measurer gives no ink
|
|
1133
1176
|
* metrics, or when the dash already fills its em (a face whose two dashes
|
|
1134
1177
|
* join by themselves). Down a vertical line (`vertical`) the scale is set
|
|
1135
|
-
* even when it is 1: it tells the renderers to paint the dash turned.
|
|
1178
|
+
* even when it is 1: it tells the renderers to paint the dash turned. A
|
|
1179
|
+
* unit of a longer row (#680) overlaps the dashes it touches on that side
|
|
1180
|
+
* by the join instead of ending the side bearing short of its cells.
|
|
1136
1181
|
*/
|
|
1137
|
-
function dashRule(g, font, em, cell, vertical = false
|
|
1182
|
+
function dashRule(g, font, em, cell, vertical = false,
|
|
1183
|
+
/** The dashes of the unit: a pair, or the odd dash of a longer row. */
|
|
1184
|
+
count = 2,
|
|
1185
|
+
/** The rule runs on from the dashes before the unit, and into those
|
|
1186
|
+
* after it: on that side it overlaps them instead of ending the face's
|
|
1187
|
+
* side bearing inside its cells. */
|
|
1188
|
+
joinsBefore = false, joinsAfter = false) {
|
|
1138
1189
|
const ink = measureInkExtent(g, font);
|
|
1139
1190
|
// No ink metrics, or a dash already drawn edge to edge across its em.
|
|
1140
1191
|
if (!ink || (ink.start <= 0.01 * em && ink.end >= cell - 0.01 * em))
|
|
1141
1192
|
return undefined;
|
|
1142
1193
|
const side = Math.min(Math.max(ink.start, 0), 0.1 * em);
|
|
1143
1194
|
const join = DASH_JOIN_EM * em;
|
|
1144
|
-
|
|
1145
|
-
|
|
1195
|
+
// Where the unit's ink starts and ends in its cells, and the length of
|
|
1196
|
+
// each stroke: two strokes overlap by twice the join.
|
|
1197
|
+
const start = joinsBefore ? -join : side;
|
|
1198
|
+
const end = count * cell + (joinsAfter ? join : -side);
|
|
1199
|
+
const stroke = (end - start + (count - 1) * 2 * join) / count;
|
|
1200
|
+
const scale = stroke / (ink.end - ink.start);
|
|
1201
|
+
const place = count === 1 ? [start - ink.start * scale] : [start - ink.start * scale, end - stroke - cell - ink.start * scale];
|
|
1146
1202
|
const box = measureInkBox(g, font);
|
|
1147
1203
|
const shift = box ? (box.ascent - box.descent) / 2 - measureCentralBaseline(fontFamilyOf(font)) * em : 0;
|
|
1148
1204
|
return {
|
|
@@ -1186,6 +1242,19 @@ const QUESTION_MARKS = new Set(['?', '!', '‼', '⁇', '⁈', '⁉']);
|
|
|
1186
1242
|
function charUnitIn(u, set) {
|
|
1187
1243
|
return !!u && u.kind === 'text' && !u.run && u.graphemes === 1 && !u.ruby && !u.kunten && !u.note && !u.orient && !u.style.script && set.has(u.text);
|
|
1188
1244
|
}
|
|
1245
|
+
/** The unit that holds the last character of a block's opening label
|
|
1246
|
+
* (`MeasureBlockOptions.labelLength`, UTF-16 units of the text): the
|
|
1247
|
+
* units before it and itself are the label. -1 when the text is shorter
|
|
1248
|
+
* than the label. */
|
|
1249
|
+
function labelEndUnit(units, labelLength) {
|
|
1250
|
+
let seen = 0;
|
|
1251
|
+
for (let k = 0; k < units.length; k++) {
|
|
1252
|
+
seen += units[k].text.length;
|
|
1253
|
+
if (seen >= labelLength)
|
|
1254
|
+
return k;
|
|
1255
|
+
}
|
|
1256
|
+
return -1;
|
|
1257
|
+
}
|
|
1189
1258
|
/**
|
|
1190
1259
|
* The punctuation widths and Han–Latin spaces of a paragraph's units, as
|
|
1191
1260
|
* the composition sets them (see `cjkPunctuation.ts`): each full-width mark
|
|
@@ -1200,7 +1269,7 @@ function charUnitIn(u, set) {
|
|
|
1200
1269
|
* ・ between kanji numerals is set solid (`Unit.solid`), and with
|
|
1201
1270
|
* `spaceAfterQuestion` a ? or ! takes its one-em space (`Unit.aki`).
|
|
1202
1271
|
*/
|
|
1203
|
-
function prepareUnits(units, c, letterSpacingPx) {
|
|
1272
|
+
function prepareUnits(units, c, letterSpacingPx, labelLength = 0) {
|
|
1204
1273
|
const plain = isPlainComposition(c);
|
|
1205
1274
|
// Down the line the mainland interpunct's cell is half an em already.
|
|
1206
1275
|
if (plain && (c.region !== 'mainland' || c.vertical))
|
|
@@ -1223,10 +1292,15 @@ function prepareUnits(units, c, letterSpacingPx) {
|
|
|
1223
1292
|
if (c.region === 'japan') {
|
|
1224
1293
|
// 二、三日, 三・一四: the mark between two kanji numerals is its glyph
|
|
1225
1294
|
// alone (JLReq §3.1.3), and the number is not broken there.
|
|
1295
|
+
// A heading's number is not half of a number with its title (#679):
|
|
1296
|
+
// the unit that ends it is where the rule stops reading.
|
|
1297
|
+
const labelEnd = labelLength > 0 ? labelEndUnit(units, labelLength) : -1;
|
|
1226
1298
|
for (let k = 1; k + 1 < units.length; k++) {
|
|
1227
1299
|
const u = units[k];
|
|
1228
1300
|
if (!u.punct || (u.text !== '、' && u.text !== '・'))
|
|
1229
1301
|
continue;
|
|
1302
|
+
if (k === labelEnd || k - 1 === labelEnd)
|
|
1303
|
+
continue;
|
|
1230
1304
|
if (!charUnitIn(units[k - 1], KANJI_DIGITS) || !charUnitIn(units[k + 1], KANJI_DIGITS) || units[k + 1].glueBefore)
|
|
1231
1305
|
continue;
|
|
1232
1306
|
shrinkPunctuation(u.punct, u.punct.blank);
|
|
@@ -2711,8 +2785,10 @@ export function composeCjkParagraph(spans, normalFont, boldFont, italicFont, bol
|
|
|
2711
2785
|
const composition = compositionFor(options?.cjkComposition ?? getCjkComposition(), vertical);
|
|
2712
2786
|
// The marks Latin text shares with Chinese take Chinese boxes in Chinese
|
|
2713
2787
|
// text only (`routesSharedMarks`).
|
|
2714
|
-
const
|
|
2715
|
-
|
|
2788
|
+
const plainText = spans.map((s) => s.text).join('');
|
|
2789
|
+
// Japanese text: only its two-em dashes, drawn as one stroke (#680).
|
|
2790
|
+
const route = routesSharedMarks(composition, plainText) || (joinsDashPairs(composition, plainText) ? 'dashes' : false);
|
|
2791
|
+
const units = prepareUnits(buildAllUnits(spans, fonts, letterSpacingPx, vertical, route), composition, letterSpacingPx, options?.labelLength);
|
|
2716
2792
|
// A bibliography label's column (#290).
|
|
2717
2793
|
if (options?.labelColumnPx !== undefined) {
|
|
2718
2794
|
setLabelTabs(units, (u) => u.token?.labelTab, options.labelColumnPx, (u, w) => {
|