postext 1.23.0 → 1.25.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__/bundle/bitmapInfo.test.d.ts +2 -0
- package/dist/__tests__/bundle/bitmapInfo.test.d.ts.map +1 -0
- package/dist/__tests__/bundle/bitmapInfo.test.js +78 -0
- package/dist/__tests__/bundle/bitmapInfo.test.js.map +1 -0
- package/dist/__tests__/bundle/cjkRulesPin.test.d.ts +2 -0
- package/dist/__tests__/bundle/cjkRulesPin.test.d.ts.map +1 -0
- package/dist/__tests__/bundle/cjkRulesPin.test.js +78 -0
- package/dist/__tests__/bundle/cjkRulesPin.test.js.map +1 -0
- package/dist/__tests__/bundle/designOverflowPin.test.d.ts +2 -0
- package/dist/__tests__/bundle/designOverflowPin.test.d.ts.map +1 -0
- package/dist/__tests__/bundle/designOverflowPin.test.js +89 -0
- package/dist/__tests__/bundle/designOverflowPin.test.js.map +1 -0
- package/dist/__tests__/bundle/flowColumnsPin.test.d.ts +2 -0
- package/dist/__tests__/bundle/flowColumnsPin.test.d.ts.map +1 -0
- package/dist/__tests__/bundle/flowColumnsPin.test.js +40 -0
- package/dist/__tests__/bundle/flowColumnsPin.test.js.map +1 -0
- package/dist/__tests__/bundle/gridBalancingPin.test.d.ts +2 -0
- package/dist/__tests__/bundle/gridBalancingPin.test.d.ts.map +1 -0
- package/dist/__tests__/bundle/gridBalancingPin.test.js +53 -0
- package/dist/__tests__/bundle/gridBalancingPin.test.js.map +1 -0
- package/dist/__tests__/bundle/inlineTableSplitPin.test.d.ts +2 -0
- package/dist/__tests__/bundle/inlineTableSplitPin.test.d.ts.map +1 -0
- package/dist/__tests__/bundle/inlineTableSplitPin.test.js +43 -0
- package/dist/__tests__/bundle/inlineTableSplitPin.test.js.map +1 -0
- package/dist/__tests__/bundle/openerHeadFloatsPin.test.d.ts +2 -0
- package/dist/__tests__/bundle/openerHeadFloatsPin.test.d.ts.map +1 -0
- package/dist/__tests__/bundle/openerHeadFloatsPin.test.js +50 -0
- package/dist/__tests__/bundle/openerHeadFloatsPin.test.js.map +1 -0
- package/dist/__tests__/bundle.test.js +11 -1
- package/dist/__tests__/bundle.test.js.map +1 -1
- package/dist/__tests__/cjk/annotationsRender.test.js +5 -2
- package/dist/__tests__/cjk/annotationsRender.test.js.map +1 -1
- package/dist/__tests__/cjk/circledNumbers.test.d.ts +2 -0
- package/dist/__tests__/cjk/circledNumbers.test.d.ts.map +1 -0
- package/dist/__tests__/cjk/circledNumbers.test.js +83 -0
- package/dist/__tests__/cjk/circledNumbers.test.js.map +1 -0
- package/dist/__tests__/cjk/gridBalancing.test.d.ts +2 -0
- package/dist/__tests__/cjk/gridBalancing.test.d.ts.map +1 -0
- package/dist/__tests__/cjk/gridBalancing.test.js +227 -0
- package/dist/__tests__/cjk/gridBalancing.test.js.map +1 -0
- package/dist/__tests__/cjk/justifyRender.test.js +2 -1
- package/dist/__tests__/cjk/justifyRender.test.js.map +1 -1
- package/dist/__tests__/cjk/titleBreaks.test.d.ts +2 -0
- package/dist/__tests__/cjk/titleBreaks.test.d.ts.map +1 -0
- package/dist/__tests__/cjk/titleBreaks.test.js +76 -0
- package/dist/__tests__/cjk/titleBreaks.test.js.map +1 -0
- package/dist/__tests__/cjk/wordJoiner.test.js +13 -4
- package/dist/__tests__/cjk/wordJoiner.test.js.map +1 -1
- package/dist/__tests__/codeBlocks.test.js +1 -1
- package/dist/__tests__/codeBlocks.test.js.map +1 -1
- package/dist/__tests__/design/cjkDesignText.test.d.ts +2 -0
- package/dist/__tests__/design/cjkDesignText.test.d.ts.map +1 -0
- package/dist/__tests__/design/cjkDesignText.test.js +130 -0
- package/dist/__tests__/design/cjkDesignText.test.js.map +1 -0
- package/dist/__tests__/design/cjkDesignTextRender.test.d.ts +2 -0
- package/dist/__tests__/design/cjkDesignTextRender.test.d.ts.map +1 -0
- package/dist/__tests__/design/cjkDesignTextRender.test.js +100 -0
- package/dist/__tests__/design/cjkDesignTextRender.test.js.map +1 -0
- package/dist/__tests__/design/designTextOverflow.test.d.ts +2 -0
- package/dist/__tests__/design/designTextOverflow.test.d.ts.map +1 -0
- package/dist/__tests__/design/designTextOverflow.test.js +102 -0
- package/dist/__tests__/design/designTextOverflow.test.js.map +1 -0
- package/dist/__tests__/exports.test.js +60 -0
- package/dist/__tests__/exports.test.js.map +1 -1
- package/dist/__tests__/frontmatterInvalid.test.d.ts +2 -0
- package/dist/__tests__/frontmatterInvalid.test.d.ts.map +1 -0
- package/dist/__tests__/frontmatterInvalid.test.js +101 -0
- package/dist/__tests__/frontmatterInvalid.test.js.map +1 -0
- package/dist/__tests__/hardBreaks.test.js +1 -1
- package/dist/__tests__/hardBreaks.test.js.map +1 -1
- package/dist/__tests__/headingFirstLineIndent.test.d.ts +2 -0
- package/dist/__tests__/headingFirstLineIndent.test.d.ts.map +1 -0
- package/dist/__tests__/headingFirstLineIndent.test.js +185 -0
- package/dist/__tests__/headingFirstLineIndent.test.js.map +1 -0
- package/dist/__tests__/headingInlineMarks.test.js +1 -1
- package/dist/__tests__/headingInlineMarks.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__/headingNumberSpans.test.d.ts +2 -0
- package/dist/__tests__/headingNumberSpans.test.d.ts.map +1 -0
- package/dist/__tests__/headingNumberSpans.test.js +96 -0
- package/dist/__tests__/headingNumberSpans.test.js.map +1 -0
- package/dist/__tests__/mathSizeMigration.test.js +2 -2
- package/dist/__tests__/mathSizeMigration.test.js.map +1 -1
- package/dist/__tests__/multipleColumns.test.js +207 -0
- package/dist/__tests__/multipleColumns.test.js.map +1 -1
- package/dist/__tests__/parse/citations.test.js +29 -0
- package/dist/__tests__/parse/citations.test.js.map +1 -1
- package/dist/__tests__/pipeline/bitmapResolution.test.d.ts +2 -0
- package/dist/__tests__/pipeline/bitmapResolution.test.d.ts.map +1 -0
- package/dist/__tests__/pipeline/bitmapResolution.test.js +139 -0
- package/dist/__tests__/pipeline/bitmapResolution.test.js.map +1 -0
- package/dist/__tests__/pipeline/calloutInlineResourceGap.test.js +10 -6
- package/dist/__tests__/pipeline/calloutInlineResourceGap.test.js.map +1 -1
- package/dist/__tests__/pipeline/calloutOverflow.test.js +4 -2
- package/dist/__tests__/pipeline/calloutOverflow.test.js.map +1 -1
- package/dist/__tests__/pipeline/calloutSplitMinLinesChild.test.js +1 -1
- package/dist/__tests__/pipeline/calloutSplitMinLinesChild.test.js.map +1 -1
- package/dist/__tests__/pipeline/calloutTallKeepTogether.test.js +6 -5
- package/dist/__tests__/pipeline/calloutTallKeepTogether.test.js.map +1 -1
- package/dist/__tests__/pipeline/colonListRoom.test.js +1 -1
- package/dist/__tests__/pipeline/colonListRoom.test.js.map +1 -1
- package/dist/__tests__/pipeline/compoundBreaks.test.js +1 -1
- package/dist/__tests__/pipeline/compoundBreaks.test.js.map +1 -1
- package/dist/__tests__/pipeline/dashBreaks.test.js +1 -1
- package/dist/__tests__/pipeline/dashBreaks.test.js.map +1 -1
- package/dist/__tests__/pipeline/designTextTruncated.test.d.ts +2 -0
- package/dist/__tests__/pipeline/designTextTruncated.test.d.ts.map +1 -0
- package/dist/__tests__/pipeline/designTextTruncated.test.js +116 -0
- package/dist/__tests__/pipeline/designTextTruncated.test.js.map +1 -0
- package/dist/__tests__/pipeline/floatCitingPage.test.d.ts +2 -0
- package/dist/__tests__/pipeline/floatCitingPage.test.d.ts.map +1 -0
- package/dist/__tests__/pipeline/floatCitingPage.test.js +241 -0
- package/dist/__tests__/pipeline/floatCitingPage.test.js.map +1 -0
- package/dist/__tests__/pipeline/floatOverInlineResource.test.js +18 -6
- package/dist/__tests__/pipeline/floatOverInlineResource.test.js.map +1 -1
- package/dist/__tests__/pipeline/floatPlacement.test.js +3 -3
- package/dist/__tests__/pipeline/floatPlacement.test.js.map +1 -1
- package/dist/__tests__/pipeline/floatShrink.test.d.ts +2 -0
- package/dist/__tests__/pipeline/floatShrink.test.d.ts.map +1 -0
- package/dist/__tests__/pipeline/floatShrink.test.js +298 -0
- package/dist/__tests__/pipeline/floatShrink.test.js.map +1 -0
- package/dist/__tests__/pipeline/flowColumns.test.d.ts +2 -0
- package/dist/__tests__/pipeline/flowColumns.test.d.ts.map +1 -0
- package/dist/__tests__/pipeline/flowColumns.test.js +261 -0
- package/dist/__tests__/pipeline/flowColumns.test.js.map +1 -0
- package/dist/__tests__/pipeline/headingKeepFitEps.test.d.ts +2 -0
- package/dist/__tests__/pipeline/headingKeepFitEps.test.d.ts.map +1 -0
- package/dist/__tests__/pipeline/headingKeepFitEps.test.js +83 -0
- package/dist/__tests__/pipeline/headingKeepFitEps.test.js.map +1 -0
- package/dist/__tests__/pipeline/headingSplitOrphans.test.js +1 -1
- package/dist/__tests__/pipeline/headingSplitOrphans.test.js.map +1 -1
- package/dist/__tests__/pipeline/inlineFigureSpace.test.js +1 -1
- package/dist/__tests__/pipeline/inlineFigureSpace.test.js.map +1 -1
- package/dist/__tests__/pipeline/inlineTableSplit.test.d.ts +2 -0
- package/dist/__tests__/pipeline/inlineTableSplit.test.d.ts.map +1 -0
- package/dist/__tests__/pipeline/inlineTableSplit.test.js +238 -0
- package/dist/__tests__/pipeline/inlineTableSplit.test.js.map +1 -0
- package/dist/__tests__/pipeline/paragraphContainerTail.test.js +1 -1
- package/dist/__tests__/pipeline/paragraphContainerTail.test.js.map +1 -1
- package/dist/__tests__/pipeline/raggedOptimal.test.js +1 -1
- package/dist/__tests__/pipeline/raggedOptimal.test.js.map +1 -1
- package/dist/__tests__/pipeline/resolvedPaletteCopy.test.js +3 -2
- package/dist/__tests__/pipeline/resolvedPaletteCopy.test.js.map +1 -1
- package/dist/__tests__/pipeline/sideBoxAfterText.test.d.ts +2 -0
- package/dist/__tests__/pipeline/sideBoxAfterText.test.d.ts.map +1 -0
- package/dist/__tests__/pipeline/sideBoxAfterText.test.js +163 -0
- package/dist/__tests__/pipeline/sideBoxAfterText.test.js.map +1 -0
- package/dist/__tests__/pipeline/textWrap.test.d.ts +2 -0
- package/dist/__tests__/pipeline/textWrap.test.d.ts.map +1 -0
- package/dist/__tests__/pipeline/textWrap.test.js +453 -0
- package/dist/__tests__/pipeline/textWrap.test.js.map +1 -0
- package/dist/__tests__/preflight.test.js +30 -1
- package/dist/__tests__/preflight.test.js.map +1 -1
- package/dist/__tests__/prepareFonts.test.d.ts +2 -0
- package/dist/__tests__/prepareFonts.test.d.ts.map +1 -0
- package/dist/__tests__/prepareFonts.test.js +358 -0
- package/dist/__tests__/prepareFonts.test.js.map +1 -0
- package/dist/__tests__/presets/showcaseDesignOverflow.test.d.ts +2 -0
- package/dist/__tests__/presets/showcaseDesignOverflow.test.d.ts.map +1 -0
- package/dist/__tests__/presets/showcaseDesignOverflow.test.js +58 -0
- package/dist/__tests__/presets/showcaseDesignOverflow.test.js.map +1 -0
- package/dist/__tests__/svgFonts.test.d.ts +2 -0
- package/dist/__tests__/svgFonts.test.d.ts.map +1 -0
- package/dist/__tests__/svgFonts.test.js +286 -0
- package/dist/__tests__/svgFonts.test.js.map +1 -0
- package/dist/__tests__/table/booktabs.test.d.ts +2 -0
- package/dist/__tests__/table/booktabs.test.d.ts.map +1 -0
- package/dist/__tests__/table/booktabs.test.js +290 -0
- package/dist/__tests__/table/booktabs.test.js.map +1 -0
- package/dist/__tests__/textWrapMeasure.test.d.ts +2 -0
- package/dist/__tests__/textWrapMeasure.test.d.ts.map +1 -0
- package/dist/__tests__/textWrapMeasure.test.js +162 -0
- package/dist/__tests__/textWrapMeasure.test.js.map +1 -0
- package/dist/__tests__/verseLines.test.js +134 -4
- package/dist/__tests__/verseLines.test.js.map +1 -1
- package/dist/__tests__/vertical/measurePaint.test.js +16 -0
- package/dist/__tests__/vertical/measurePaint.test.js.map +1 -1
- package/dist/bitmapResolution.d.ts +42 -0
- package/dist/bitmapResolution.d.ts.map +1 -0
- package/dist/bitmapResolution.js +82 -0
- package/dist/bitmapResolution.js.map +1 -0
- package/dist/bundle/adapters.d.ts +31 -7
- package/dist/bundle/adapters.d.ts.map +1 -1
- package/dist/bundle/adapters.js +113 -34
- package/dist/bundle/adapters.js.map +1 -1
- package/dist/bundle/codec.d.ts +9 -2
- package/dist/bundle/codec.d.ts.map +1 -1
- package/dist/bundle/codec.js +25 -2
- package/dist/bundle/codec.js.map +1 -1
- package/dist/bundle/configVersion.d.ts +168 -10
- package/dist/bundle/configVersion.d.ts.map +1 -1
- package/dist/bundle/configVersion.js +414 -8
- package/dist/bundle/configVersion.js.map +1 -1
- package/dist/bundle/index.d.ts +5 -5
- package/dist/bundle/index.d.ts.map +1 -1
- package/dist/bundle/index.js +3 -3
- package/dist/bundle/index.js.map +1 -1
- package/dist/bundle/manifest.d.ts +12 -2
- package/dist/bundle/manifest.d.ts.map +1 -1
- package/dist/bundle/manifest.js +134 -7
- package/dist/bundle/manifest.js.map +1 -1
- package/dist/bundle/types.d.ts +32 -2
- package/dist/bundle/types.d.ts.map +1 -1
- package/dist/canvas-backend/blockRender.d.ts.map +1 -1
- package/dist/canvas-backend/blockRender.js +6 -4
- package/dist/canvas-backend/blockRender.js.map +1 -1
- package/dist/canvas-backend/headerFooter.d.ts.map +1 -1
- package/dist/canvas-backend/headerFooter.js +3 -1
- package/dist/canvas-backend/headerFooter.js.map +1 -1
- package/dist/canvas-backend/renderResourceBlock.d.ts.map +1 -1
- package/dist/canvas-backend/renderResourceBlock.js +15 -1
- package/dist/canvas-backend/renderResourceBlock.js.map +1 -1
- package/dist/columnRule.d.ts.map +1 -1
- package/dist/columnRule.js +5 -2
- package/dist/columnRule.js.map +1 -1
- package/dist/configWarnings.js +30 -3
- package/dist/configWarnings.js.map +1 -1
- package/dist/defaults/cjk.d.ts +2 -1
- package/dist/defaults/cjk.d.ts.map +1 -1
- package/dist/defaults/cjk.js +17 -1
- package/dist/defaults/cjk.js.map +1 -1
- package/dist/defaults/diagramStyle.d.ts.map +1 -1
- package/dist/defaults/diagramStyle.js +6 -0
- package/dist/defaults/diagramStyle.js.map +1 -1
- package/dist/defaults/headerFooter.d.ts +21 -6
- package/dist/defaults/headerFooter.d.ts.map +1 -1
- package/dist/defaults/headerFooter.js +37 -14
- package/dist/defaults/headerFooter.js.map +1 -1
- package/dist/defaults/headings.d.ts +5 -4
- package/dist/defaults/headings.d.ts.map +1 -1
- package/dist/defaults/headings.js +18 -4
- package/dist/defaults/headings.js.map +1 -1
- package/dist/defaults/index.d.ts +1 -1
- package/dist/defaults/index.d.ts.map +1 -1
- package/dist/defaults/index.js +1 -1
- package/dist/defaults/index.js.map +1 -1
- package/dist/defaults/layout.d.ts +35 -1
- package/dist/defaults/layout.d.ts.map +1 -1
- package/dist/defaults/layout.js +137 -1
- package/dist/defaults/layout.js.map +1 -1
- package/dist/defaults/parts.js +4 -4
- package/dist/defaults/parts.js.map +1 -1
- package/dist/defaults/tableStyle.d.ts.map +1 -1
- package/dist/defaults/tableStyle.js +50 -0
- package/dist/defaults/tableStyle.js.map +1 -1
- package/dist/defaults/toc.js +2 -2
- package/dist/defaults/verse.d.ts +2 -1
- package/dist/defaults/verse.d.ts.map +1 -1
- package/dist/defaults/verse.js +6 -1
- package/dist/defaults/verse.js.map +1 -1
- package/dist/design/cjkText.d.ts +34 -0
- package/dist/design/cjkText.d.ts.map +1 -0
- package/dist/design/cjkText.js +82 -0
- package/dist/design/cjkText.js.map +1 -0
- package/dist/design/layout.d.ts +15 -1
- package/dist/design/layout.d.ts.map +1 -1
- package/dist/design/layout.js +130 -8
- package/dist/design/layout.js.map +1 -1
- package/dist/design/richText.d.ts +24 -0
- package/dist/design/richText.d.ts.map +1 -1
- package/dist/design/richText.js +37 -1
- package/dist/design/richText.js.map +1 -1
- package/dist/fonts/buildWithFonts.d.ts +19 -0
- package/dist/fonts/buildWithFonts.d.ts.map +1 -0
- package/dist/fonts/buildWithFonts.js +16 -0
- package/dist/fonts/buildWithFonts.js.map +1 -0
- package/dist/fonts/faces.d.ts +88 -0
- package/dist/fonts/faces.d.ts.map +1 -0
- package/dist/fonts/faces.js +264 -0
- package/dist/fonts/faces.js.map +1 -0
- package/dist/fonts/fontSet.d.ts +34 -0
- package/dist/fonts/fontSet.d.ts.map +1 -0
- package/dist/fonts/fontSet.js +173 -0
- package/dist/fonts/fontSet.js.map +1 -0
- package/dist/fonts/prepare.d.ts +120 -0
- package/dist/fonts/prepare.d.ts.map +1 -0
- package/dist/fonts/prepare.js +375 -0
- package/dist/fonts/prepare.js.map +1 -0
- package/dist/frontmatter.d.ts +20 -0
- package/dist/frontmatter.d.ts.map +1 -1
- package/dist/frontmatter.js +69 -3
- package/dist/frontmatter.js.map +1 -1
- package/dist/html-backend.d.ts +17 -0
- package/dist/html-backend.d.ts.map +1 -1
- package/dist/html-backend.js +109 -7
- package/dist/html-backend.js.map +1 -1
- package/dist/index.d.ts +35 -10
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +23 -4
- package/dist/index.js.map +1 -1
- package/dist/measure/bidiLines.d.ts +4 -3
- package/dist/measure/bidiLines.d.ts.map +1 -1
- package/dist/measure/bidiLines.js +12 -7
- package/dist/measure/bidiLines.js.map +1 -1
- package/dist/measure/cache.d.ts.map +1 -1
- package/dist/measure/cache.js +32 -2
- package/dist/measure/cache.js.map +1 -1
- package/dist/measure/canvas.d.ts +15 -0
- package/dist/measure/canvas.d.ts.map +1 -1
- package/dist/measure/canvas.js +68 -4
- package/dist/measure/canvas.js.map +1 -1
- package/dist/measure/cjk.d.ts.map +1 -1
- package/dist/measure/cjk.js +4 -1
- package/dist/measure/cjk.js.map +1 -1
- package/dist/measure/cjkClasses.d.ts +17 -0
- package/dist/measure/cjkClasses.d.ts.map +1 -1
- package/dist/measure/cjkClasses.js +41 -1
- package/dist/measure/cjkClasses.js.map +1 -1
- package/dist/measure/cjkCompose.d.ts.map +1 -1
- package/dist/measure/cjkCompose.js +126 -10
- package/dist/measure/cjkCompose.js.map +1 -1
- package/dist/measure/cjkPunctuation.d.ts +18 -1
- package/dist/measure/cjkPunctuation.d.ts.map +1 -1
- package/dist/measure/cjkPunctuation.js +13 -1
- package/dist/measure/cjkPunctuation.js.map +1 -1
- package/dist/measure/font.d.ts +8 -0
- package/dist/measure/font.d.ts.map +1 -1
- package/dist/measure/font.js +13 -2
- package/dist/measure/font.js.map +1 -1
- package/dist/measure/fontString.d.ts +14 -0
- package/dist/measure/fontString.d.ts.map +1 -0
- package/dist/measure/fontString.js +55 -0
- package/dist/measure/fontString.js.map +1 -0
- package/dist/measure/hardBreaks.d.ts.map +1 -1
- package/dist/measure/hardBreaks.js +13 -1
- package/dist/measure/hardBreaks.js.map +1 -1
- package/dist/measure/index.d.ts +7 -4
- package/dist/measure/index.d.ts.map +1 -1
- package/dist/measure/index.js +7 -5
- package/dist/measure/index.js.map +1 -1
- package/dist/measure/plain.d.ts.map +1 -1
- package/dist/measure/plain.js +11 -7
- package/dist/measure/plain.js.map +1 -1
- package/dist/measure/rich.d.ts.map +1 -1
- package/dist/measure/rich.js +9 -6
- package/dist/measure/rich.js.map +1 -1
- package/dist/measure/types.d.ts +53 -3
- package/dist/measure/types.d.ts.map +1 -1
- package/dist/measure/types.js +67 -3
- package/dist/measure/types.js.map +1 -1
- package/dist/parse/citations.d.ts.map +1 -1
- package/dist/parse/citations.js +7 -3
- package/dist/parse/citations.js.map +1 -1
- package/dist/pipeline/build.d.ts +36 -0
- package/dist/pipeline/build.d.ts.map +1 -1
- package/dist/pipeline/build.js +1482 -153
- 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 +34 -7
- package/dist/pipeline/buildBlockKind.js.map +1 -1
- package/dist/pipeline/buildMeasurement.d.ts +6 -0
- package/dist/pipeline/buildMeasurement.d.ts.map +1 -1
- package/dist/pipeline/buildMeasurement.js +4 -3
- package/dist/pipeline/buildMeasurement.js.map +1 -1
- package/dist/pipeline/calloutLayout.d.ts +59 -0
- package/dist/pipeline/calloutLayout.d.ts.map +1 -1
- package/dist/pipeline/calloutLayout.js +287 -65
- package/dist/pipeline/calloutLayout.js.map +1 -1
- package/dist/pipeline/columnBalancing.d.ts +20 -0
- package/dist/pipeline/columnBalancing.d.ts.map +1 -1
- package/dist/pipeline/columnBalancing.js +27 -4
- package/dist/pipeline/columnBalancing.js.map +1 -1
- package/dist/pipeline/columnsGroup.d.ts +61 -0
- package/dist/pipeline/columnsGroup.d.ts.map +1 -0
- package/dist/pipeline/columnsGroup.js +88 -0
- package/dist/pipeline/columnsGroup.js.map +1 -0
- package/dist/pipeline/config.d.ts +28 -0
- package/dist/pipeline/config.d.ts.map +1 -1
- package/dist/pipeline/config.js +67 -8
- package/dist/pipeline/config.js.map +1 -1
- package/dist/pipeline/contentWarnings.d.ts +16 -0
- package/dist/pipeline/contentWarnings.d.ts.map +1 -1
- package/dist/pipeline/contentWarnings.js +141 -17
- package/dist/pipeline/contentWarnings.js.map +1 -1
- package/dist/pipeline/floatPlacement.d.ts +48 -4
- package/dist/pipeline/floatPlacement.d.ts.map +1 -1
- package/dist/pipeline/floatPlacement.js +43 -5
- package/dist/pipeline/floatPlacement.js.map +1 -1
- package/dist/pipeline/floatSlots.d.ts +16 -3
- package/dist/pipeline/floatSlots.d.ts.map +1 -1
- package/dist/pipeline/floatSlots.js +15 -6
- package/dist/pipeline/floatSlots.js.map +1 -1
- package/dist/pipeline/flowColumns.d.ts +41 -0
- package/dist/pipeline/flowColumns.d.ts.map +1 -0
- package/dist/pipeline/flowColumns.js +116 -0
- package/dist/pipeline/flowColumns.js.map +1 -0
- package/dist/pipeline/headerFooter.d.ts +4 -1
- package/dist/pipeline/headerFooter.d.ts.map +1 -1
- package/dist/pipeline/headerFooter.js +19 -5
- package/dist/pipeline/headerFooter.js.map +1 -1
- package/dist/pipeline/measureContentBlock.d.ts +20 -1
- package/dist/pipeline/measureContentBlock.d.ts.map +1 -1
- package/dist/pipeline/measureContentBlock.js +35 -11
- package/dist/pipeline/measureContentBlock.js.map +1 -1
- package/dist/pipeline/partPalette.d.ts +3 -0
- package/dist/pipeline/partPalette.d.ts.map +1 -1
- package/dist/pipeline/partPalette.js +5 -0
- package/dist/pipeline/partPalette.js.map +1 -1
- package/dist/pipeline/placement.d.ts +19 -0
- package/dist/pipeline/placement.d.ts.map +1 -1
- package/dist/pipeline/placement.js +12 -2
- package/dist/pipeline/placement.js.map +1 -1
- package/dist/pipeline/resourceLayout.d.ts +41 -0
- package/dist/pipeline/resourceLayout.d.ts.map +1 -1
- package/dist/pipeline/resourceLayout.js +148 -18
- package/dist/pipeline/resourceLayout.js.map +1 -1
- package/dist/pipeline/styles.d.ts.map +1 -1
- package/dist/pipeline/styles.js +8 -5
- package/dist/pipeline/styles.js.map +1 -1
- package/dist/pipeline/textWrap.d.ts +94 -0
- package/dist/pipeline/textWrap.d.ts.map +1 -0
- package/dist/pipeline/textWrap.js +188 -0
- package/dist/pipeline/textWrap.js.map +1 -0
- package/dist/pipeline/toc.d.ts.map +1 -1
- package/dist/pipeline/toc.js +6 -1
- package/dist/pipeline/toc.js.map +1 -1
- package/dist/pipeline/verseLines.d.ts +22 -2
- package/dist/pipeline/verseLines.d.ts.map +1 -1
- package/dist/pipeline/verseLines.js +52 -4
- package/dist/pipeline/verseLines.js.map +1 -1
- package/dist/preflight.d.ts +46 -1
- package/dist/preflight.d.ts.map +1 -1
- package/dist/preflight.js +42 -7
- package/dist/preflight.js.map +1 -1
- package/dist/svg/fontRegistry.d.ts +66 -0
- package/dist/svg/fontRegistry.d.ts.map +1 -0
- package/dist/svg/fontRegistry.js +294 -0
- package/dist/svg/fontRegistry.js.map +1 -0
- package/dist/svg/fonts.d.ts +140 -0
- package/dist/svg/fonts.d.ts.map +1 -0
- package/dist/svg/fonts.js +642 -0
- package/dist/svg/fonts.js.map +1 -0
- package/dist/svg/image.d.ts +44 -0
- package/dist/svg/image.d.ts.map +1 -0
- package/dist/svg/image.js +67 -0
- package/dist/svg/image.js.map +1 -0
- package/dist/table/booktabs.d.ts +37 -0
- package/dist/table/booktabs.d.ts.map +1 -0
- package/dist/table/booktabs.js +82 -0
- package/dist/table/booktabs.js.map +1 -0
- package/dist/types.d.ts +365 -10
- package/dist/types.d.ts.map +1 -1
- package/dist/util/stableHash.d.ts +20 -0
- package/dist/util/stableHash.d.ts.map +1 -0
- package/dist/util/stableHash.js +59 -0
- package/dist/util/stableHash.js.map +1 -0
- package/dist/vdt.d.ts +249 -9
- package/dist/vdt.d.ts.map +1 -1
- package/dist/vdt.js +3 -2
- package/dist/vdt.js.map +1 -1
- package/dist/word/index.d.ts +1 -1
- package/dist/word/index.d.ts.map +1 -1
- package/dist/word/index.js +1 -1
- package/dist/word/index.js.map +1 -1
- package/dist/word/toMarkdown.d.ts +10 -0
- package/dist/word/toMarkdown.d.ts.map +1 -1
- package/dist/word/toMarkdown.js +16 -1
- package/dist/word/toMarkdown.js.map +1 -1
- package/dist/worker/client.d.ts +8 -0
- package/dist/worker/client.d.ts.map +1 -1
- package/dist/worker/client.js +22 -0
- package/dist/worker/client.js.map +1 -1
- package/dist/worker/fonts.d.ts +1 -13
- package/dist/worker/fonts.d.ts.map +1 -1
- package/dist/worker/fonts.js +3 -61
- package/dist/worker/fonts.js.map +1 -1
- package/dist/worker/layout.worker.js +23 -16
- package/dist/worker/layout.worker.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fontSet.d.ts","sourceRoot":"","sources":["../../src/fonts/fontSet.ts"],"names":[],"mappings":"AAUA,OAAO,EAA8D,KAAK,eAAe,EAAE,MAAM,SAAS,CAAC;AAmD3G,yDAAyD;AACzD,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAElE;AAED;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,OAAO,GAAE,eAAe,GAAG,IAAI,GAAG,SAA4B,EAAE,OAAO,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,MAAM,EAAE,CAqBnI;AAED,uDAAuD;AACvD,MAAM,MAAM,oBAAoB,GAAG,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,KAAK,IAAI,CAAC;AAIzE;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,oBAAoB,GAAG,MAAM,IAAI,CAKzE;AAkBD;;;;;;;GAOG;AACH,wBAAgB,UAAU,CAAC,OAAO,GAAE,eAAe,GAAG,IAAI,GAAG,SAA4B,GAAG,MAAM,IAAI,CA0CrG;AAED,oCAAoC;AACpC,wBAAgB,eAAe,CAAC,OAAO,GAAE,eAAe,GAAG,IAAI,GAAG,SAA4B,GAAG,OAAO,CAEvG"}
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
// Faces that arrive after text was measured (#629). The engine keeps, per
|
|
2
|
+
// font set, which faces of each family were loaded when it last looked;
|
|
3
|
+
// a build looks again at its start (cheaply: only when the set grew or
|
|
4
|
+
// shrank, or a face finished loading), and drops the widths of the
|
|
5
|
+
// families whose faces changed, so nothing measured with a fallback face
|
|
6
|
+
// outlives the face's arrival. `watchFonts` does the same as faces load,
|
|
7
|
+
// once per animation frame, and tells hosts (`onFontsChanged`) to lay out
|
|
8
|
+
// again.
|
|
9
|
+
import { evictFontFamilies } from '../measure/font';
|
|
10
|
+
import { defaultFontSet, forgetInstalledFamilies } from './faces';
|
|
11
|
+
const tracked = new WeakMap();
|
|
12
|
+
function unquote(family) {
|
|
13
|
+
const f = family.trim();
|
|
14
|
+
return /^(["']).*\1$/.test(f) ? f.slice(1, -1) : f;
|
|
15
|
+
}
|
|
16
|
+
/** The loaded faces of every family of `fontSet`. */
|
|
17
|
+
function signatureOf(fontSet) {
|
|
18
|
+
const parts = new Map();
|
|
19
|
+
for (const face of fontSet) {
|
|
20
|
+
if (face.status !== 'loaded')
|
|
21
|
+
continue;
|
|
22
|
+
const family = unquote(face.family).toLowerCase();
|
|
23
|
+
let list = parts.get(family);
|
|
24
|
+
if (!list)
|
|
25
|
+
parts.set(family, (list = []));
|
|
26
|
+
list.push(`${face.weight}/${face.style}/${face.unicodeRange ?? ''}`);
|
|
27
|
+
}
|
|
28
|
+
const out = new Map();
|
|
29
|
+
for (const [family, list] of parts)
|
|
30
|
+
out.set(family, list.sort().join(';'));
|
|
31
|
+
return out;
|
|
32
|
+
}
|
|
33
|
+
function track(fontSet) {
|
|
34
|
+
let t = tracked.get(fontSet);
|
|
35
|
+
if (t)
|
|
36
|
+
return t;
|
|
37
|
+
const entry = {
|
|
38
|
+
size: fontSet.size ?? -1,
|
|
39
|
+
signature: signatureOf(fontSet),
|
|
40
|
+
dirty: false,
|
|
41
|
+
onLoadingDone: () => {
|
|
42
|
+
entry.dirty = true;
|
|
43
|
+
},
|
|
44
|
+
};
|
|
45
|
+
fontSet.addEventListener?.('loadingdone', entry.onLoadingDone);
|
|
46
|
+
tracked.set(fontSet, entry);
|
|
47
|
+
t = entry;
|
|
48
|
+
return t;
|
|
49
|
+
}
|
|
50
|
+
/** Whether the engine has looked at `fontSet` before. */
|
|
51
|
+
export function isFontSetTracked(fontSet) {
|
|
52
|
+
return tracked.has(fontSet);
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Look at `fontSet` again: the families whose loaded faces changed since
|
|
56
|
+
* the last look get their measurements dropped (`evictFontFamilies`) and
|
|
57
|
+
* are returned. The first look only records the set. Cheap when nothing
|
|
58
|
+
* happened: the set is walked only when its size changed or a face
|
|
59
|
+
* finished loading. `evict: false` records the set without dropping
|
|
60
|
+
* anything (the caller drops what it knows changed).
|
|
61
|
+
*/
|
|
62
|
+
export function syncFontSet(fontSet = defaultFontSet(), options) {
|
|
63
|
+
if (!fontSet)
|
|
64
|
+
return [];
|
|
65
|
+
if (!tracked.has(fontSet)) {
|
|
66
|
+
track(fontSet);
|
|
67
|
+
return [];
|
|
68
|
+
}
|
|
69
|
+
const t = track(fontSet);
|
|
70
|
+
const size = fontSet.size ?? -1;
|
|
71
|
+
if (!t.dirty && size === t.size && size !== -1)
|
|
72
|
+
return [];
|
|
73
|
+
const signature = signatureOf(fontSet);
|
|
74
|
+
const changed = [];
|
|
75
|
+
for (const [family, sig] of signature)
|
|
76
|
+
if (t.signature.get(family) !== sig)
|
|
77
|
+
changed.push(family);
|
|
78
|
+
for (const family of t.signature.keys())
|
|
79
|
+
if (!signature.has(family))
|
|
80
|
+
changed.push(family);
|
|
81
|
+
t.signature = signature;
|
|
82
|
+
t.size = size;
|
|
83
|
+
t.dirty = false;
|
|
84
|
+
if (changed.length > 0) {
|
|
85
|
+
forgetInstalledFamilies();
|
|
86
|
+
if (options?.evict !== false)
|
|
87
|
+
evictFontFamilies(changed);
|
|
88
|
+
}
|
|
89
|
+
return changed;
|
|
90
|
+
}
|
|
91
|
+
const listeners = new Set();
|
|
92
|
+
/**
|
|
93
|
+
* Call `listener` whenever faces of a watched font set arrive or leave
|
|
94
|
+
* (see {@link watchFonts}), after the engine has dropped what it measured
|
|
95
|
+
* in their families: the host lays out again. Returns the unsubscribe.
|
|
96
|
+
*/
|
|
97
|
+
export function onFontsChanged(listener) {
|
|
98
|
+
listeners.add(listener);
|
|
99
|
+
return () => {
|
|
100
|
+
listeners.delete(listener);
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
const watches = new WeakMap();
|
|
104
|
+
function nextFrame(run) {
|
|
105
|
+
const g = globalThis;
|
|
106
|
+
// A hidden page runs no animation frames: a timer stands in.
|
|
107
|
+
if (typeof g.requestAnimationFrame === 'function' && !g.document?.hidden)
|
|
108
|
+
g.requestAnimationFrame(run);
|
|
109
|
+
else
|
|
110
|
+
setTimeout(run, 16);
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Watch `fontSet` (by default `document.fonts`, or `self.fonts` in a
|
|
114
|
+
* worker): when faces finish loading, the measurements of their families
|
|
115
|
+
* are dropped — at most once per animation frame, however many slices a
|
|
116
|
+
* burst brings — and the {@link onFontsChanged} listeners are told.
|
|
117
|
+
* Calls nest; the returned function stops this watch. `prepareFonts`
|
|
118
|
+
* starts one on the set it loads into.
|
|
119
|
+
*/
|
|
120
|
+
export function watchFonts(fontSet = defaultFontSet()) {
|
|
121
|
+
if (!fontSet || !fontSet.addEventListener)
|
|
122
|
+
return () => { };
|
|
123
|
+
const set = fontSet;
|
|
124
|
+
track(set);
|
|
125
|
+
let w = watches.get(set);
|
|
126
|
+
if (!w) {
|
|
127
|
+
const watch = {
|
|
128
|
+
count: 0,
|
|
129
|
+
pending: new Set(),
|
|
130
|
+
scheduled: false,
|
|
131
|
+
listener: (event) => {
|
|
132
|
+
for (const face of event.fontfaces ?? [])
|
|
133
|
+
watch.pending.add(unquote(face.family).toLowerCase());
|
|
134
|
+
if (watch.scheduled)
|
|
135
|
+
return;
|
|
136
|
+
watch.scheduled = true;
|
|
137
|
+
nextFrame(() => {
|
|
138
|
+
watch.scheduled = false;
|
|
139
|
+
const changed = syncFontSet(set);
|
|
140
|
+
// A build between the event and this frame may have dropped
|
|
141
|
+
// them already: the faces still arrived.
|
|
142
|
+
const families = [...new Set([...changed, ...watch.pending])];
|
|
143
|
+
watch.pending.clear();
|
|
144
|
+
if (families.length === 0)
|
|
145
|
+
return;
|
|
146
|
+
for (const l of [...listeners])
|
|
147
|
+
l(families);
|
|
148
|
+
});
|
|
149
|
+
},
|
|
150
|
+
};
|
|
151
|
+
set.addEventListener('loadingdone', watch.listener);
|
|
152
|
+
watches.set(set, watch);
|
|
153
|
+
w = watch;
|
|
154
|
+
}
|
|
155
|
+
w.count++;
|
|
156
|
+
let stopped = false;
|
|
157
|
+
const current = w;
|
|
158
|
+
return () => {
|
|
159
|
+
if (stopped)
|
|
160
|
+
return;
|
|
161
|
+
stopped = true;
|
|
162
|
+
current.count--;
|
|
163
|
+
if (current.count === 0) {
|
|
164
|
+
set.removeEventListener?.('loadingdone', current.listener);
|
|
165
|
+
watches.delete(set);
|
|
166
|
+
}
|
|
167
|
+
};
|
|
168
|
+
}
|
|
169
|
+
/** Whether `fontSet` is watched. */
|
|
170
|
+
export function isWatchingFonts(fontSet = defaultFontSet()) {
|
|
171
|
+
return !!fontSet && watches.has(fontSet);
|
|
172
|
+
}
|
|
173
|
+
//# sourceMappingURL=fontSet.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fontSet.js","sourceRoot":"","sources":["../../src/fonts/fontSet.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
import type { PostextConfig, PostextContent } from '../types';
|
|
2
|
+
import type { VDTDocument } from '../vdt';
|
|
3
|
+
import { type FontContentText } from './usage';
|
|
4
|
+
import { type FontFaceLike, type FontFaceRequest, type FontFaceSetLike, type FontFallbackOptions } from './faces';
|
|
5
|
+
/** A font file: its bytes, or the URL to fetch it from (a CSS `src`
|
|
6
|
+
* value — `url(…)`, `local(…)` — is taken as written). */
|
|
7
|
+
export type FontFileSource = ArrayBuffer | ArrayBufferView | string;
|
|
8
|
+
/** A font file with the descriptors of its face, when they are not the
|
|
9
|
+
* ones asked for: the slice a file covers (`unicodeRange`), a variable
|
|
10
|
+
* weight range (`'100 900'`), an upright file given for an italic. */
|
|
11
|
+
export interface FontFile {
|
|
12
|
+
source: FontFileSource;
|
|
13
|
+
unicodeRange?: string;
|
|
14
|
+
weight?: number | string;
|
|
15
|
+
style?: 'normal' | 'italic' | string;
|
|
16
|
+
}
|
|
17
|
+
/** What a resolver answers: one file, several (the slices of a face, in
|
|
18
|
+
* the order they are added to the font set), or nothing (it has no such
|
|
19
|
+
* face). Throwing counts as nothing. */
|
|
20
|
+
export type FontResolverAnswer = FontFileSource | FontFile | readonly (FontFileSource | FontFile)[] | null | undefined;
|
|
21
|
+
export interface FontResolveRequest {
|
|
22
|
+
/** The characters the document sets (a space included), for a resolver
|
|
23
|
+
* serving a family as slices: only the files holding them. */
|
|
24
|
+
text: string;
|
|
25
|
+
codePoints: Set<number>;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* A host's font files, asked for each face no `FontFace` of the font set
|
|
29
|
+
* declares: `(family, weight, style, { text, codePoints })`. The shape of
|
|
30
|
+
* postext-pdf's `PdfFontProvider`, so one function serves the screen and
|
|
31
|
+
* the PDF. A resolver may also declare the face itself (add a style sheet,
|
|
32
|
+
* a `FontFace`) and answer null: the engine then loads what it declared.
|
|
33
|
+
*/
|
|
34
|
+
export type FontResolver = (family: string, weight: number, style: 'normal' | 'italic', request: FontResolveRequest) => FontResolverAnswer | Promise<FontResolverAnswer>;
|
|
35
|
+
type FontFaceConstructor = new (family: string, source: string | ArrayBuffer | ArrayBufferView, descriptors?: FontFaceDescriptors) => FontFaceLike;
|
|
36
|
+
export interface PrepareFontsOptions {
|
|
37
|
+
/** The font set to load into: by default `document.fonts`, or
|
|
38
|
+
* `self.fonts` in a worker. */
|
|
39
|
+
fontSet?: FontFaceSetLike | null;
|
|
40
|
+
/** Files for the faces nothing declares. */
|
|
41
|
+
resolve?: FontResolver;
|
|
42
|
+
/** Give up waiting after this many ms (default 10 000): a face still
|
|
43
|
+
* loading then is reported missing. */
|
|
44
|
+
timeoutMs?: number;
|
|
45
|
+
/** Watch the font set afterwards ({@link watchFonts}). Default true. */
|
|
46
|
+
watch?: boolean;
|
|
47
|
+
/** Register the resolved files with the font registry, for SVG
|
|
48
|
+
* pictures and layout workers. Default true. */
|
|
49
|
+
register?: boolean;
|
|
50
|
+
/** Faces to load beyond the configuration's. */
|
|
51
|
+
faces?: readonly FontFaceRequest[];
|
|
52
|
+
/** The `FontFace` constructor (default the global one). */
|
|
53
|
+
FontFace?: FontFaceConstructor;
|
|
54
|
+
/** The probe that tells an installed family from a missing one. */
|
|
55
|
+
measureWidth?: FontFallbackOptions['measureWidth'];
|
|
56
|
+
}
|
|
57
|
+
/** What a preparation found. */
|
|
58
|
+
export interface FontReport {
|
|
59
|
+
/** Faces a loaded face answers for (or an installed family). */
|
|
60
|
+
loaded: FontFaceRequest[];
|
|
61
|
+
/** Faces no face of the family answers for: their text is measured
|
|
62
|
+
* with a fallback face. */
|
|
63
|
+
missing: FontFaceRequest[];
|
|
64
|
+
/** Faces the browser draws from another weight or slant of the family
|
|
65
|
+
* (bold made heavier, italic slanted). */
|
|
66
|
+
synthesized: FontFaceRequest[];
|
|
67
|
+
/** `FontFace`s added from the resolver's files. */
|
|
68
|
+
added: number;
|
|
69
|
+
}
|
|
70
|
+
/** The texts of a build's content: the Markdown, the metadata and the
|
|
71
|
+
* resources' captions, notes and cells. */
|
|
72
|
+
export declare function contentTexts(content: PostextContent | FontContentText): string[];
|
|
73
|
+
/**
|
|
74
|
+
* The characters a document sets — its text, its resources' and
|
|
75
|
+
* metadata's, the configuration's own texts, the ASCII digits and letters
|
|
76
|
+
* of folios and labels — once each: the sample a face is loaded for, so a
|
|
77
|
+
* family served as slices (`unicode-range`: Latin Extended, Greek, Arabic,
|
|
78
|
+
* the CJK slices) brings the files the document needs.
|
|
79
|
+
*/
|
|
80
|
+
export declare function fontSampleText(content: PostextContent | FontContentText, config?: PostextConfig): string;
|
|
81
|
+
/** The faces a configuration and its text ask for, in a fixed order:
|
|
82
|
+
* families as `configFontFamilies` lists them, then the weights from light
|
|
83
|
+
* to heavy, upright before italic. */
|
|
84
|
+
export declare function configFontFaces(config: PostextConfig | undefined, text?: FontContentText): FontFaceRequest[];
|
|
85
|
+
/**
|
|
86
|
+
* Load every face `config` and its text ask for (body, headings, lists,
|
|
87
|
+
* callout titles and bodies, tables, design texts, running heads,
|
|
88
|
+
* contents, code, comic lettering, in each weight and slant the
|
|
89
|
+
* configuration sets) into the font set, for the characters the document
|
|
90
|
+
* sets, before the first build. A face the set declares is loaded through
|
|
91
|
+
* it (`fontSet.load`); one it does not is asked of `options.resolve`, and
|
|
92
|
+
* the files it gives are added as `FontFace`s (and registered for SVG
|
|
93
|
+
* pictures). The measurements of the families that changed are dropped.
|
|
94
|
+
* Resolves with which faces are there, which are missing and which the
|
|
95
|
+
* browser would synthesize. Where there is no font set (Node), every face
|
|
96
|
+
* is reported loaded and nothing is done.
|
|
97
|
+
*/
|
|
98
|
+
export declare function prepareFonts(content: PostextContent | FontContentText, config?: PostextConfig, options?: PrepareFontsOptions): Promise<FontReport>;
|
|
99
|
+
/** A document, or several (the chapters of a book). */
|
|
100
|
+
export type BuiltDocuments = VDTDocument | readonly VDTDocument[];
|
|
101
|
+
export interface LoadedFontsOptions extends PrepareFontsOptions {
|
|
102
|
+
/** The text the documents set, for the sample faces are loaded for.
|
|
103
|
+
* Default: the text of the documents' lines. */
|
|
104
|
+
text?: FontContentText;
|
|
105
|
+
/** Extra builds at most (default 2). */
|
|
106
|
+
maxRounds?: number;
|
|
107
|
+
/** Told what the last round found. */
|
|
108
|
+
onFonts?: (report: FontReport) => void;
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Run `build`, then load the faces its pages set text in that the font set
|
|
112
|
+
* could not give (a weight the configuration did not name, a face
|
|
113
|
+
* resolved only now), drop their measurements and build again — at most
|
|
114
|
+
* `maxRounds` extra builds (2). `build` returns a document or several.
|
|
115
|
+
* Faces that stay missing are reported (`onFonts`) and listed by each
|
|
116
|
+
* document's `fontFallback` warnings.
|
|
117
|
+
*/
|
|
118
|
+
export declare function withLoadedFonts<T extends BuiltDocuments>(build: () => T | Promise<T>, options?: LoadedFontsOptions): Promise<T>;
|
|
119
|
+
export {};
|
|
120
|
+
//# sourceMappingURL=prepare.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prepare.d.ts","sourceRoot":"","sources":["../../src/fonts/prepare.ts"],"names":[],"mappings":"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"}
|