postext 1.8.5 → 1.9.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/__bench__/cjkChapter.bench.test.d.ts +2 -0
- package/dist/__bench__/cjkChapter.bench.test.d.ts.map +1 -0
- package/dist/__bench__/cjkChapter.bench.test.js +71 -0
- package/dist/__bench__/cjkChapter.bench.test.js.map +1 -0
- package/dist/__tests__/bundle.test.js +16 -0
- package/dist/__tests__/bundle.test.js.map +1 -1
- package/dist/__tests__/canvasDirection.test.d.ts +2 -0
- package/dist/__tests__/canvasDirection.test.d.ts.map +1 -0
- package/dist/__tests__/canvasDirection.test.js +45 -0
- package/dist/__tests__/canvasDirection.test.js.map +1 -0
- package/dist/__tests__/chineseLocale.test.d.ts +2 -0
- package/dist/__tests__/chineseLocale.test.d.ts.map +1 -0
- package/dist/__tests__/chineseLocale.test.js +253 -0
- package/dist/__tests__/chineseLocale.test.js.map +1 -0
- package/dist/__tests__/chineseNumbering.test.d.ts +2 -0
- package/dist/__tests__/chineseNumbering.test.d.ts.map +1 -0
- package/dist/__tests__/chineseNumbering.test.js +376 -0
- package/dist/__tests__/chineseNumbering.test.js.map +1 -0
- package/dist/__tests__/cjk/annotations.test.d.ts +2 -0
- package/dist/__tests__/cjk/annotations.test.d.ts.map +1 -0
- package/dist/__tests__/cjk/annotations.test.js +483 -0
- package/dist/__tests__/cjk/annotations.test.js.map +1 -0
- package/dist/__tests__/cjk/annotationsRender.test.d.ts +2 -0
- package/dist/__tests__/cjk/annotationsRender.test.d.ts.map +1 -0
- package/dist/__tests__/cjk/annotationsRender.test.js +263 -0
- package/dist/__tests__/cjk/annotationsRender.test.js.map +1 -0
- package/dist/__tests__/cjk/composer.test.d.ts +2 -0
- package/dist/__tests__/cjk/composer.test.d.ts.map +1 -0
- package/dist/__tests__/cjk/composer.test.js +237 -0
- package/dist/__tests__/cjk/composer.test.js.map +1 -0
- package/dist/__tests__/cjk/composerEdges.test.d.ts +2 -0
- package/dist/__tests__/cjk/composerEdges.test.d.ts.map +1 -0
- package/dist/__tests__/cjk/composerEdges.test.js +352 -0
- package/dist/__tests__/cjk/composerEdges.test.js.map +1 -0
- package/dist/__tests__/cjk/dashRule.test.d.ts +2 -0
- package/dist/__tests__/cjk/dashRule.test.d.ts.map +1 -0
- package/dist/__tests__/cjk/dashRule.test.js +261 -0
- package/dist/__tests__/cjk/dashRule.test.js.map +1 -0
- package/dist/__tests__/cjk/fuzz.test.d.ts +2 -0
- package/dist/__tests__/cjk/fuzz.test.d.ts.map +1 -0
- package/dist/__tests__/cjk/fuzz.test.js +102 -0
- package/dist/__tests__/cjk/fuzz.test.js.map +1 -0
- package/dist/__tests__/cjk/grid.test.d.ts +2 -0
- package/dist/__tests__/cjk/grid.test.d.ts.map +1 -0
- package/dist/__tests__/cjk/grid.test.js +261 -0
- package/dist/__tests__/cjk/grid.test.js.map +1 -0
- package/dist/__tests__/cjk/justifyRender.test.d.ts +2 -0
- package/dist/__tests__/cjk/justifyRender.test.d.ts.map +1 -0
- package/dist/__tests__/cjk/justifyRender.test.js +139 -0
- package/dist/__tests__/cjk/justifyRender.test.js.map +1 -0
- package/dist/__tests__/cjk/latinFastPath.test.d.ts +2 -0
- package/dist/__tests__/cjk/latinFastPath.test.d.ts.map +1 -0
- package/dist/__tests__/cjk/latinFastPath.test.js +208 -0
- package/dist/__tests__/cjk/latinFastPath.test.js.map +1 -0
- package/dist/__tests__/cjk/markCutsLatin.test.d.ts +2 -0
- package/dist/__tests__/cjk/markCutsLatin.test.d.ts.map +1 -0
- package/dist/__tests__/cjk/markCutsLatin.test.js +69 -0
- package/dist/__tests__/cjk/markCutsLatin.test.js.map +1 -0
- package/dist/__tests__/cjk/markRuns.test.d.ts +2 -0
- package/dist/__tests__/cjk/markRuns.test.d.ts.map +1 -0
- package/dist/__tests__/cjk/markRuns.test.js +347 -0
- package/dist/__tests__/cjk/markRuns.test.js.map +1 -0
- package/dist/__tests__/cjk/punctuation.test.d.ts +2 -0
- package/dist/__tests__/cjk/punctuation.test.d.ts.map +1 -0
- package/dist/__tests__/cjk/punctuation.test.js +440 -0
- package/dist/__tests__/cjk/punctuation.test.js.map +1 -0
- package/dist/__tests__/cjk/punctuationRender.test.d.ts +2 -0
- package/dist/__tests__/cjk/punctuationRender.test.d.ts.map +1 -0
- package/dist/__tests__/cjk/punctuationRender.test.js +135 -0
- package/dist/__tests__/cjk/punctuationRender.test.js.map +1 -0
- package/dist/__tests__/cjk/rubyDescenders.test.d.ts +2 -0
- package/dist/__tests__/cjk/rubyDescenders.test.d.ts.map +1 -0
- package/dist/__tests__/cjk/rubyDescenders.test.js +77 -0
- package/dist/__tests__/cjk/rubyDescenders.test.js.map +1 -0
- package/dist/__tests__/cjk/runt.test.d.ts +2 -0
- package/dist/__tests__/cjk/runt.test.d.ts.map +1 -0
- package/dist/__tests__/cjk/runt.test.js +103 -0
- package/dist/__tests__/cjk/runt.test.js.map +1 -0
- package/dist/__tests__/cjk/sharedMarks.test.d.ts +2 -0
- package/dist/__tests__/cjk/sharedMarks.test.d.ts.map +1 -0
- package/dist/__tests__/cjk/sharedMarks.test.js +347 -0
- package/dist/__tests__/cjk/sharedMarks.test.js.map +1 -0
- package/dist/__tests__/cjk/uprightDots.test.d.ts +2 -0
- package/dist/__tests__/cjk/uprightDots.test.d.ts.map +1 -0
- package/dist/__tests__/cjk/uprightDots.test.js +47 -0
- package/dist/__tests__/cjk/uprightDots.test.js.map +1 -0
- package/dist/__tests__/cjk/wordJoiner.test.d.ts +2 -0
- package/dist/__tests__/cjk/wordJoiner.test.d.ts.map +1 -0
- package/dist/__tests__/cjk/wordJoiner.test.js +47 -0
- package/dist/__tests__/cjk/wordJoiner.test.js.map +1 -0
- package/dist/__tests__/cjk/zhuyinTones.test.d.ts +2 -0
- package/dist/__tests__/cjk/zhuyinTones.test.d.ts.map +1 -0
- package/dist/__tests__/cjk/zhuyinTones.test.js +72 -0
- package/dist/__tests__/cjk/zhuyinTones.test.js.map +1 -0
- package/dist/__tests__/contentLocale.test.d.ts +2 -0
- package/dist/__tests__/contentLocale.test.d.ts.map +1 -0
- package/dist/__tests__/contentLocale.test.js +167 -0
- package/dist/__tests__/contentLocale.test.js.map +1 -0
- package/dist/__tests__/defaults/cjk.test.d.ts +2 -0
- package/dist/__tests__/defaults/cjk.test.d.ts.map +1 -0
- package/dist/__tests__/defaults/cjk.test.js +70 -0
- package/dist/__tests__/defaults/cjk.test.js.map +1 -0
- package/dist/__tests__/design/designTextRender.test.js +31 -0
- package/dist/__tests__/design/designTextRender.test.js.map +1 -1
- package/dist/__tests__/design/imageAltText.test.d.ts +2 -0
- package/dist/__tests__/design/imageAltText.test.d.ts.map +1 -0
- package/dist/__tests__/design/imageAltText.test.js +126 -0
- package/dist/__tests__/design/imageAltText.test.js.map +1 -0
- package/dist/__tests__/exports.test.js +61 -0
- package/dist/__tests__/exports.test.js.map +1 -1
- package/dist/__tests__/headingLetterSpacing.test.js +1 -1
- package/dist/__tests__/headingLetterSpacing.test.js.map +1 -1
- package/dist/__tests__/indexChinese.test.d.ts +2 -0
- package/dist/__tests__/indexChinese.test.d.ts.map +1 -0
- package/dist/__tests__/indexChinese.test.js +190 -0
- package/dist/__tests__/indexChinese.test.js.map +1 -0
- package/dist/__tests__/parse/annotations.test.d.ts +2 -0
- package/dist/__tests__/parse/annotations.test.d.ts.map +1 -0
- package/dist/__tests__/parse/annotations.test.js +175 -0
- package/dist/__tests__/parse/annotations.test.js.map +1 -0
- package/dist/__tests__/parse/attrQuoting.test.js +10 -8
- package/dist/__tests__/parse/attrQuoting.test.js.map +1 -1
- package/dist/__tests__/parse/chineseText.test.d.ts +2 -0
- package/dist/__tests__/parse/chineseText.test.d.ts.map +1 -0
- package/dist/__tests__/parse/chineseText.test.js +352 -0
- package/dist/__tests__/parse/chineseText.test.js.map +1 -0
- package/dist/__tests__/parts.test.js +25 -0
- package/dist/__tests__/parts.test.js.map +1 -1
- package/dist/__tests__/pipeline/colonListRoom.test.js +20 -0
- package/dist/__tests__/pipeline/colonListRoom.test.js.map +1 -1
- package/dist/__tests__/presets/hongloumeng.test.d.ts +2 -0
- package/dist/__tests__/presets/hongloumeng.test.d.ts.map +1 -0
- package/dist/__tests__/presets/hongloumeng.test.js +484 -0
- package/dist/__tests__/presets/hongloumeng.test.js.map +1 -0
- package/dist/__tests__/vertical/canvasPaint.test.d.ts +2 -0
- package/dist/__tests__/vertical/canvasPaint.test.d.ts.map +1 -0
- package/dist/__tests__/vertical/canvasPaint.test.js +229 -0
- package/dist/__tests__/vertical/canvasPaint.test.js.map +1 -0
- package/dist/__tests__/vertical/compositionPaint.test.d.ts +2 -0
- package/dist/__tests__/vertical/compositionPaint.test.d.ts.map +1 -0
- package/dist/__tests__/vertical/compositionPaint.test.js +538 -0
- package/dist/__tests__/vertical/compositionPaint.test.js.map +1 -0
- package/dist/__tests__/vertical/geometry.test.d.ts +2 -0
- package/dist/__tests__/vertical/geometry.test.d.ts.map +1 -0
- package/dist/__tests__/vertical/geometry.test.js +276 -0
- package/dist/__tests__/vertical/geometry.test.js.map +1 -0
- package/dist/__tests__/vertical/htmlSmoke.test.d.ts +2 -0
- package/dist/__tests__/vertical/htmlSmoke.test.d.ts.map +1 -0
- package/dist/__tests__/vertical/htmlSmoke.test.js +25 -0
- package/dist/__tests__/vertical/htmlSmoke.test.js.map +1 -0
- package/dist/__tests__/vertical/htmlTurnedCells.test.d.ts +2 -0
- package/dist/__tests__/vertical/htmlTurnedCells.test.d.ts.map +1 -0
- package/dist/__tests__/vertical/htmlTurnedCells.test.js +99 -0
- package/dist/__tests__/vertical/htmlTurnedCells.test.js.map +1 -0
- package/dist/__tests__/vertical/htmlVertical.test.d.ts +2 -0
- package/dist/__tests__/vertical/htmlVertical.test.d.ts.map +1 -0
- package/dist/__tests__/vertical/htmlVertical.test.js +145 -0
- package/dist/__tests__/vertical/htmlVertical.test.js.map +1 -0
- package/dist/__tests__/vertical/lineAxis.test.d.ts +2 -0
- package/dist/__tests__/vertical/lineAxis.test.d.ts.map +1 -0
- package/dist/__tests__/vertical/lineAxis.test.js +128 -0
- package/dist/__tests__/vertical/lineAxis.test.js.map +1 -0
- package/dist/__tests__/vertical/measurePaint.test.d.ts +2 -0
- package/dist/__tests__/vertical/measurePaint.test.d.ts.map +1 -0
- package/dist/__tests__/vertical/measurePaint.test.js +259 -0
- package/dist/__tests__/vertical/measurePaint.test.js.map +1 -0
- package/dist/__tests__/vertical/orientation.test.d.ts +2 -0
- package/dist/__tests__/vertical/orientation.test.d.ts.map +1 -0
- package/dist/__tests__/vertical/orientation.test.js +153 -0
- package/dist/__tests__/vertical/orientation.test.js.map +1 -0
- package/dist/__tests__/vertical/stub.d.ts +8 -0
- package/dist/__tests__/vertical/stub.d.ts.map +1 -0
- package/dist/__tests__/vertical/stub.js +37 -0
- package/dist/__tests__/vertical/stub.js.map +1 -0
- package/dist/__tests__/vertical/tateChuYoko.test.d.ts +2 -0
- package/dist/__tests__/vertical/tateChuYoko.test.d.ts.map +1 -0
- package/dist/__tests__/vertical/tateChuYoko.test.js +270 -0
- package/dist/__tests__/vertical/tateChuYoko.test.js.map +1 -0
- package/dist/__tests__/vertical/uprightResources.test.d.ts +2 -0
- package/dist/__tests__/vertical/uprightResources.test.d.ts.map +1 -0
- package/dist/__tests__/vertical/uprightResources.test.js +182 -0
- package/dist/__tests__/vertical/uprightResources.test.js.map +1 -0
- package/dist/__tests__/vertical/verticalDesignText.test.d.ts +2 -0
- package/dist/__tests__/vertical/verticalDesignText.test.d.ts.map +1 -0
- package/dist/__tests__/vertical/verticalDesignText.test.js +190 -0
- package/dist/__tests__/vertical/verticalDesignText.test.js.map +1 -0
- package/dist/__tests__/vertical/verticalSpans.d.ts +25 -0
- package/dist/__tests__/vertical/verticalSpans.d.ts.map +1 -0
- package/dist/__tests__/vertical/verticalSpans.js +39 -0
- package/dist/__tests__/vertical/verticalSpans.js.map +1 -0
- package/dist/__tests__/vertical/verticalTwins.test.d.ts +2 -0
- package/dist/__tests__/vertical/verticalTwins.test.d.ts.map +1 -0
- package/dist/__tests__/vertical/verticalTwins.test.js +71 -0
- package/dist/__tests__/vertical/verticalTwins.test.js.map +1 -0
- package/dist/bundle/adapters.d.ts +14 -5
- package/dist/bundle/adapters.d.ts.map +1 -1
- package/dist/bundle/adapters.js +4 -3
- package/dist/bundle/adapters.js.map +1 -1
- package/dist/bundle/codec.d.ts.map +1 -1
- package/dist/bundle/codec.js +27 -4
- package/dist/bundle/codec.js.map +1 -1
- package/dist/bundle/index.d.ts +1 -1
- package/dist/bundle/index.d.ts.map +1 -1
- package/dist/bundle/manifest.d.ts +6 -4
- package/dist/bundle/manifest.d.ts.map +1 -1
- package/dist/bundle/manifest.js +31 -32
- package/dist/bundle/manifest.js.map +1 -1
- package/dist/bundle/types.d.ts +7 -2
- package/dist/bundle/types.d.ts.map +1 -1
- package/dist/canvas-backend/annotations.d.ts +31 -0
- package/dist/canvas-backend/annotations.d.ts.map +1 -0
- package/dist/canvas-backend/annotations.js +120 -0
- package/dist/canvas-backend/annotations.js.map +1 -0
- package/dist/canvas-backend/blockRender.d.ts.map +1 -1
- package/dist/canvas-backend/blockRender.js +195 -15
- package/dist/canvas-backend/blockRender.js.map +1 -1
- package/dist/canvas-backend/decorations.d.ts +5 -0
- package/dist/canvas-backend/decorations.d.ts.map +1 -1
- package/dist/canvas-backend/decorations.js +27 -0
- package/dist/canvas-backend/decorations.js.map +1 -1
- package/dist/canvas-backend/headerFooter.d.ts.map +1 -1
- package/dist/canvas-backend/headerFooter.js +32 -16
- package/dist/canvas-backend/headerFooter.js.map +1 -1
- package/dist/canvas-backend/index.d.ts +2 -0
- package/dist/canvas-backend/index.d.ts.map +1 -1
- package/dist/canvas-backend/index.js +62 -2
- package/dist/canvas-backend/index.js.map +1 -1
- package/dist/canvas-backend/renderResourceBlock.d.ts.map +1 -1
- package/dist/canvas-backend/renderResourceBlock.js +42 -5
- package/dist/canvas-backend/renderResourceBlock.js.map +1 -1
- package/dist/canvas-backend/segmentText.d.ts +23 -0
- package/dist/canvas-backend/segmentText.d.ts.map +1 -0
- package/dist/canvas-backend/segmentText.js +41 -0
- package/dist/canvas-backend/segmentText.js.map +1 -0
- package/dist/canvas-backend/verticalText.d.ts +113 -0
- package/dist/canvas-backend/verticalText.d.ts.map +1 -0
- package/dist/canvas-backend/verticalText.js +437 -0
- package/dist/canvas-backend/verticalText.js.map +1 -0
- package/dist/chineseNumerals.d.ts +39 -0
- package/dist/chineseNumerals.d.ts.map +1 -0
- package/dist/chineseNumerals.js +192 -0
- package/dist/chineseNumerals.js.map +1 -0
- package/dist/cjkMarks.d.ts +61 -0
- package/dist/cjkMarks.d.ts.map +1 -0
- package/dist/cjkMarks.js +441 -0
- package/dist/cjkMarks.js.map +1 -0
- package/dist/columnClip.d.ts +13 -4
- package/dist/columnClip.d.ts.map +1 -1
- package/dist/columnClip.js +33 -5
- package/dist/columnClip.js.map +1 -1
- package/dist/configWarnings.d.ts.map +1 -1
- package/dist/configWarnings.js +18 -3
- package/dist/configWarnings.js.map +1 -1
- package/dist/defaults/bodyText.d.ts +4 -1
- package/dist/defaults/bodyText.d.ts.map +1 -1
- package/dist/defaults/bodyText.js +27 -5
- package/dist/defaults/bodyText.js.map +1 -1
- package/dist/defaults/calloutStyles.js +1 -1
- package/dist/defaults/calloutStyles.js.map +1 -1
- package/dist/defaults/captionStyle.d.ts.map +1 -1
- package/dist/defaults/captionStyle.js +14 -0
- package/dist/defaults/captionStyle.js.map +1 -1
- package/dist/defaults/cjk.d.ts +33 -0
- package/dist/defaults/cjk.d.ts.map +1 -0
- package/dist/defaults/cjk.js +234 -0
- package/dist/defaults/cjk.js.map +1 -0
- package/dist/defaults/headerFooter.d.ts.map +1 -1
- package/dist/defaults/headerFooter.js +2 -0
- package/dist/defaults/headerFooter.js.map +1 -1
- package/dist/defaults/headingStyles.d.ts.map +1 -1
- package/dist/defaults/headingStyles.js +4 -0
- package/dist/defaults/headingStyles.js.map +1 -1
- package/dist/defaults/headings.d.ts.map +1 -1
- package/dist/defaults/headings.js +13 -6
- package/dist/defaults/headings.js.map +1 -1
- package/dist/defaults/index.d.ts +1 -0
- package/dist/defaults/index.d.ts.map +1 -1
- package/dist/defaults/index.js +10 -1
- package/dist/defaults/index.js.map +1 -1
- package/dist/defaults/indexConfig.d.ts +2 -1
- package/dist/defaults/indexConfig.d.ts.map +1 -1
- package/dist/defaults/indexConfig.js +5 -0
- package/dist/defaults/indexConfig.js.map +1 -1
- package/dist/defaults/layout.d.ts.map +1 -1
- package/dist/defaults/layout.js +7 -0
- package/dist/defaults/layout.js.map +1 -1
- package/dist/defaults/orderedLists.d.ts +5 -2
- package/dist/defaults/orderedLists.d.ts.map +1 -1
- package/dist/defaults/orderedLists.js +20 -5
- package/dist/defaults/orderedLists.js.map +1 -1
- package/dist/defaults/page.d.ts +8 -2
- package/dist/defaults/page.d.ts.map +1 -1
- package/dist/defaults/page.js +24 -7
- package/dist/defaults/page.js.map +1 -1
- package/dist/defaults/resourceTypes.d.ts +3 -3
- package/dist/defaults/resourceTypes.d.ts.map +1 -1
- package/dist/defaults/resourceTypes.js +23 -9
- package/dist/defaults/resourceTypes.js.map +1 -1
- package/dist/defaults/tableStyle.d.ts.map +1 -1
- package/dist/defaults/tableStyle.js +8 -5
- package/dist/defaults/tableStyle.js.map +1 -1
- package/dist/design/layout.d.ts +33 -0
- package/dist/design/layout.d.ts.map +1 -1
- package/dist/design/layout.js +124 -18
- package/dist/design/layout.js.map +1 -1
- package/dist/design/placeholders.d.ts.map +1 -1
- package/dist/design/placeholders.js +5 -1
- package/dist/design/placeholders.js.map +1 -1
- package/dist/design/richText.d.ts +24 -4
- package/dist/design/richText.d.ts.map +1 -1
- package/dist/design/richText.js +77 -16
- package/dist/design/richText.js.map +1 -1
- package/dist/html-backend.d.ts.map +1 -1
- package/dist/html-backend.js +635 -25
- package/dist/html-backend.js.map +1 -1
- package/dist/htmlAnnotations.d.ts +29 -0
- package/dist/htmlAnnotations.d.ts.map +1 -0
- package/dist/htmlAnnotations.js +86 -0
- package/dist/htmlAnnotations.js.map +1 -0
- package/dist/hyphenate.js +2 -1
- package/dist/hyphenate.js.map +1 -1
- package/dist/index.d.ts +28 -14
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +16 -8
- package/dist/index.js.map +1 -1
- package/dist/knuthPlass/pretextAdapter.d.ts +4 -1
- package/dist/knuthPlass/pretextAdapter.d.ts.map +1 -1
- package/dist/knuthPlass/pretextAdapter.js +9 -5
- package/dist/knuthPlass/pretextAdapter.js.map +1 -1
- package/dist/knuthPlass/richAdapter.d.ts +15 -2
- package/dist/knuthPlass/richAdapter.d.ts.map +1 -1
- package/dist/knuthPlass/richAdapter.js +16 -6
- package/dist/knuthPlass/richAdapter.js.map +1 -1
- package/dist/knuthPlass/tracking.d.ts +1 -1
- package/dist/knuthPlass/tracking.d.ts.map +1 -1
- package/dist/knuthPlass/tracking.js +4 -3
- package/dist/knuthPlass/tracking.js.map +1 -1
- package/dist/knuthPlass/types.d.ts +3 -0
- package/dist/knuthPlass/types.d.ts.map +1 -1
- package/dist/lineInk.d.ts +13 -0
- package/dist/lineInk.d.ts.map +1 -1
- package/dist/lineInk.js +28 -1
- package/dist/lineInk.js.map +1 -1
- package/dist/locale.d.ts +91 -3
- package/dist/locale.d.ts.map +1 -1
- package/dist/locale.js +245 -1
- package/dist/locale.js.map +1 -1
- package/dist/looseLines.d.ts +11 -1
- package/dist/looseLines.d.ts.map +1 -1
- package/dist/looseLines.js +26 -1
- package/dist/looseLines.js.map +1 -1
- package/dist/measure/cache.d.ts.map +1 -1
- package/dist/measure/cache.js +51 -3
- package/dist/measure/cache.js.map +1 -1
- package/dist/measure/canvas.d.ts +25 -0
- package/dist/measure/canvas.d.ts.map +1 -1
- package/dist/measure/canvas.js +90 -1
- package/dist/measure/canvas.js.map +1 -1
- package/dist/measure/cjk.d.ts +8 -13
- package/dist/measure/cjk.d.ts.map +1 -1
- package/dist/measure/cjk.js +29 -53
- package/dist/measure/cjk.js.map +1 -1
- package/dist/measure/cjkAnnotate.d.ts +96 -0
- package/dist/measure/cjkAnnotate.d.ts.map +1 -0
- package/dist/measure/cjkAnnotate.js +237 -0
- package/dist/measure/cjkAnnotate.js.map +1 -0
- package/dist/measure/cjkClasses.d.ts +133 -0
- package/dist/measure/cjkClasses.d.ts.map +1 -0
- package/dist/measure/cjkClasses.js +273 -0
- package/dist/measure/cjkClasses.js.map +1 -0
- package/dist/measure/cjkCompose.d.ts +86 -0
- package/dist/measure/cjkCompose.d.ts.map +1 -0
- package/dist/measure/cjkCompose.js +2022 -0
- package/dist/measure/cjkCompose.js.map +1 -0
- package/dist/measure/cjkPunctuation.d.ts +248 -0
- package/dist/measure/cjkPunctuation.d.ts.map +1 -0
- package/dist/measure/cjkPunctuation.js +492 -0
- package/dist/measure/cjkPunctuation.js.map +1 -0
- package/dist/measure/graphemes.d.ts +13 -0
- package/dist/measure/graphemes.d.ts.map +1 -0
- package/dist/measure/graphemes.js +38 -0
- package/dist/measure/graphemes.js.map +1 -0
- package/dist/measure/index.d.ts +3 -0
- package/dist/measure/index.d.ts.map +1 -1
- package/dist/measure/index.js +2 -0
- package/dist/measure/index.js.map +1 -1
- package/dist/measure/links.d.ts +6 -2
- package/dist/measure/links.d.ts.map +1 -1
- package/dist/measure/links.js +15 -5
- package/dist/measure/links.js.map +1 -1
- package/dist/measure/markCuts.d.ts +37 -0
- package/dist/measure/markCuts.d.ts.map +1 -0
- package/dist/measure/markCuts.js +77 -0
- package/dist/measure/markCuts.js.map +1 -0
- package/dist/measure/plain.d.ts.map +1 -1
- package/dist/measure/plain.js +33 -11
- package/dist/measure/plain.js.map +1 -1
- package/dist/measure/rich.d.ts +88 -1
- package/dist/measure/rich.d.ts.map +1 -1
- package/dist/measure/rich.js +233 -111
- package/dist/measure/rich.js.map +1 -1
- package/dist/measure/rubyLift.d.ts +11 -0
- package/dist/measure/rubyLift.d.ts.map +1 -0
- package/dist/measure/rubyLift.js +57 -0
- package/dist/measure/rubyLift.js.map +1 -0
- package/dist/measure/spaces.d.ts +12 -2
- package/dist/measure/spaces.d.ts.map +1 -1
- package/dist/measure/spaces.js +21 -7
- package/dist/measure/spaces.js.map +1 -1
- package/dist/measure/types.d.ts +20 -1
- package/dist/measure/types.d.ts.map +1 -1
- package/dist/measure/types.js.map +1 -1
- package/dist/measure/vertical.d.ts +104 -0
- package/dist/measure/vertical.d.ts.map +1 -0
- package/dist/measure/vertical.js +184 -0
- package/dist/measure/vertical.js.map +1 -0
- package/dist/numberWords.d.ts +3 -10
- package/dist/numberWords.d.ts.map +1 -1
- package/dist/numberWords.js +21 -9
- package/dist/numberWords.js.map +1 -1
- package/dist/numbering.d.ts +23 -5
- package/dist/numbering.d.ts.map +1 -1
- package/dist/numbering.js +99 -14
- package/dist/numbering.js.map +1 -1
- package/dist/parse/annotations.d.ts +101 -0
- package/dist/parse/annotations.d.ts.map +1 -0
- package/dist/parse/annotations.js +556 -0
- package/dist/parse/annotations.js.map +1 -0
- package/dist/parse/attrs.d.ts +48 -1
- package/dist/parse/attrs.d.ts.map +1 -1
- package/dist/parse/attrs.js +121 -8
- package/dist/parse/attrs.js.map +1 -1
- package/dist/parse/blockParser.d.ts.map +1 -1
- package/dist/parse/blockParser.js +50 -24
- package/dist/parse/blockParser.js.map +1 -1
- package/dist/parse/index.d.ts +3 -1
- package/dist/parse/index.d.ts.map +1 -1
- package/dist/parse/index.js +1 -0
- package/dist/parse/index.js.map +1 -1
- package/dist/parse/injectSpans.d.ts +3 -1
- package/dist/parse/injectSpans.d.ts.map +1 -1
- package/dist/parse/injectSpans.js +29 -8
- package/dist/parse/injectSpans.js.map +1 -1
- package/dist/parse/inlineFormatting.d.ts +38 -6
- package/dist/parse/inlineFormatting.d.ts.map +1 -1
- package/dist/parse/inlineFormatting.js +139 -26
- package/dist/parse/inlineFormatting.js.map +1 -1
- package/dist/parse/inlineSnippet.d.ts +2 -1
- package/dist/parse/inlineSnippet.d.ts.map +1 -1
- package/dist/parse/inlineSnippet.js +6 -2
- package/dist/parse/inlineSnippet.js.map +1 -1
- package/dist/parse/orientationMarks.d.ts +49 -0
- package/dist/parse/orientationMarks.d.ts.map +1 -0
- package/dist/parse/orientationMarks.js +138 -0
- package/dist/parse/orientationMarks.js.map +1 -0
- package/dist/parse/softBreaks.d.ts +56 -0
- package/dist/parse/softBreaks.d.ts.map +1 -0
- package/dist/parse/softBreaks.js +271 -0
- package/dist/parse/softBreaks.js.map +1 -0
- package/dist/parse/sourceMapping.d.ts.map +1 -1
- package/dist/parse/sourceMapping.js +41 -0
- package/dist/parse/sourceMapping.js.map +1 -1
- package/dist/parse/types.d.ts +84 -0
- package/dist/parse/types.d.ts.map +1 -1
- package/dist/pipeline/annotations.d.ts +56 -0
- package/dist/pipeline/annotations.d.ts.map +1 -0
- package/dist/pipeline/annotations.js +181 -0
- package/dist/pipeline/annotations.js.map +1 -0
- package/dist/pipeline/build.d.ts.map +1 -1
- package/dist/pipeline/build.js +158 -47
- package/dist/pipeline/build.js.map +1 -1
- package/dist/pipeline/buildBlockKind.d.ts +3 -0
- package/dist/pipeline/buildBlockKind.d.ts.map +1 -1
- package/dist/pipeline/buildBlockKind.js +5 -3
- package/dist/pipeline/buildBlockKind.js.map +1 -1
- package/dist/pipeline/buildHelpers.d.ts +36 -6
- package/dist/pipeline/buildHelpers.d.ts.map +1 -1
- package/dist/pipeline/buildHelpers.js +55 -8
- package/dist/pipeline/buildHelpers.js.map +1 -1
- package/dist/pipeline/buildMeasurement.d.ts +4 -0
- package/dist/pipeline/buildMeasurement.d.ts.map +1 -1
- package/dist/pipeline/buildMeasurement.js +3 -1
- package/dist/pipeline/buildMeasurement.js.map +1 -1
- package/dist/pipeline/calloutLayout.d.ts.map +1 -1
- package/dist/pipeline/calloutLayout.js +25 -11
- package/dist/pipeline/calloutLayout.js.map +1 -1
- package/dist/pipeline/cjkGrid.d.ts +133 -0
- package/dist/pipeline/cjkGrid.d.ts.map +1 -0
- package/dist/pipeline/cjkGrid.js +191 -0
- package/dist/pipeline/cjkGrid.js.map +1 -0
- package/dist/pipeline/config.d.ts +13 -9
- package/dist/pipeline/config.d.ts.map +1 -1
- package/dist/pipeline/config.js +43 -18
- package/dist/pipeline/config.js.map +1 -1
- package/dist/pipeline/contentWarnings.d.ts +10 -0
- package/dist/pipeline/contentWarnings.d.ts.map +1 -1
- package/dist/pipeline/contentWarnings.js +174 -2
- package/dist/pipeline/contentWarnings.js.map +1 -1
- package/dist/pipeline/floatPlacement.d.ts +9 -3
- package/dist/pipeline/floatPlacement.d.ts.map +1 -1
- package/dist/pipeline/floatPlacement.js +17 -6
- package/dist/pipeline/floatPlacement.js.map +1 -1
- package/dist/pipeline/headerFooter.d.ts +5 -2
- package/dist/pipeline/headerFooter.d.ts.map +1 -1
- package/dist/pipeline/headerFooter.js +123 -28
- package/dist/pipeline/headerFooter.js.map +1 -1
- package/dist/pipeline/headingDesignCuts.d.ts.map +1 -1
- package/dist/pipeline/headingDesignCuts.js +3 -1
- package/dist/pipeline/headingDesignCuts.js.map +1 -1
- package/dist/pipeline/headingStyles.d.ts +9 -3
- package/dist/pipeline/headingStyles.d.ts.map +1 -1
- package/dist/pipeline/headingStyles.js +23 -5
- package/dist/pipeline/headingStyles.js.map +1 -1
- package/dist/pipeline/indexDirective.d.ts.map +1 -1
- package/dist/pipeline/indexDirective.js +64 -20
- package/dist/pipeline/indexDirective.js.map +1 -1
- package/dist/pipeline/indexGroups.d.ts +55 -0
- package/dist/pipeline/indexGroups.d.ts.map +1 -0
- package/dist/pipeline/indexGroups.js +151 -0
- package/dist/pipeline/indexGroups.js.map +1 -0
- package/dist/pipeline/lists.d.ts +17 -0
- package/dist/pipeline/lists.d.ts.map +1 -1
- package/dist/pipeline/lists.js +43 -51
- package/dist/pipeline/lists.js.map +1 -1
- package/dist/pipeline/measureContentBlock.d.ts +3 -0
- package/dist/pipeline/measureContentBlock.d.ts.map +1 -1
- package/dist/pipeline/measureContentBlock.js +31 -4
- package/dist/pipeline/measureContentBlock.js.map +1 -1
- package/dist/pipeline/outline.d.ts.map +1 -1
- package/dist/pipeline/outline.js +13 -8
- package/dist/pipeline/outline.js.map +1 -1
- package/dist/pipeline/parts.d.ts +6 -3
- package/dist/pipeline/parts.d.ts.map +1 -1
- package/dist/pipeline/parts.js +28 -5
- package/dist/pipeline/parts.js.map +1 -1
- package/dist/pipeline/placeholders.d.ts +11 -0
- package/dist/pipeline/placeholders.d.ts.map +1 -1
- package/dist/pipeline/placeholders.js +48 -18
- package/dist/pipeline/placeholders.js.map +1 -1
- package/dist/pipeline/placement.d.ts +10 -6
- package/dist/pipeline/placement.d.ts.map +1 -1
- package/dist/pipeline/placement.js +33 -16
- package/dist/pipeline/placement.js.map +1 -1
- package/dist/pipeline/resourceLayout.d.ts +18 -1
- package/dist/pipeline/resourceLayout.d.ts.map +1 -1
- package/dist/pipeline/resourceLayout.js +109 -21
- package/dist/pipeline/resourceLayout.js.map +1 -1
- package/dist/pipeline/toc.d.ts.map +1 -1
- package/dist/pipeline/toc.js +6 -5
- package/dist/pipeline/toc.js.map +1 -1
- package/dist/pipeline/verticalMetrics.d.ts +14 -0
- package/dist/pipeline/verticalMetrics.d.ts.map +1 -0
- package/dist/pipeline/verticalMetrics.js +154 -0
- package/dist/pipeline/verticalMetrics.js.map +1 -0
- package/dist/types.d.ts +344 -13
- package/dist/types.d.ts.map +1 -1
- package/dist/vdt.d.ts +396 -6
- package/dist/vdt.d.ts.map +1 -1
- package/dist/vdt.js +49 -0
- package/dist/vdt.js.map +1 -1
- package/dist/writingMode.d.ts +156 -0
- package/dist/writingMode.d.ts.map +1 -0
- package/dist/writingMode.js +291 -0
- package/dist/writingMode.js.map +1 -0
- package/package.json +1 -1
package/dist/vdt.js
CHANGED
|
@@ -124,6 +124,55 @@ export function resourceBlockRectToPage(rb, rect) {
|
|
|
124
124
|
const b = resourceBlockToPage(rb, rect.x + rect.width, rect.y + rect.height);
|
|
125
125
|
return createBoundingBox(Math.min(a.x, b.x), Math.min(a.y, b.y), Math.abs(b.x - a.x), Math.abs(b.y - a.y));
|
|
126
126
|
}
|
|
127
|
+
/** Where the ideographic em box's centre sits above the alphabetic
|
|
128
|
+
* baseline, in ems, when the font was not measured: the value of every
|
|
129
|
+
* Source Han / Noto CJK face (em box from −0.12 to 0.88 em). */
|
|
130
|
+
export const DEFAULT_CENTRAL_BASELINE = 0.38;
|
|
131
|
+
/** Whether a page's flow is set vertically (`page.flow`). */
|
|
132
|
+
export function pageIsVertical(page) {
|
|
133
|
+
return page.flow !== undefined;
|
|
134
|
+
}
|
|
135
|
+
/** Map a point of a page's flow frame to page coordinates: the identity on
|
|
136
|
+
* a horizontal page, `(page.width − y, x)` on a vertical one. */
|
|
137
|
+
export function flowToPage(page, x, y) {
|
|
138
|
+
const r = page.flow?.rotation;
|
|
139
|
+
if (!r)
|
|
140
|
+
return { x, y };
|
|
141
|
+
return { x: r.originX - y, y: r.originY + x };
|
|
142
|
+
}
|
|
143
|
+
/** Map a page point into the page's flow frame (the inverse of
|
|
144
|
+
* {@link flowToPage}). */
|
|
145
|
+
export function pageToFlow(page, x, y) {
|
|
146
|
+
const r = page.flow?.rotation;
|
|
147
|
+
if (!r)
|
|
148
|
+
return { x, y };
|
|
149
|
+
return { x: y - r.originY, y: r.originX - x };
|
|
150
|
+
}
|
|
151
|
+
/** Map an axis-aligned rect of a page's flow frame to the page: width and
|
|
152
|
+
* height swap on a vertical page. */
|
|
153
|
+
export function flowRectToPage(page, rect) {
|
|
154
|
+
if (!page.flow)
|
|
155
|
+
return rect;
|
|
156
|
+
const a = flowToPage(page, rect.x, rect.y);
|
|
157
|
+
const b = flowToPage(page, rect.x + rect.width, rect.y + rect.height);
|
|
158
|
+
return createBoundingBox(Math.min(a.x, b.x), Math.min(a.y, b.y), Math.abs(b.x - a.x), Math.abs(b.y - a.y));
|
|
159
|
+
}
|
|
160
|
+
/** Map an axis-aligned page rect into the page's flow frame (the inverse
|
|
161
|
+
* of {@link flowRectToPage}). */
|
|
162
|
+
export function pageRectToFlow(page, rect) {
|
|
163
|
+
if (!page.flow)
|
|
164
|
+
return rect;
|
|
165
|
+
const a = pageToFlow(page, rect.x, rect.y);
|
|
166
|
+
const b = pageToFlow(page, rect.x + rect.width, rect.y + rect.height);
|
|
167
|
+
return createBoundingBox(Math.min(a.x, b.x), Math.min(a.y, b.y), Math.abs(b.x - a.x), Math.abs(b.y - a.y));
|
|
168
|
+
}
|
|
169
|
+
/** The flow frame of a vertical page `width` × `height` px (physical). */
|
|
170
|
+
export function verticalFlowFrame(width, height) {
|
|
171
|
+
return {
|
|
172
|
+
writingMode: 'vertical-rl',
|
|
173
|
+
rotation: { direction: 'cw', originX: width, originY: 0, width: height, height: width },
|
|
174
|
+
};
|
|
175
|
+
}
|
|
127
176
|
// ---------------------------------------------------------------------------
|
|
128
177
|
// Factory functions
|
|
129
178
|
// ---------------------------------------------------------------------------
|
package/dist/vdt.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vdt.js","sourceRoot":"","sources":["../src/vdt.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"vdt.js","sourceRoot":"","sources":["../src/vdt.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Glyph orientation in vertical text (`layout.writingMode: 'vertical-rl'`),
|
|
3
|
+
* one helper shared by every renderer, so the canvas, the PDF and the HTML
|
|
4
|
+
* output turn the same characters the same way.
|
|
5
|
+
*
|
|
6
|
+
* The flow of a vertical page is laid out as horizontal lines in a frame
|
|
7
|
+
* turned a quarter turn clockwise (`VDTPage.flow`). Text painted there
|
|
8
|
+
* "as is" comes out turned 90° clockwise — which is right for Latin words
|
|
9
|
+
* and long numbers (sideways, UAX #50 `R`) and wrong for Chinese
|
|
10
|
+
* characters, which stand upright, each in its own 1 em cell, turned back
|
|
11
|
+
* about the cell's centre. Punctuation takes the font's vertical form
|
|
12
|
+
* (OpenType `vert`) when a renderer can get it, else a fallback.
|
|
13
|
+
*
|
|
14
|
+
* Classes follow Unicode's `Vertical_Orientation` (UAX #50, data 18.0),
|
|
15
|
+
* with the Chinese rules on top (clreq Appendix A, GB/T 15834—2011 §5.2):
|
|
16
|
+
* - pause and stop marks (、。,.!?) and :; are never turned. A
|
|
17
|
+
* Simplified (mainland) font sets them in the upper right of the cell
|
|
18
|
+
* through `vert` (、。,. in the top-right corner, !?:; in the right
|
|
19
|
+
* half); Taiwan and Hong Kong fonts centre them and have no such form
|
|
20
|
+
* (their U+FE10–FE16 are the mainland shapes, so the vertical
|
|
21
|
+
* presentation forms must not be substituted there).
|
|
22
|
+
* - brackets and quotes take the vertical form, which is the horizontal
|
|
23
|
+
* glyph turned about the em box's centre when the font gives none;
|
|
24
|
+
* “ ” ‘ ’ in mainland text read as the corner brackets 『』「」
|
|
25
|
+
* (UAX #50 §3.2.4, the Hans vertical convention).
|
|
26
|
+
* - dashes, ellipses, the wave dash and the interpunct are turned about
|
|
27
|
+
* the em box's centre (Noto CJK gives —— a vertical form only with
|
|
28
|
+
* `fwid`): a dash is stretched to fill its cell. The mainland interpunct
|
|
29
|
+
* takes half a cell (clreq §5.1), the Taiwan and Hong Kong one
|
|
30
|
+
* a whole cell.
|
|
31
|
+
* - an apostrophe or an interpunct inside a Latin word ("don’t", "l·l")
|
|
32
|
+
* runs sideways with the word, as the composer keeps it in the word.
|
|
33
|
+
*
|
|
34
|
+
* The measurer and every renderer read the same runs ({@link
|
|
35
|
+
* verticalRuns}): what stands in a cell advances its cell (one em, half an
|
|
36
|
+
* em for the mainland interpunct), what runs sideways its horizontal width.
|
|
37
|
+
*/
|
|
38
|
+
import type { CjkRegion } from './types';
|
|
39
|
+
/** How a character is set in a vertical line.
|
|
40
|
+
* - `upright`: standing, centred in its cell (Han, kana, hangul,
|
|
41
|
+
* fullwidth letters, and the pause marks of Taiwan and Hong Kong).
|
|
42
|
+
* - `sideways`: turned 90° clockwise with the run it belongs to, keeping
|
|
43
|
+
* its horizontal advance (Latin, digits, most symbols).
|
|
44
|
+
* - `rotate`: turned 90° clockwise about the centre of its em box, in a
|
|
45
|
+
* cell of its own (dashes, ellipses, the interpunct).
|
|
46
|
+
* - `alternate`: the font's vertical form (`vert`); without one, the
|
|
47
|
+
* `fallback`: `rotate` (brackets, quotes) or `corner` (a mainland
|
|
48
|
+
* pause or stop mark moved to the top-right quadrant of its cell).
|
|
49
|
+
* - `tcy`: tate-chu-yoko (縱中橫): a short number (`cjk.uprightDigits`)
|
|
50
|
+
* or a `:tcy[…]` run set side by side in one upright cell, squeezed
|
|
51
|
+
* across when wider than the cell. */
|
|
52
|
+
export type VerticalOrientationKind = 'upright' | 'sideways' | 'rotate' | 'alternate' | 'tcy';
|
|
53
|
+
export interface VerticalGlyph {
|
|
54
|
+
orient: VerticalOrientationKind;
|
|
55
|
+
/** `alternate` only: what a renderer without the font's vertical forms
|
|
56
|
+
* does instead. */
|
|
57
|
+
fallback?: 'rotate' | 'corner';
|
|
58
|
+
/** The character a fallback paints instead of this one (“ → 『 in
|
|
59
|
+
* mainland text: the Hans vertical quote is the corner bracket). */
|
|
60
|
+
substitute?: string;
|
|
61
|
+
/** `rotate`: stretch the turned glyph along the line to fill its cell
|
|
62
|
+
* (a dash narrower than its em). */
|
|
63
|
+
stretch?: boolean;
|
|
64
|
+
/** `corner` fallback: where the upright glyph moves in its cell, in ems
|
|
65
|
+
* (`x` across the column, to the right; `y` along it, negative up).
|
|
66
|
+
* {@link CORNER_OFFSET_EM} when absent. */
|
|
67
|
+
offset?: {
|
|
68
|
+
x: number;
|
|
69
|
+
y: number;
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
/** Unicode `Vertical_Orientation` (UAX #50): `U` upright, `R` rotated,
|
|
73
|
+
* `Tu` / `Tr` a vertical glyph, else upright / rotated. */
|
|
74
|
+
export type UaxVerticalOrientation = 'U' | 'R' | 'Tu' | 'Tr';
|
|
75
|
+
/** A code point's Unicode `Vertical_Orientation`. */
|
|
76
|
+
export declare function uaxVerticalOrientation(cp: number): UaxVerticalOrientation;
|
|
77
|
+
/** Whether `text` holds a mark a vertical line turns in a cell of its own
|
|
78
|
+
* (`rotate`: a dash, an ellipsis, an interpunct, a wave dash), which a
|
|
79
|
+
* browser setting the text vertically advances by its horizontal width. */
|
|
80
|
+
export declare function holdsTurnedMark(text: string): boolean;
|
|
81
|
+
/** The dashes of `text` a vertical line stretches to fill their cell
|
|
82
|
+
* (`VerticalGlyph.stretch`), each once. */
|
|
83
|
+
export declare function stretchedDashesOf(text: string): string[];
|
|
84
|
+
/**
|
|
85
|
+
* How a grapheme is set in a vertical line of `region`'s Chinese (see the
|
|
86
|
+
* module comment). Reads the grapheme's first code point; a sequence with
|
|
87
|
+
* a combining mark or a variation selector follows its base.
|
|
88
|
+
*/
|
|
89
|
+
export declare function verticalOrientation(grapheme: string, region?: CjkRegion): VerticalGlyph;
|
|
90
|
+
/** Whether a grapheme stands in a cell of its own in vertical text (every
|
|
91
|
+
* orientation but `sideways`). */
|
|
92
|
+
export declare function isVerticalCell(grapheme: string, region?: CjkRegion): boolean;
|
|
93
|
+
/** Where a mainland 、。,. moves when the font gives no vertical form, in
|
|
94
|
+
* ems of the cell: right and up (a horizontal 。 sits in the bottom-left
|
|
95
|
+
* quadrant, the vertical one in the top-right). Measured against the
|
|
96
|
+
* `vert` glyphs of Noto Serif SC: within 0.07 em for 、。,.. !? and :;
|
|
97
|
+
* carry their own `offset` (half an em to the right, 0.08 and 0.22 em up),
|
|
98
|
+
* within 0.02 em of the font's. */
|
|
99
|
+
export declare const CORNER_OFFSET_EM: {
|
|
100
|
+
x: number;
|
|
101
|
+
y: number;
|
|
102
|
+
};
|
|
103
|
+
/** The size of a character's cell in a vertical line, in ems: half an em
|
|
104
|
+
* for the mainland interpunct (· ・, clreq §5.1), one em for
|
|
105
|
+
* every other character that stands in a cell. `cls`, when the caller has
|
|
106
|
+
* it, is the grapheme's `cjkClassOf`. */
|
|
107
|
+
export declare function verticalCellEms(grapheme: string, region?: CjkRegion, cls?: import("./measure/cjkClasses").CjkClass): number;
|
|
108
|
+
/** One run of a vertical line: consecutive graphemes set alike. A
|
|
109
|
+
* `sideways` run holds a whole Latin word or number; every other run is
|
|
110
|
+
* one grapheme in a cell `cell` ems long. */
|
|
111
|
+
export interface VerticalRun {
|
|
112
|
+
text: string;
|
|
113
|
+
glyph: VerticalGlyph;
|
|
114
|
+
/** The cell's length along the line, in ems (not on a sideways run). */
|
|
115
|
+
cell?: number;
|
|
116
|
+
}
|
|
117
|
+
/** The numbers up to how many ASCII digits are set side by side in one
|
|
118
|
+
* upright cell (tate-chu-yoko) in vertical text: `cjk.uprightDigits`, 0
|
|
119
|
+
* (none), 2 (the default), 3 or 4. */
|
|
120
|
+
export type UprightDigits = 0 | 2 | 3 | 4;
|
|
121
|
+
/**
|
|
122
|
+
* Where the automatic tate-chu-yoko cells of `graphemes` start, with their
|
|
123
|
+
* length: every run of at most `digits` ASCII digits, whole (a longer run is
|
|
124
|
+
* set sideways, never split), that is not part of a word (no Latin letter
|
|
125
|
+
* touches it: `A4`, `mp3`, `3D` stay sideways) nor of a number with digit
|
|
126
|
+
* grouping or a decimal point (`10,000`, `3.14`: a `,` or `.` between it and
|
|
127
|
+
* another digit). Empty when `digits` is 0.
|
|
128
|
+
*/
|
|
129
|
+
export declare function uprightDigitRuns(graphemes: readonly string[], digits: number): Map<number, number>;
|
|
130
|
+
/** Cut `text` into the runs a vertical line paints and measures: sideways
|
|
131
|
+
* graphemes joined into runs, every other grapheme a cell of its own. An
|
|
132
|
+
* apostrophe or interpunct between two letters of a Latin word runs
|
|
133
|
+
* sideways with it (see `isWordInnerMark`), as the composer measures it.
|
|
134
|
+
* With `uprightDigits` (`cjk.uprightDigits`), each short number
|
|
135
|
+
* ({@link uprightDigitRuns}) is one `tcy` cell. */
|
|
136
|
+
export declare function verticalRuns(graphemes: readonly string[], region?: CjkRegion, uprightDigits?: number): VerticalRun[];
|
|
137
|
+
/** How the author set a run of vertical text apart (`VDTLineSegment.tcy`,
|
|
138
|
+
* `VDTLineSegment.orientation`): `'tcy'` (`:tcy[…]`), one upright cell;
|
|
139
|
+
* `'upright'` (`:upright[…]`), every character upright in a cell of its
|
|
140
|
+
* own; `'sideways'` (`:sideways[…]`), the whole run turned. */
|
|
141
|
+
export type ForcedOrientation = 'tcy' | 'upright' | 'sideways';
|
|
142
|
+
/** The runs of a text whose orientation the author forced (see
|
|
143
|
+
* {@link ForcedOrientation}): one `tcy` cell, one upright cell per
|
|
144
|
+
* grapheme, or one sideways run. */
|
|
145
|
+
export declare function forcedVerticalRuns(graphemes: readonly string[], orient: ForcedOrientation): VerticalRun[];
|
|
146
|
+
/** The orientation a segment's author forced, if any. */
|
|
147
|
+
export declare function segmentOrientation(seg: {
|
|
148
|
+
tcy?: boolean;
|
|
149
|
+
orientation?: 'upright' | 'sideways';
|
|
150
|
+
}): ForcedOrientation | undefined;
|
|
151
|
+
/** Whether `text` holds a character that stands in a cell of its own in
|
|
152
|
+
* vertical text (see {@link verticalRuns}), a short number included when
|
|
153
|
+
* `uprightDigits` sets it in a cell (the measurer passes the document's
|
|
154
|
+
* `cjk.uprightDigits`, as the painters do). ASCII letters never do. */
|
|
155
|
+
export declare function holdsVerticalCell(text: string, uprightDigits: number): boolean;
|
|
156
|
+
//# sourceMappingURL=writingMode.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"writingMode.d.ts","sourceRoot":"","sources":["../src/writingMode.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAGzC;;;;;;;;;;;;yCAYyC;AACzC,MAAM,MAAM,uBAAuB,GAAG,SAAS,GAAG,UAAU,GAAG,QAAQ,GAAG,WAAW,GAAG,KAAK,CAAC;AAE9F,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,uBAAuB,CAAC;IAChC;wBACoB;IACpB,QAAQ,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAC/B;yEACqE;IACrE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;yCACqC;IACrC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;gDAE4C;IAC5C,MAAM,CAAC,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACnC;AAED;4DAC4D;AAC5D,MAAM,MAAM,sBAAsB,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,CAAC;AAyC7D,qDAAqD;AACrD,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,MAAM,GAAG,sBAAsB,CAWzE;AA2BD;;4EAE4E;AAC5E,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAErD;AAED;4CAC4C;AAC5C,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAGxD;AAoBD;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAE,SAAsB,GAAG,aAAa,CAiBnG;AAED;mCACmC;AACnC,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAE,SAAsB,GAAG,OAAO,CAExF;AAED;;;;;oCAKoC;AACpC,eAAO,MAAM,gBAAgB;;;CAAuB,CAAC;AAErD;;;0CAG0C;AAC1C,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAE,SAAsB,EAAE,GAAG,0CAAuB,GAAG,MAAM,CAEpH;AAED;;8CAE8C;AAC9C,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,aAAa,CAAC;IACrB,wEAAwE;IACxE,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;uCAEuC;AACvC,MAAM,MAAM,aAAa,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAM1C;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAclG;AAED;;;;;oDAKoD;AACpD,wBAAgB,YAAY,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,EAAE,MAAM,GAAE,SAAsB,EAAE,aAAa,SAAI,GAAG,WAAW,EAAE,CA6B3H;AAED;;;gEAGgE;AAChE,MAAM,MAAM,iBAAiB,GAAG,KAAK,GAAG,SAAS,GAAG,UAAU,CAAC;AAE/D;;qCAEqC;AACrC,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,EAAE,MAAM,EAAE,iBAAiB,GAAG,WAAW,EAAE,CAKzG;AAED,yDAAyD;AACzD,wBAAgB,kBAAkB,CAAC,GAAG,EAAE;IAAE,GAAG,CAAC,EAAE,OAAO,CAAC;IAAC,WAAW,CAAC,EAAE,SAAS,GAAG,UAAU,CAAA;CAAE,GAAG,iBAAiB,GAAG,SAAS,CAE9H;AAED;;;wEAGwE;AACxE,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAQ9E"}
|
|
@@ -0,0 +1,291 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Glyph orientation in vertical text (`layout.writingMode: 'vertical-rl'`),
|
|
3
|
+
* one helper shared by every renderer, so the canvas, the PDF and the HTML
|
|
4
|
+
* output turn the same characters the same way.
|
|
5
|
+
*
|
|
6
|
+
* The flow of a vertical page is laid out as horizontal lines in a frame
|
|
7
|
+
* turned a quarter turn clockwise (`VDTPage.flow`). Text painted there
|
|
8
|
+
* "as is" comes out turned 90° clockwise — which is right for Latin words
|
|
9
|
+
* and long numbers (sideways, UAX #50 `R`) and wrong for Chinese
|
|
10
|
+
* characters, which stand upright, each in its own 1 em cell, turned back
|
|
11
|
+
* about the cell's centre. Punctuation takes the font's vertical form
|
|
12
|
+
* (OpenType `vert`) when a renderer can get it, else a fallback.
|
|
13
|
+
*
|
|
14
|
+
* Classes follow Unicode's `Vertical_Orientation` (UAX #50, data 18.0),
|
|
15
|
+
* with the Chinese rules on top (clreq Appendix A, GB/T 15834—2011 §5.2):
|
|
16
|
+
* - pause and stop marks (、。,.!?) and :; are never turned. A
|
|
17
|
+
* Simplified (mainland) font sets them in the upper right of the cell
|
|
18
|
+
* through `vert` (、。,. in the top-right corner, !?:; in the right
|
|
19
|
+
* half); Taiwan and Hong Kong fonts centre them and have no such form
|
|
20
|
+
* (their U+FE10–FE16 are the mainland shapes, so the vertical
|
|
21
|
+
* presentation forms must not be substituted there).
|
|
22
|
+
* - brackets and quotes take the vertical form, which is the horizontal
|
|
23
|
+
* glyph turned about the em box's centre when the font gives none;
|
|
24
|
+
* “ ” ‘ ’ in mainland text read as the corner brackets 『』「」
|
|
25
|
+
* (UAX #50 §3.2.4, the Hans vertical convention).
|
|
26
|
+
* - dashes, ellipses, the wave dash and the interpunct are turned about
|
|
27
|
+
* the em box's centre (Noto CJK gives —— a vertical form only with
|
|
28
|
+
* `fwid`): a dash is stretched to fill its cell. The mainland interpunct
|
|
29
|
+
* takes half a cell (clreq §5.1), the Taiwan and Hong Kong one
|
|
30
|
+
* a whole cell.
|
|
31
|
+
* - an apostrophe or an interpunct inside a Latin word ("don’t", "l·l")
|
|
32
|
+
* runs sideways with the word, as the composer keeps it in the word.
|
|
33
|
+
*
|
|
34
|
+
* The measurer and every renderer read the same runs ({@link
|
|
35
|
+
* verticalRuns}): what stands in a cell advances its cell (one em, half an
|
|
36
|
+
* em for the mainland interpunct), what runs sideways its horizontal width.
|
|
37
|
+
*/
|
|
38
|
+
import { cjkClassOf, isWordInnerMark } from './measure/cjkClasses';
|
|
39
|
+
// VerticalOrientation-18.0.0.txt, the ranges that are not `R`, merged:
|
|
40
|
+
// [first, last, class] with 1 = U, 2 = Tu, 3 = Tr. Everything else is R.
|
|
41
|
+
const VO_RANGES = [
|
|
42
|
+
0xA7, 0xA7, 1, 0xA9, 0xA9, 1, 0xAE, 0xAE, 1, 0xB1, 0xB1, 1, 0xBC, 0xBE, 1, 0xD7, 0xD7, 1, 0xF7, 0xF7, 1, 0x2EA, 0x2EB, 1,
|
|
43
|
+
0x1100, 0x11FF, 1, 0x1401, 0x167F, 1, 0x18B0, 0x18FF, 1, 0x2016, 0x2016, 1, 0x2018, 0x2019, 3, 0x201C, 0x201D, 3,
|
|
44
|
+
0x2020, 0x2021, 1, 0x2030, 0x2031, 1, 0x203B, 0x203C, 1, 0x2042, 0x2042, 1, 0x2047, 0x2049, 1, 0x2051, 0x2051, 1,
|
|
45
|
+
0x2065, 0x2065, 1, 0x20DD, 0x20E0, 1, 0x20E2, 0x20E4, 1, 0x2100, 0x2101, 1, 0x2103, 0x2109, 1, 0x210F, 0x210F, 1,
|
|
46
|
+
0x2113, 0x2114, 1, 0x2116, 0x2117, 1, 0x211E, 0x2123, 1, 0x2125, 0x2125, 1, 0x2127, 0x2127, 1, 0x2129, 0x2129, 1,
|
|
47
|
+
0x212E, 0x212E, 1, 0x2135, 0x213F, 1, 0x2145, 0x214A, 1, 0x214C, 0x214D, 1, 0x214F, 0x2189, 1, 0x218C, 0x218F, 1,
|
|
48
|
+
0x221E, 0x221E, 1, 0x2234, 0x2235, 1, 0x2300, 0x2307, 1, 0x230C, 0x231F, 1, 0x2324, 0x2328, 1, 0x2329, 0x232A, 3,
|
|
49
|
+
0x232B, 0x232B, 1, 0x237D, 0x239A, 1, 0x23BE, 0x23CD, 1, 0x23CF, 0x23CF, 1, 0x23D1, 0x23DB, 1, 0x23E2, 0x2422, 1,
|
|
50
|
+
0x2424, 0x24FF, 1, 0x25A0, 0x2619, 1, 0x2620, 0x2767, 1, 0x2776, 0x2793, 1, 0x2B12, 0x2B2F, 1, 0x2B50, 0x2B59, 1,
|
|
51
|
+
0x2B97, 0x2B97, 1, 0x2BB8, 0x2BD1, 1, 0x2BD3, 0x2BEB, 1, 0x2BF0, 0x2BFF, 1, 0x2E50, 0x2E51, 1, 0x2E80, 0x3000, 1,
|
|
52
|
+
0x3001, 0x3002, 2, 0x3003, 0x3007, 1, 0x3008, 0x3011, 3, 0x3012, 0x3013, 1, 0x3014, 0x301F, 3, 0x3020, 0x302F, 1,
|
|
53
|
+
0x3030, 0x3030, 3, 0x3031, 0x3040, 1, 0x3041, 0x3041, 2, 0x3042, 0x3042, 1, 0x3043, 0x3043, 2, 0x3044, 0x3044, 1,
|
|
54
|
+
0x3045, 0x3045, 2, 0x3046, 0x3046, 1, 0x3047, 0x3047, 2, 0x3048, 0x3048, 1, 0x3049, 0x3049, 2, 0x304A, 0x3062, 1,
|
|
55
|
+
0x3063, 0x3063, 2, 0x3064, 0x3082, 1, 0x3083, 0x3083, 2, 0x3084, 0x3084, 1, 0x3085, 0x3085, 2, 0x3086, 0x3086, 1,
|
|
56
|
+
0x3087, 0x3087, 2, 0x3088, 0x308D, 1, 0x308E, 0x308E, 2, 0x308F, 0x3094, 1, 0x3095, 0x3096, 2, 0x3097, 0x309A, 1,
|
|
57
|
+
0x309B, 0x309C, 2, 0x309D, 0x309F, 1, 0x30A0, 0x30A0, 3, 0x30A1, 0x30A1, 2, 0x30A2, 0x30A2, 1, 0x30A3, 0x30A3, 2,
|
|
58
|
+
0x30A4, 0x30A4, 1, 0x30A5, 0x30A5, 2, 0x30A6, 0x30A6, 1, 0x30A7, 0x30A7, 2, 0x30A8, 0x30A8, 1, 0x30A9, 0x30A9, 2,
|
|
59
|
+
0x30AA, 0x30C2, 1, 0x30C3, 0x30C3, 2, 0x30C4, 0x30E2, 1, 0x30E3, 0x30E3, 2, 0x30E4, 0x30E4, 1, 0x30E5, 0x30E5, 2,
|
|
60
|
+
0x30E6, 0x30E6, 1, 0x30E7, 0x30E7, 2, 0x30E8, 0x30ED, 1, 0x30EE, 0x30EE, 2, 0x30EF, 0x30F4, 1, 0x30F5, 0x30F6, 2,
|
|
61
|
+
0x30F7, 0x30FB, 1, 0x30FC, 0x30FC, 3, 0x30FD, 0x3126, 1, 0x3127, 0x3127, 2, 0x3128, 0x31B3, 1, 0x31B4, 0x31B7, 2,
|
|
62
|
+
0x31B8, 0x31BA, 1, 0x31BB, 0x31BB, 2, 0x31BC, 0x31EF, 1, 0x31F0, 0x31FF, 2, 0x3200, 0x32FE, 1, 0x32FF, 0x3357, 2,
|
|
63
|
+
0x3358, 0x337A, 1, 0x337B, 0x337F, 2, 0x3380, 0xA4CF, 1, 0xA960, 0xA97F, 1, 0xAC00, 0xD7FF, 1, 0xE000, 0xFAFF, 1,
|
|
64
|
+
0xFE10, 0xFE1F, 1, 0xFE30, 0xFE48, 1, 0xFE50, 0xFE52, 2, 0xFE53, 0xFE57, 1, 0xFE59, 0xFE5E, 3, 0xFE5F, 0xFE62, 1,
|
|
65
|
+
0xFE67, 0xFE6F, 1, 0xFF01, 0xFF01, 2, 0xFF02, 0xFF07, 1, 0xFF08, 0xFF09, 3, 0xFF0A, 0xFF0B, 1, 0xFF0C, 0xFF0C, 2,
|
|
66
|
+
0xFF0E, 0xFF0E, 2, 0xFF0F, 0xFF19, 1, 0xFF1A, 0xFF1B, 3, 0xFF1F, 0xFF1F, 2, 0xFF20, 0xFF3A, 1, 0xFF3B, 0xFF3B, 3,
|
|
67
|
+
0xFF3C, 0xFF3C, 1, 0xFF3D, 0xFF3D, 3, 0xFF3E, 0xFF3E, 1, 0xFF3F, 0xFF3F, 3, 0xFF40, 0xFF5A, 1, 0xFF5B, 0xFF60, 3,
|
|
68
|
+
0xFFE0, 0xFFE2, 1, 0xFFE3, 0xFFE3, 3, 0xFFE4, 0xFFE7, 1, 0xFFF0, 0xFFF8, 1, 0xFFFC, 0xFFFD, 1, 0x10980, 0x1099F, 1,
|
|
69
|
+
0x11580, 0x115FF, 1, 0x11A00, 0x11ABF, 1, 0x13000, 0x1467F, 1, 0x16FE0, 0x191DF, 1, 0x1AFF0, 0x1B131, 1,
|
|
70
|
+
0x1B132, 0x1B132, 2, 0x1B133, 0x1B14F, 1, 0x1B150, 0x1B152, 2, 0x1B153, 0x1B154, 1, 0x1B155, 0x1B155, 2,
|
|
71
|
+
0x1B156, 0x1B163, 1, 0x1B164, 0x1B168, 2, 0x1B169, 0x1B2FF, 1, 0x1CEC0, 0x1CEDC, 1, 0x1CEE0, 0x1CEF0, 1,
|
|
72
|
+
0x1CEFE, 0x1CFCF, 1, 0x1D000, 0x1D1FF, 1, 0x1D250, 0x1D281, 1, 0x1D2E0, 0x1D37F, 1, 0x1D800, 0x1DAAF, 1,
|
|
73
|
+
0x1F000, 0x1F1FF, 1, 0x1F200, 0x1F201, 2, 0x1F202, 0x1F7FF, 1, 0x1F900, 0x1FAFF, 1, 0x20000, 0x2FFFD, 1,
|
|
74
|
+
0x30000, 0x3FFFD, 1, 0xF0000, 0xFFFFD, 1, 0x100000, 0x10FFFD, 1
|
|
75
|
+
];
|
|
76
|
+
const VO_CLASS = ['R', 'U', 'Tu', 'Tr'];
|
|
77
|
+
/** A code point's Unicode `Vertical_Orientation`. */
|
|
78
|
+
export function uaxVerticalOrientation(cp) {
|
|
79
|
+
let lo = 0;
|
|
80
|
+
let hi = VO_RANGES.length / 3 - 1;
|
|
81
|
+
while (lo <= hi) {
|
|
82
|
+
const mid = (lo + hi) >> 1;
|
|
83
|
+
const first = VO_RANGES[mid * 3];
|
|
84
|
+
if (cp < first)
|
|
85
|
+
hi = mid - 1;
|
|
86
|
+
else if (cp > VO_RANGES[mid * 3 + 1])
|
|
87
|
+
lo = mid + 1;
|
|
88
|
+
else
|
|
89
|
+
return VO_CLASS[VO_RANGES[mid * 3 + 2]];
|
|
90
|
+
}
|
|
91
|
+
return 'R';
|
|
92
|
+
}
|
|
93
|
+
/** Pause and stop marks (标点 of GB/T 15834 §5.2.1): never turned. The
|
|
94
|
+
* first group sits in the top-right corner of a mainland cell, the second
|
|
95
|
+
* in the right half, a little above the middle. */
|
|
96
|
+
const CORNER_MARKS = new Set(['、', '。', ',', '.', '﹐', '﹑', '﹒']);
|
|
97
|
+
const EXCLAIM_MARKS = new Set(['!', '?', '﹖', '﹗']);
|
|
98
|
+
const COLON_MARKS = new Set([':', ';', '﹔', '﹕']);
|
|
99
|
+
/** Marks turned about their em box in every Chinese region: dashes,
|
|
100
|
+
* ellipses, the interpunct, connectors and the wave dash. */
|
|
101
|
+
const TURNED = new Set([
|
|
102
|
+
'—', '―', '⸺', '⸻', // — ― ⸺ ⸻
|
|
103
|
+
'…', '‥', '⋯', // … ‥ ⋯
|
|
104
|
+
'·', '‧', // · ‧
|
|
105
|
+
'–', // –
|
|
106
|
+
'~', '〜', '〰', // ~ 〜 〰
|
|
107
|
+
'-', // -
|
|
108
|
+
]);
|
|
109
|
+
/** Dashes stretched to their cell when turned. (The Latin hyphens ‐ ‑ ‒
|
|
110
|
+
* are Unicode's `R`: sideways with the word they join.) */
|
|
111
|
+
const STRETCHED = new Set(['—', '―', '⸺', '⸻', '–', '-']);
|
|
112
|
+
const TURNED_RE = new RegExp(`[${[...TURNED].join('')}]`);
|
|
113
|
+
const STRETCHED_RE = new RegExp(`[${[...STRETCHED].join('')}]`, 'g');
|
|
114
|
+
/** Whether `text` holds a mark a vertical line turns in a cell of its own
|
|
115
|
+
* (`rotate`: a dash, an ellipsis, an interpunct, a wave dash), which a
|
|
116
|
+
* browser setting the text vertically advances by its horizontal width. */
|
|
117
|
+
export function holdsTurnedMark(text) {
|
|
118
|
+
return TURNED_RE.test(text);
|
|
119
|
+
}
|
|
120
|
+
/** The dashes of `text` a vertical line stretches to fill their cell
|
|
121
|
+
* (`VerticalGlyph.stretch`), each once. */
|
|
122
|
+
export function stretchedDashesOf(text) {
|
|
123
|
+
const found = text.match(STRETCHED_RE);
|
|
124
|
+
return found ? [...new Set(found)] : [];
|
|
125
|
+
}
|
|
126
|
+
/** Mainland vertical quotes: the corner brackets (UAX #50 §3.2.4). */
|
|
127
|
+
const HANS_QUOTES = {
|
|
128
|
+
'“': '『', // “ → 『
|
|
129
|
+
'”': '』', // ” → 』
|
|
130
|
+
'‘': '「', // ‘ → 「
|
|
131
|
+
'’': '」', // ’ → 」
|
|
132
|
+
};
|
|
133
|
+
const UPRIGHT = { orient: 'upright' };
|
|
134
|
+
const SIDEWAYS = { orient: 'sideways' };
|
|
135
|
+
const ROTATE = { orient: 'rotate' };
|
|
136
|
+
const ROTATE_STRETCH = { orient: 'rotate', stretch: true };
|
|
137
|
+
const ALT_ROTATE = { orient: 'alternate', fallback: 'rotate' };
|
|
138
|
+
const ALT_CORNER = { orient: 'alternate', fallback: 'corner' };
|
|
139
|
+
const ALT_EXCLAIM = { orient: 'alternate', fallback: 'corner', offset: { x: 0.5, y: -0.08 } };
|
|
140
|
+
const ALT_COLON = { orient: 'alternate', fallback: 'corner', offset: { x: 0.52, y: -0.22 } };
|
|
141
|
+
const TCY = { orient: 'tcy' };
|
|
142
|
+
/**
|
|
143
|
+
* How a grapheme is set in a vertical line of `region`'s Chinese (see the
|
|
144
|
+
* module comment). Reads the grapheme's first code point; a sequence with
|
|
145
|
+
* a combining mark or a variation selector follows its base.
|
|
146
|
+
*/
|
|
147
|
+
export function verticalOrientation(grapheme, region = 'mainland') {
|
|
148
|
+
const cp = grapheme.codePointAt(0);
|
|
149
|
+
if (cp === undefined)
|
|
150
|
+
return SIDEWAYS;
|
|
151
|
+
if (cp < 0x80)
|
|
152
|
+
return SIDEWAYS;
|
|
153
|
+
const ch = String.fromCodePoint(cp);
|
|
154
|
+
if (CORNER_MARKS.has(ch))
|
|
155
|
+
return region === 'mainland' ? ALT_CORNER : UPRIGHT;
|
|
156
|
+
if (EXCLAIM_MARKS.has(ch))
|
|
157
|
+
return region === 'mainland' ? ALT_EXCLAIM : UPRIGHT;
|
|
158
|
+
if (COLON_MARKS.has(ch))
|
|
159
|
+
return region === 'mainland' ? ALT_COLON : UPRIGHT;
|
|
160
|
+
if (TURNED.has(ch))
|
|
161
|
+
return STRETCHED.has(ch) ? ROTATE_STRETCH : ROTATE;
|
|
162
|
+
const hans = HANS_QUOTES[ch];
|
|
163
|
+
if (hans !== undefined)
|
|
164
|
+
return region === 'mainland' ? { orient: 'alternate', fallback: 'rotate', substitute: hans } : ALT_ROTATE;
|
|
165
|
+
switch (uaxVerticalOrientation(cp)) {
|
|
166
|
+
case 'U': return UPRIGHT;
|
|
167
|
+
case 'Tu': return UPRIGHT; // small kana and the like: upright, the vertical form when the font has one
|
|
168
|
+
case 'Tr': return ALT_ROTATE;
|
|
169
|
+
default: return SIDEWAYS;
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
/** Whether a grapheme stands in a cell of its own in vertical text (every
|
|
173
|
+
* orientation but `sideways`). */
|
|
174
|
+
export function isVerticalCell(grapheme, region = 'mainland') {
|
|
175
|
+
return verticalOrientation(grapheme, region).orient !== 'sideways';
|
|
176
|
+
}
|
|
177
|
+
/** Where a mainland 、。,. moves when the font gives no vertical form, in
|
|
178
|
+
* ems of the cell: right and up (a horizontal 。 sits in the bottom-left
|
|
179
|
+
* quadrant, the vertical one in the top-right). Measured against the
|
|
180
|
+
* `vert` glyphs of Noto Serif SC: within 0.07 em for 、。,.. !? and :;
|
|
181
|
+
* carry their own `offset` (half an em to the right, 0.08 and 0.22 em up),
|
|
182
|
+
* within 0.02 em of the font's. */
|
|
183
|
+
export const CORNER_OFFSET_EM = { x: 0.6, y: -0.62 };
|
|
184
|
+
/** The size of a character's cell in a vertical line, in ems: half an em
|
|
185
|
+
* for the mainland interpunct (· ・, clreq §5.1), one em for
|
|
186
|
+
* every other character that stands in a cell. `cls`, when the caller has
|
|
187
|
+
* it, is the grapheme's `cjkClassOf`. */
|
|
188
|
+
export function verticalCellEms(grapheme, region = 'mainland', cls = cjkClassOf(grapheme)) {
|
|
189
|
+
return region === 'mainland' && cls === 'interpunct' ? 0.5 : 1;
|
|
190
|
+
}
|
|
191
|
+
const isAsciiDigit = (g) => g !== undefined && g.length === 1 && g >= '0' && g <= '9';
|
|
192
|
+
const isAsciiLetter = (g) => g !== undefined && g.length === 1 && /[A-Za-z]/.test(g);
|
|
193
|
+
const isGroupMark = (g) => g === '.' || g === ',';
|
|
194
|
+
/**
|
|
195
|
+
* Where the automatic tate-chu-yoko cells of `graphemes` start, with their
|
|
196
|
+
* length: every run of at most `digits` ASCII digits, whole (a longer run is
|
|
197
|
+
* set sideways, never split), that is not part of a word (no Latin letter
|
|
198
|
+
* touches it: `A4`, `mp3`, `3D` stay sideways) nor of a number with digit
|
|
199
|
+
* grouping or a decimal point (`10,000`, `3.14`: a `,` or `.` between it and
|
|
200
|
+
* another digit). Empty when `digits` is 0.
|
|
201
|
+
*/
|
|
202
|
+
export function uprightDigitRuns(graphemes, digits) {
|
|
203
|
+
const out = new Map();
|
|
204
|
+
if (!(digits > 0))
|
|
205
|
+
return out;
|
|
206
|
+
for (let i = 0; i < graphemes.length; i++) {
|
|
207
|
+
if (!isAsciiDigit(graphemes[i]))
|
|
208
|
+
continue;
|
|
209
|
+
let j = i;
|
|
210
|
+
while (isAsciiDigit(graphemes[j + 1]))
|
|
211
|
+
j++;
|
|
212
|
+
const before = graphemes[i - 1];
|
|
213
|
+
const after = graphemes[j + 1];
|
|
214
|
+
const grouped = (isGroupMark(before) && isAsciiDigit(graphemes[i - 2])) || (isGroupMark(after) && isAsciiDigit(graphemes[j + 2]));
|
|
215
|
+
if (j - i + 1 <= digits && !isAsciiLetter(before) && !isAsciiLetter(after) && !grouped)
|
|
216
|
+
out.set(i, j - i + 1);
|
|
217
|
+
i = j;
|
|
218
|
+
}
|
|
219
|
+
return out;
|
|
220
|
+
}
|
|
221
|
+
/** Cut `text` into the runs a vertical line paints and measures: sideways
|
|
222
|
+
* graphemes joined into runs, every other grapheme a cell of its own. An
|
|
223
|
+
* apostrophe or interpunct between two letters of a Latin word runs
|
|
224
|
+
* sideways with it (see `isWordInnerMark`), as the composer measures it.
|
|
225
|
+
* With `uprightDigits` (`cjk.uprightDigits`), each short number
|
|
226
|
+
* ({@link uprightDigitRuns}) is one `tcy` cell. */
|
|
227
|
+
export function verticalRuns(graphemes, region = 'mainland', uprightDigits = 0) {
|
|
228
|
+
const out = [];
|
|
229
|
+
const tcy = uprightDigitRuns(graphemes, uprightDigits);
|
|
230
|
+
let side = '';
|
|
231
|
+
for (let i = 0; i < graphemes.length; i++) {
|
|
232
|
+
const g = graphemes[i];
|
|
233
|
+
const combined = tcy.get(i);
|
|
234
|
+
if (combined !== undefined) {
|
|
235
|
+
if (side) {
|
|
236
|
+
out.push({ text: side, glyph: SIDEWAYS });
|
|
237
|
+
side = '';
|
|
238
|
+
}
|
|
239
|
+
out.push({ text: graphemes.slice(i, i + combined).join(''), glyph: TCY, cell: 1 });
|
|
240
|
+
i += combined - 1;
|
|
241
|
+
continue;
|
|
242
|
+
}
|
|
243
|
+
const glyph = isWordInnerMark(g, graphemes[i - 1], graphemes[i + 1]) ? SIDEWAYS : verticalOrientation(g, region);
|
|
244
|
+
if (glyph.orient === 'sideways') {
|
|
245
|
+
side += g;
|
|
246
|
+
continue;
|
|
247
|
+
}
|
|
248
|
+
if (side) {
|
|
249
|
+
out.push({ text: side, glyph: SIDEWAYS });
|
|
250
|
+
side = '';
|
|
251
|
+
}
|
|
252
|
+
out.push({ text: g, glyph, cell: verticalCellEms(g, region) });
|
|
253
|
+
}
|
|
254
|
+
if (side)
|
|
255
|
+
out.push({ text: side, glyph: SIDEWAYS });
|
|
256
|
+
return out;
|
|
257
|
+
}
|
|
258
|
+
/** The runs of a text whose orientation the author forced (see
|
|
259
|
+
* {@link ForcedOrientation}): one `tcy` cell, one upright cell per
|
|
260
|
+
* grapheme, or one sideways run. */
|
|
261
|
+
export function forcedVerticalRuns(graphemes, orient) {
|
|
262
|
+
if (graphemes.length === 0)
|
|
263
|
+
return [];
|
|
264
|
+
if (orient === 'tcy')
|
|
265
|
+
return [{ text: graphemes.join(''), glyph: TCY, cell: 1 }];
|
|
266
|
+
if (orient === 'sideways')
|
|
267
|
+
return [{ text: graphemes.join(''), glyph: SIDEWAYS }];
|
|
268
|
+
return graphemes.map((g) => ({ text: g, glyph: UPRIGHT, cell: 1 }));
|
|
269
|
+
}
|
|
270
|
+
/** The orientation a segment's author forced, if any. */
|
|
271
|
+
export function segmentOrientation(seg) {
|
|
272
|
+
return seg.tcy ? 'tcy' : seg.orientation;
|
|
273
|
+
}
|
|
274
|
+
/** Whether `text` holds a character that stands in a cell of its own in
|
|
275
|
+
* vertical text (see {@link verticalRuns}), a short number included when
|
|
276
|
+
* `uprightDigits` sets it in a cell (the measurer passes the document's
|
|
277
|
+
* `cjk.uprightDigits`, as the painters do). ASCII letters never do. */
|
|
278
|
+
export function holdsVerticalCell(text, uprightDigits) {
|
|
279
|
+
if (uprightDigits > 0 && /[0-9]/.test(text) && uprightDigitRuns([...text], uprightDigits).size > 0)
|
|
280
|
+
return true;
|
|
281
|
+
if (!/[^\u0000-\u007F]/.test(text))
|
|
282
|
+
return false;
|
|
283
|
+
for (const ch of text) {
|
|
284
|
+
if (ch.charCodeAt(0) < 0x80)
|
|
285
|
+
continue;
|
|
286
|
+
if (verticalOrientation(ch).orient !== 'sideways')
|
|
287
|
+
return true;
|
|
288
|
+
}
|
|
289
|
+
return false;
|
|
290
|
+
}
|
|
291
|
+
//# sourceMappingURL=writingMode.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"writingMode.js","sourceRoot":"","sources":["../src/writingMode.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAGH,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAsCnE,uEAAuE;AACvE,yEAAyE;AACzE,MAAM,SAAS,GAAsB;IACnC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAE,IAAI,EAAC,IAAI,EAAC,CAAC,EAAE,IAAI,EAAC,IAAI,EAAC,CAAC,EAAE,IAAI,EAAC,IAAI,EAAC,CAAC,EAAE,IAAI,EAAC,IAAI,EAAC,CAAC,EAAE,IAAI,EAAC,IAAI,EAAC,CAAC,EAAE,IAAI,EAAC,IAAI,EAAC,CAAC,EAAE,KAAK,EAAC,KAAK,EAAC,CAAC;IACxG,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC;IACpG,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC;IACpG,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC;IACpG,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC;IACpG,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC;IACpG,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC;IACpG,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC;IACpG,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC;IACpG,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC;IACpG,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC;IACpG,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC;IACpG,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC;IACpG,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC;IACpG,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC;IACpG,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC;IACpG,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC;IACpG,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC;IACpG,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC;IACpG,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC;IACpG,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC;IACpG,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC;IACpG,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC;IACpG,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC;IACpG,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC;IACpG,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MA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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "postext",
|
|
3
3
|
"description": "A programmable typesetter for the web. Layout engine that applies professional editorial rules — columns, orphan/widow prevention, balanced columns, resource placement, running heads — to semantic content. Built on @chenglou/pretext for DOM-free text measurement.",
|
|
4
|
-
"version": "1.
|
|
4
|
+
"version": "1.9.0",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"homepage": "https://postext.dev/",
|