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,375 @@
|
|
|
1
|
+
// Font preparation (#629): load every face a configuration and its text
|
|
2
|
+
// ask for before the first build, from the font set's declared faces or a
|
|
3
|
+
// host resolver, and lay out again with any face the pages used that the
|
|
4
|
+
// configuration did not name. Loading stays the host's: the resolver
|
|
5
|
+
// answers with files (the shape of the PDF font provider), the engine adds
|
|
6
|
+
// them to the font set and to the font registry SVG pictures read (#630).
|
|
7
|
+
import { evictFontFamilies } from '../measure/font';
|
|
8
|
+
import { collectFontUsage, configFontFamilies } from './usage';
|
|
9
|
+
import { defaultFontSet, documentFontFaces, faceRequestKey, fontFallbacks, isGenericFamily, } from './faces';
|
|
10
|
+
import { isFontSetTracked, syncFontSet, watchFonts } from './fontSet';
|
|
11
|
+
import { registerFontBytes, registerFontUrl } from '../svg/fontRegistry';
|
|
12
|
+
/** The texts of a build's content: the Markdown, the metadata and the
|
|
13
|
+
* resources' captions, notes and cells. */
|
|
14
|
+
export function contentTexts(content) {
|
|
15
|
+
if (content === undefined)
|
|
16
|
+
return [];
|
|
17
|
+
if (typeof content === 'string')
|
|
18
|
+
return [content];
|
|
19
|
+
if (Array.isArray(content))
|
|
20
|
+
return [...content];
|
|
21
|
+
const c = content;
|
|
22
|
+
const out = [c.markdown];
|
|
23
|
+
const strings = [];
|
|
24
|
+
const walk = (node, depth) => {
|
|
25
|
+
if (depth > 10 || !node)
|
|
26
|
+
return;
|
|
27
|
+
if (typeof node === 'string') {
|
|
28
|
+
strings.push(node);
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
if (typeof node !== 'object')
|
|
32
|
+
return;
|
|
33
|
+
if (Array.isArray(node)) {
|
|
34
|
+
for (const item of node)
|
|
35
|
+
walk(item, depth + 1);
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
for (const [key, value] of Object.entries(node)) {
|
|
39
|
+
if (/file|url|src|markup|data|id$/i.test(key))
|
|
40
|
+
continue;
|
|
41
|
+
walk(value, depth + 1);
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
walk(c.metadata, 0);
|
|
45
|
+
walk(c.resources, 0);
|
|
46
|
+
if (strings.length > 0)
|
|
47
|
+
out.push(strings.join(' '));
|
|
48
|
+
return out;
|
|
49
|
+
}
|
|
50
|
+
/** Text the configuration itself sets: design texts, running heads,
|
|
51
|
+
* labels, contents titles. */
|
|
52
|
+
function configTexts(config) {
|
|
53
|
+
const strings = [];
|
|
54
|
+
const walk = (node, key, depth) => {
|
|
55
|
+
if (depth > 12 || !node)
|
|
56
|
+
return;
|
|
57
|
+
if (typeof node === 'string') {
|
|
58
|
+
if (!/color|colour|family|id$|url|src|file/i.test(key))
|
|
59
|
+
strings.push(node);
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
if (typeof node !== 'object')
|
|
63
|
+
return;
|
|
64
|
+
if (Array.isArray(node)) {
|
|
65
|
+
for (const item of node)
|
|
66
|
+
walk(item, key, depth + 1);
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
for (const [k, value] of Object.entries(node))
|
|
70
|
+
walk(value, k, depth + 1);
|
|
71
|
+
};
|
|
72
|
+
walk(config, '', 0);
|
|
73
|
+
return strings.join(' ');
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* The characters a document sets — its text, its resources' and
|
|
77
|
+
* metadata's, the configuration's own texts, the ASCII digits and letters
|
|
78
|
+
* of folios and labels — once each: the sample a face is loaded for, so a
|
|
79
|
+
* family served as slices (`unicode-range`: Latin Extended, Greek, Arabic,
|
|
80
|
+
* the CJK slices) brings the files the document needs.
|
|
81
|
+
*/
|
|
82
|
+
export function fontSampleText(content, config) {
|
|
83
|
+
const seen = new Set([' ']);
|
|
84
|
+
for (let c = 0x21; c < 0x7f; c++)
|
|
85
|
+
seen.add(String.fromCharCode(c));
|
|
86
|
+
for (const text of [...contentTexts(content), configTexts(config)]) {
|
|
87
|
+
for (const ch of text)
|
|
88
|
+
if (ch > ' ' && ch !== '')
|
|
89
|
+
seen.add(ch);
|
|
90
|
+
}
|
|
91
|
+
return [...seen].join('');
|
|
92
|
+
}
|
|
93
|
+
/** The faces a configuration and its text ask for, in a fixed order:
|
|
94
|
+
* families as `configFontFamilies` lists them, then the weights from light
|
|
95
|
+
* to heavy, upright before italic. */
|
|
96
|
+
export function configFontFaces(config, text) {
|
|
97
|
+
const cfg = config ?? {};
|
|
98
|
+
const usage = collectFontUsage(cfg, { markdown: text });
|
|
99
|
+
const families = [...new Set([...configFontFamilies(cfg, text), ...usage.keys()])];
|
|
100
|
+
const out = [];
|
|
101
|
+
for (const family of families) {
|
|
102
|
+
if (isGenericFamily(family))
|
|
103
|
+
continue;
|
|
104
|
+
const uses = usage.get(family) ?? [{ weight: 400, style: 'normal' }];
|
|
105
|
+
const seen = new Set();
|
|
106
|
+
const faces = uses
|
|
107
|
+
.filter((u) => {
|
|
108
|
+
const key = `${u.weight}|${u.style}`;
|
|
109
|
+
if (seen.has(key))
|
|
110
|
+
return false;
|
|
111
|
+
seen.add(key);
|
|
112
|
+
return true;
|
|
113
|
+
})
|
|
114
|
+
.sort((a, b) => a.weight - b.weight || (a.style === b.style ? 0 : a.style === 'normal' ? -1 : 1));
|
|
115
|
+
for (const u of faces)
|
|
116
|
+
out.push({ family, weight: u.weight, style: u.style });
|
|
117
|
+
}
|
|
118
|
+
return out;
|
|
119
|
+
}
|
|
120
|
+
function fontSpec(f) {
|
|
121
|
+
return `${f.style === 'italic' ? 'italic ' : ''}${f.weight} 16px ${JSON.stringify(f.family)}`;
|
|
122
|
+
}
|
|
123
|
+
function normalizeAnswer(answer) {
|
|
124
|
+
if (answer === null || answer === undefined)
|
|
125
|
+
return [];
|
|
126
|
+
const list = Array.isArray(answer) ? answer : [answer];
|
|
127
|
+
const out = [];
|
|
128
|
+
for (const item of list) {
|
|
129
|
+
if (item === null || item === undefined)
|
|
130
|
+
continue;
|
|
131
|
+
if (typeof item === 'string' || item instanceof ArrayBuffer || ArrayBuffer.isView(item))
|
|
132
|
+
out.push({ source: item });
|
|
133
|
+
else if (typeof item === 'object' && 'source' in item)
|
|
134
|
+
out.push(item);
|
|
135
|
+
}
|
|
136
|
+
return out.filter((f) => (typeof f.source === 'string' ? f.source.length > 0 : f.source.byteLength > 0));
|
|
137
|
+
}
|
|
138
|
+
function cssSource(url) {
|
|
139
|
+
return /^\s*(url|local)\(/i.test(url) ? url : `url(${JSON.stringify(url)})`;
|
|
140
|
+
}
|
|
141
|
+
function bytesOf(source) {
|
|
142
|
+
return source instanceof ArrayBuffer ? new Uint8Array(source) : new Uint8Array(source.buffer, source.byteOffset, source.byteLength);
|
|
143
|
+
}
|
|
144
|
+
/** `promise`, or `fallback` once `deadline` (ms, `Date.now()` scale) passes. */
|
|
145
|
+
function until(promise, deadline, fallback) {
|
|
146
|
+
const left = deadline - Date.now();
|
|
147
|
+
if (left <= 0)
|
|
148
|
+
return Promise.resolve(fallback);
|
|
149
|
+
let timer;
|
|
150
|
+
return Promise.race([
|
|
151
|
+
promise.catch(() => fallback),
|
|
152
|
+
new Promise((resolve) => {
|
|
153
|
+
timer = setTimeout(() => resolve(fallback), left);
|
|
154
|
+
}),
|
|
155
|
+
]).finally(() => {
|
|
156
|
+
if (timer !== undefined)
|
|
157
|
+
clearTimeout(timer);
|
|
158
|
+
});
|
|
159
|
+
}
|
|
160
|
+
function hasExactFace(declared, f) {
|
|
161
|
+
return declared.some((d) => {
|
|
162
|
+
const style = /italic|oblique/i.test(d.style ?? '') ? 'italic' : 'normal';
|
|
163
|
+
if (style !== f.style)
|
|
164
|
+
return false;
|
|
165
|
+
const parts = (d.weight ?? '400').trim().split(/\s+/).map((w) => (w === 'bold' ? 700 : w === 'normal' ? 400 : Number(w)));
|
|
166
|
+
const lo = Number.isFinite(parts[0]) ? parts[0] : 400;
|
|
167
|
+
const hi = Number.isFinite(parts[1]) ? parts[1] : lo;
|
|
168
|
+
return f.weight >= Math.min(lo, hi) && f.weight <= Math.max(lo, hi);
|
|
169
|
+
});
|
|
170
|
+
}
|
|
171
|
+
function declaredFaces(fontSet, family) {
|
|
172
|
+
const lower = family.toLowerCase();
|
|
173
|
+
const out = [];
|
|
174
|
+
for (const face of fontSet) {
|
|
175
|
+
const f = face.family.trim().replace(/^(["'])(.*)\1$/, '$2').toLowerCase();
|
|
176
|
+
if (f === lower)
|
|
177
|
+
out.push(face);
|
|
178
|
+
}
|
|
179
|
+
return out;
|
|
180
|
+
}
|
|
181
|
+
/** Load `faces` into `fontSet`: what it declares through `fontSet.load`,
|
|
182
|
+
* the rest through the resolver. Faces from the resolver are added once
|
|
183
|
+
* all have loaded, in the order of `faces` and of each answer (latin
|
|
184
|
+
* before latin-ext before greek when the resolver answers so), so the
|
|
185
|
+
* set is the same whatever order the files arrive in. */
|
|
186
|
+
async function loadFaces(faces, fontSet, sample, options) {
|
|
187
|
+
const deadline = Date.now() + (options.timeoutMs ?? 10_000);
|
|
188
|
+
const FontFaceCtor = options.FontFace ?? globalThis.FontFace;
|
|
189
|
+
const codePoints = new Set();
|
|
190
|
+
for (const ch of sample)
|
|
191
|
+
codePoints.add(ch.codePointAt(0));
|
|
192
|
+
const request = { text: sample, codePoints };
|
|
193
|
+
const touched = new Set();
|
|
194
|
+
const toAdd = faces.map(() => []);
|
|
195
|
+
await Promise.all(faces.map(async (f, i) => {
|
|
196
|
+
let declared = declaredFaces(fontSet, f.family);
|
|
197
|
+
if (!hasExactFace(declared, f) && options.resolve) {
|
|
198
|
+
let files = [];
|
|
199
|
+
try {
|
|
200
|
+
files = normalizeAnswer(await until(Promise.resolve(options.resolve(f.family, f.weight, f.style, request)), deadline, null));
|
|
201
|
+
}
|
|
202
|
+
catch {
|
|
203
|
+
files = [];
|
|
204
|
+
}
|
|
205
|
+
if (files.length > 0 && FontFaceCtor) {
|
|
206
|
+
const made = files.map((file) => {
|
|
207
|
+
const descriptors = {
|
|
208
|
+
weight: String(file.weight ?? f.weight),
|
|
209
|
+
style: file.style ?? f.style,
|
|
210
|
+
...(file.unicodeRange ? { unicodeRange: file.unicodeRange } : {}),
|
|
211
|
+
};
|
|
212
|
+
const source = typeof file.source === 'string' ? cssSource(file.source) : file.source;
|
|
213
|
+
return { file, face: new FontFaceCtor(f.family, source, descriptors), descriptors };
|
|
214
|
+
});
|
|
215
|
+
const loaded = await Promise.all(made.map(async ({ face }) => (face.load ? until(face.load().then(() => true), deadline, false) : true)));
|
|
216
|
+
made.forEach(({ file, face, descriptors }, k) => {
|
|
217
|
+
if (!loaded[k])
|
|
218
|
+
return;
|
|
219
|
+
toAdd[i].push(face);
|
|
220
|
+
if (options.register !== false) {
|
|
221
|
+
const style = String(descriptors.style);
|
|
222
|
+
if (typeof file.source === 'string') {
|
|
223
|
+
if (!/^\s*local\(/i.test(file.source))
|
|
224
|
+
registerFontUrl(f.family, String(descriptors.weight), style, file.source.replace(/^\s*url\(\s*["']?|["']?\s*\)\s*$/g, ''), { unicodeRange: file.unicodeRange });
|
|
225
|
+
}
|
|
226
|
+
else {
|
|
227
|
+
registerFontBytes(f.family, String(descriptors.weight), style, bytesOf(file.source), { unicodeRange: file.unicodeRange });
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
});
|
|
231
|
+
if (toAdd[i].length > 0) {
|
|
232
|
+
touched.add(f.family);
|
|
233
|
+
return;
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
// The resolver may have declared the face itself.
|
|
237
|
+
declared = declaredFaces(fontSet, f.family);
|
|
238
|
+
}
|
|
239
|
+
if (declared.length > 0) {
|
|
240
|
+
const before = declared.filter((d) => d.status === 'loaded').length;
|
|
241
|
+
await until(fontSet.load(fontSpec(f), sample), deadline, []);
|
|
242
|
+
const after = declaredFaces(fontSet, f.family).filter((d) => d.status === 'loaded').length;
|
|
243
|
+
if (after !== before)
|
|
244
|
+
touched.add(f.family);
|
|
245
|
+
}
|
|
246
|
+
}));
|
|
247
|
+
let added = 0;
|
|
248
|
+
for (const list of toAdd) {
|
|
249
|
+
for (const face of list) {
|
|
250
|
+
fontSet.add(face);
|
|
251
|
+
added++;
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
return { added, touched };
|
|
255
|
+
}
|
|
256
|
+
/** Whether `fontSet` has a loaded face, or an installed family, for each
|
|
257
|
+
* face; split into the report's lists. */
|
|
258
|
+
function classify(faces, fontSet, options, added) {
|
|
259
|
+
const fallbacks = new Map(fontFallbacks(faces, fontSet, { measureWidth: options.measureWidth }).map((f) => [faceRequestKey(f), f]));
|
|
260
|
+
const report = { loaded: [], missing: [], synthesized: [], added };
|
|
261
|
+
for (const f of faces) {
|
|
262
|
+
const fb = fallbacks.get(faceRequestKey(f));
|
|
263
|
+
if (!fb)
|
|
264
|
+
report.loaded.push(f);
|
|
265
|
+
else if (fb.reason === 'missing')
|
|
266
|
+
report.missing.push(f);
|
|
267
|
+
else
|
|
268
|
+
report.synthesized.push(f);
|
|
269
|
+
}
|
|
270
|
+
return report;
|
|
271
|
+
}
|
|
272
|
+
/**
|
|
273
|
+
* Load every face `config` and its text ask for (body, headings, lists,
|
|
274
|
+
* callout titles and bodies, tables, design texts, running heads,
|
|
275
|
+
* contents, code, comic lettering, in each weight and slant the
|
|
276
|
+
* configuration sets) into the font set, for the characters the document
|
|
277
|
+
* sets, before the first build. A face the set declares is loaded through
|
|
278
|
+
* it (`fontSet.load`); one it does not is asked of `options.resolve`, and
|
|
279
|
+
* the files it gives are added as `FontFace`s (and registered for SVG
|
|
280
|
+
* pictures). The measurements of the families that changed are dropped.
|
|
281
|
+
* Resolves with which faces are there, which are missing and which the
|
|
282
|
+
* browser would synthesize. Where there is no font set (Node), every face
|
|
283
|
+
* is reported loaded and nothing is done.
|
|
284
|
+
*/
|
|
285
|
+
export async function prepareFonts(content, config, options = {}) {
|
|
286
|
+
const texts = contentTexts(content);
|
|
287
|
+
const wanted = configFontFaces(config, texts);
|
|
288
|
+
for (const f of options.faces ?? [])
|
|
289
|
+
if (!wanted.some((w) => faceRequestKey(w) === faceRequestKey(f)))
|
|
290
|
+
wanted.push(f);
|
|
291
|
+
const fontSet = options.fontSet === undefined ? defaultFontSet() : options.fontSet;
|
|
292
|
+
if (!fontSet)
|
|
293
|
+
return { loaded: wanted, missing: [], synthesized: [], added: 0 };
|
|
294
|
+
return prepareFaces(wanted, fontSet, fontSampleText(content, config), options);
|
|
295
|
+
}
|
|
296
|
+
async function prepareFaces(wanted, fontSet, sample, options) {
|
|
297
|
+
const known = isFontSetTracked(fontSet);
|
|
298
|
+
if (!known)
|
|
299
|
+
syncFontSet(fontSet);
|
|
300
|
+
const { added, touched } = await loadFaces(wanted, fontSet, sample, options);
|
|
301
|
+
// Drop what was measured in the families whose faces changed: the set's
|
|
302
|
+
// own record says which when the engine knew it before; on first sight,
|
|
303
|
+
// every family this call loaded faces for.
|
|
304
|
+
const changed = new Set(syncFontSet(fontSet, { evict: false }));
|
|
305
|
+
if (!known)
|
|
306
|
+
for (const family of touched)
|
|
307
|
+
changed.add(family.toLowerCase());
|
|
308
|
+
if (changed.size > 0)
|
|
309
|
+
evictFontFamilies(changed);
|
|
310
|
+
if (options.watch !== false)
|
|
311
|
+
watchFonts(fontSet);
|
|
312
|
+
return classify(wanted, fontSet, options, added);
|
|
313
|
+
}
|
|
314
|
+
function documentsOf(result) {
|
|
315
|
+
return Array.isArray(result) ? [...result] : [result];
|
|
316
|
+
}
|
|
317
|
+
/** The text of a document's lines (for the sample). */
|
|
318
|
+
function documentText(docs) {
|
|
319
|
+
const parts = [];
|
|
320
|
+
for (const doc of docs)
|
|
321
|
+
for (const block of doc.blocks)
|
|
322
|
+
for (const line of block.lines)
|
|
323
|
+
for (const seg of line.segments ?? [])
|
|
324
|
+
parts.push(seg.text);
|
|
325
|
+
return parts.join('');
|
|
326
|
+
}
|
|
327
|
+
/**
|
|
328
|
+
* Run `build`, then load the faces its pages set text in that the font set
|
|
329
|
+
* could not give (a weight the configuration did not name, a face
|
|
330
|
+
* resolved only now), drop their measurements and build again — at most
|
|
331
|
+
* `maxRounds` extra builds (2). `build` returns a document or several.
|
|
332
|
+
* Faces that stay missing are reported (`onFonts`) and listed by each
|
|
333
|
+
* document's `fontFallback` warnings.
|
|
334
|
+
*/
|
|
335
|
+
export async function withLoadedFonts(build, options = {}) {
|
|
336
|
+
const fontSet = options.fontSet === undefined ? defaultFontSet() : options.fontSet;
|
|
337
|
+
let result = await build();
|
|
338
|
+
if (!fontSet)
|
|
339
|
+
return result;
|
|
340
|
+
const tried = new Set();
|
|
341
|
+
const rounds = options.maxRounds ?? 2;
|
|
342
|
+
let report;
|
|
343
|
+
for (let round = 0;; round++) {
|
|
344
|
+
const docs = documentsOf(result);
|
|
345
|
+
const faces = new Map();
|
|
346
|
+
for (const doc of docs)
|
|
347
|
+
for (const f of documentFontFaces(doc))
|
|
348
|
+
faces.set(faceRequestKey(f), f);
|
|
349
|
+
const all = [...faces.values()];
|
|
350
|
+
const fresh = fontFallbacks(all, fontSet, { measureWidth: options.measureWidth })
|
|
351
|
+
.filter((f) => !tried.has(faceRequestKey(f)))
|
|
352
|
+
.map(({ family, weight, style }) => ({ family, weight, style }));
|
|
353
|
+
if (fresh.length === 0 || round >= rounds) {
|
|
354
|
+
report = classify(all, fontSet, options, report?.added ?? 0);
|
|
355
|
+
break;
|
|
356
|
+
}
|
|
357
|
+
for (const f of fresh)
|
|
358
|
+
tried.add(faceRequestKey(f));
|
|
359
|
+
const sample = fontSampleText(options.text ?? documentText(docs));
|
|
360
|
+
const before = new Set(fontFallbacks(fresh, fontSet, { measureWidth: options.measureWidth }).map(faceRequestKey));
|
|
361
|
+
const step = await prepareFaces(fresh, fontSet, sample, { ...options, watch: false });
|
|
362
|
+
const stillMissing = new Set([...step.missing, ...step.synthesized].map(faceRequestKey));
|
|
363
|
+
const gained = [...before].some((k) => !stillMissing.has(k));
|
|
364
|
+
if (step.added === 0 && !gained) {
|
|
365
|
+
report = classify(all, fontSet, options, 0);
|
|
366
|
+
break;
|
|
367
|
+
}
|
|
368
|
+
result = await build();
|
|
369
|
+
}
|
|
370
|
+
if (options.watch !== false)
|
|
371
|
+
watchFonts(fontSet);
|
|
372
|
+
options.onFonts?.(report);
|
|
373
|
+
return result;
|
|
374
|
+
}
|
|
375
|
+
//# sourceMappingURL=prepare.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prepare.js","sourceRoot":"","sources":["../../src/fonts/prepare.ts"],"names":[],"mappings":"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"}
|
package/dist/frontmatter.d.ts
CHANGED
|
@@ -11,6 +11,20 @@ export interface ParsedFrontmatter {
|
|
|
11
11
|
start: number;
|
|
12
12
|
end: number;
|
|
13
13
|
}>;
|
|
14
|
+
/** Set when the block does not parse (YAML a reader is still typing, an
|
|
15
|
+
* unclosed quote): `metadata` is then empty and `content` is the text
|
|
16
|
+
* after the block's closing line, as with a block that parses. */
|
|
17
|
+
error?: FrontmatterError;
|
|
18
|
+
}
|
|
19
|
+
/** Why a front-matter block could not be read, and where it is. */
|
|
20
|
+
export interface FrontmatterError {
|
|
21
|
+
/** The parser's reason, with the line and column it stopped at
|
|
22
|
+
* (`unexpected end of the stream within a double quoted scalar (3:1)`). */
|
|
23
|
+
message: string;
|
|
24
|
+
/** The block's source range, from its opening `---` to the end of its
|
|
25
|
+
* closing line (or of the text, when it is never closed). */
|
|
26
|
+
sourceStart: number;
|
|
27
|
+
sourceEnd: number;
|
|
14
28
|
}
|
|
15
29
|
/** Offsets of the `key: value` values of a frontmatter block: line 1 is the
|
|
16
30
|
* opening `---`, the block ends at the next `---` line; a value is what
|
|
@@ -52,5 +66,11 @@ export declare function metadataText(value: unknown, locale?: string, numberingS
|
|
|
52
66
|
* no text form is dropped. Other keys are kept as parsed. `numberingSystem`
|
|
53
67
|
* sets the digits of a date (see {@link dateLocaleOf}). */
|
|
54
68
|
export declare function normalizeMetadata(metadata: DocumentMetadata, locale?: string, numberingSystem?: string): DocumentMetadata;
|
|
69
|
+
/**
|
|
70
|
+
* The front matter of `markdown` and the text after it. Never throws: a
|
|
71
|
+
* block that does not parse (YAML being typed, an unclosed quote) gives no
|
|
72
|
+
* metadata, the text after the block as `content`, and the reason in
|
|
73
|
+
* `error` — `collectContentWarnings` reports it as `invalidFrontmatter`.
|
|
74
|
+
*/
|
|
55
75
|
export declare function extractFrontmatter(markdown: string): ParsedFrontmatter;
|
|
56
76
|
//# sourceMappingURL=frontmatter.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"frontmatter.d.ts","sourceRoot":"","sources":["../src/frontmatter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAGhD,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,wEAAwE;IACxE,aAAa,EAAE,MAAM,CAAC;IACtB;;qDAEiD;IACjD,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"frontmatter.d.ts","sourceRoot":"","sources":["../src/frontmatter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAGhD,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,wEAAwE;IACxE,aAAa,EAAE,MAAM,CAAC;IACtB;;qDAEiD;IACjD,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC9D;;uEAEmE;IACnE,KAAK,CAAC,EAAE,gBAAgB,CAAC;CAC1B;AAED,mEAAmE;AACnE,MAAM,WAAW,gBAAgB;IAC/B;gFAC4E;IAC5E,OAAO,EAAE,MAAM,CAAC;IAChB;kEAC8D;IAC9D,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;kEAEkE;AAClE,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC,GAAG,SAAS,CAyBpH;AAMD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,MAAM,GAAG,MAAM,CAY7E;AAaD;;;;;;;;;;GAUG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAoB1G;AAED;;;4DAG4D;AAC5D,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,gBAAgB,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,MAAM,GAAG,gBAAgB,CAWzH;AA4CD;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,iBAAiB,CA2BtE"}
|
package/dist/frontmatter.js
CHANGED
|
@@ -135,8 +135,71 @@ export function normalizeMetadata(metadata, locale, numberingSystem) {
|
|
|
135
135
|
}
|
|
136
136
|
return out ?? metadata;
|
|
137
137
|
}
|
|
138
|
+
/** gray-matter's split of a leading front-matter block, without parsing
|
|
139
|
+
* it: the block opens with `---` (a fourth `-` makes it no block), the rest
|
|
140
|
+
* of that line names its language, and it closes at the next line starting
|
|
141
|
+
* with `---`; the body is what follows, minus one line break. `undefined`
|
|
142
|
+
* when the text has no block. */
|
|
143
|
+
function splitFrontmatter(markdown) {
|
|
144
|
+
if (!markdown.startsWith('---') || markdown.charAt(3) === '-')
|
|
145
|
+
return undefined;
|
|
146
|
+
let pos = 3;
|
|
147
|
+
// As gray-matter reads it: up to the first line break (all but the last
|
|
148
|
+
// character when there is none).
|
|
149
|
+
const rest = markdown.slice(pos);
|
|
150
|
+
pos += rest.slice(0, rest.search(/\r?\n/)).length;
|
|
151
|
+
const close = markdown.indexOf('\n---', pos);
|
|
152
|
+
if (close === -1)
|
|
153
|
+
return { blockEnd: markdown.length, content: '' };
|
|
154
|
+
let start = close + 4;
|
|
155
|
+
const lineEnd = markdown.indexOf('\n', start);
|
|
156
|
+
const blockEnd = lineEnd === -1 ? markdown.length : lineEnd + 1;
|
|
157
|
+
if (markdown[start] === '\r')
|
|
158
|
+
start++;
|
|
159
|
+
if (markdown[start] === '\n')
|
|
160
|
+
start++;
|
|
161
|
+
return { blockEnd, content: markdown.slice(start) };
|
|
162
|
+
}
|
|
163
|
+
/** The YAML reason of a parse failure, with the line (in `markdown`) and
|
|
164
|
+
* column it stopped at when the parser gives them. */
|
|
165
|
+
function frontmatterErrorMessage(error) {
|
|
166
|
+
const e = error;
|
|
167
|
+
const reason = typeof e?.reason === 'string' && e.reason ? e.reason : typeof e?.message === 'string' ? e.message.split('\n')[0] : String(error);
|
|
168
|
+
const line = e?.mark?.line;
|
|
169
|
+
const column = e?.mark?.column;
|
|
170
|
+
// The YAML text begins with the line break that ends the opening `---`
|
|
171
|
+
// line, so its line k is the document's line k + 1.
|
|
172
|
+
return typeof line === 'number' && typeof column === 'number' ? `${reason} (${line + 1}:${column + 1})` : reason;
|
|
173
|
+
}
|
|
174
|
+
/** gray-matter caches a text before parsing it, so a text whose block
|
|
175
|
+
* throws is cached half-made: asked again, it comes back unparsed, block
|
|
176
|
+
* and all, with no error. */
|
|
177
|
+
function forgetFailedParse(markdown) {
|
|
178
|
+
const cache = matter.cache;
|
|
179
|
+
if (cache)
|
|
180
|
+
delete cache[markdown.replace(/^\uFEFF/, '')];
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* The front matter of `markdown` and the text after it. Never throws: a
|
|
184
|
+
* block that does not parse (YAML being typed, an unclosed quote) gives no
|
|
185
|
+
* metadata, the text after the block as `content`, and the reason in
|
|
186
|
+
* `error` — `collectContentWarnings` reports it as `invalidFrontmatter`.
|
|
187
|
+
*/
|
|
138
188
|
export function extractFrontmatter(markdown) {
|
|
139
|
-
|
|
189
|
+
let data;
|
|
190
|
+
let content;
|
|
191
|
+
let error;
|
|
192
|
+
try {
|
|
193
|
+
({ data, content } = matter(markdown));
|
|
194
|
+
}
|
|
195
|
+
catch (e) {
|
|
196
|
+
forgetFailedParse(markdown);
|
|
197
|
+
const bom = markdown.startsWith('\uFEFF') ? 1 : 0;
|
|
198
|
+
const split = splitFrontmatter(markdown.slice(bom));
|
|
199
|
+
data = {};
|
|
200
|
+
content = split ? split.content : markdown.slice(bom);
|
|
201
|
+
error = { message: frontmatterErrorMessage(e), sourceStart: bom, sourceEnd: bom + (split?.blockEnd ?? 0) };
|
|
202
|
+
}
|
|
140
203
|
// gray-matter strips the leading frontmatter block and one trailing newline.
|
|
141
204
|
// Recover the body offset by searching for the content's prefix — fall back
|
|
142
205
|
// to 0 when there is no frontmatter (content === markdown).
|
|
@@ -146,7 +209,10 @@ export function extractFrontmatter(markdown) {
|
|
|
146
209
|
if (idx >= 0)
|
|
147
210
|
contentOffset = idx;
|
|
148
211
|
}
|
|
149
|
-
const fieldSources = content !== markdown ? frontmatterFieldSources(markdown) : undefined;
|
|
150
|
-
|
|
212
|
+
const fieldSources = content !== markdown && !error ? frontmatterFieldSources(markdown) : undefined;
|
|
213
|
+
// A block of YAML that is not a mapping (a bare list or scalar) names no
|
|
214
|
+
// fields.
|
|
215
|
+
const metadata = data !== null && typeof data === 'object' && !Array.isArray(data) ? data : {};
|
|
216
|
+
return { metadata, content, contentOffset, ...(fieldSources ? { fieldSources } : {}), ...(error ? { error } : {}) };
|
|
151
217
|
}
|
|
152
218
|
//# sourceMappingURL=frontmatter.js.map
|
package/dist/frontmatter.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"frontmatter.js","sourceRoot":"","sources":["../src/frontmatter.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,aAAa,CAAC;AAEjC,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"frontmatter.js","sourceRoot":"","sources":["../src/frontmatter.ts"],"names":[],"mappings":"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"}
|
package/dist/html-backend.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { VDTDocument, RenderWarning } from './vdt';
|
|
2
|
+
import { type SvgFontSyncProvider } from './svg/fonts';
|
|
2
3
|
export interface RenderHtmlOptions {
|
|
3
4
|
/** Layout mode: single vertical column or many columns laid out horizontally. */
|
|
4
5
|
mode?: 'single' | 'multi';
|
|
@@ -66,6 +67,22 @@ export interface RenderHtmlOptions {
|
|
|
66
67
|
* the resources all of them place ({@link anchoredResourceIds}), so a
|
|
67
68
|
* reference to a figure an earlier chapter placed links to it. */
|
|
68
69
|
refTargets?: Iterable<string>;
|
|
70
|
+
/** Embed the document's fonts in the SVG pictures `resourceImageUrl`
|
|
71
|
+
* serves as `data:image/svg+xml` URIs (#630): the faces their text
|
|
72
|
+
* names, as `@font-face` data URIs, so an `<img>` sets the labels in
|
|
73
|
+
* them. `true` takes the faces held in memory by the registry
|
|
74
|
+
* (`registerFontBytes`, `loadBundleFonts`); an object names another
|
|
75
|
+
* provider, the size cap per SVG and families to leave out. Skipped
|
|
76
|
+
* under `diagramStyle.inlineFonts: false` and for a resource with
|
|
77
|
+
* `svg.inlineFonts: false`. A family with no face is reported as
|
|
78
|
+
* `svgFontUnavailable`, the cap as `svgFontsTooLarge`. Default off
|
|
79
|
+
* (object URLs cannot be read synchronously; `bundleImageUrl` inlines
|
|
80
|
+
* on its own). */
|
|
81
|
+
inlineSvgFonts?: boolean | {
|
|
82
|
+
fonts?: SvgFontSyncProvider;
|
|
83
|
+
maxBytes?: number;
|
|
84
|
+
withhold?: (family: string) => boolean;
|
|
85
|
+
};
|
|
69
86
|
}
|
|
70
87
|
/**
|
|
71
88
|
* The resources this document anchors in its HTML (`id="pt-res-<id>"`):
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"html-backend.d.ts","sourceRoot":"","sources":["../src/html-backend.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,WAAW,EAqBX,aAAa,EACd,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"html-backend.d.ts","sourceRoot":"","sources":["../src/html-backend.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,WAAW,EAqBX,aAAa,EACd,MAAM,OAAO,CAAC;AAIf,OAAO,EAA8B,KAAK,mBAAmB,EAAE,MAAM,aAAa,CAAC;AA8DnF,MAAM,WAAW,iBAAiB;IAChC,iFAAiF;IACjF,IAAI,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC;IAC1B,sEAAsE;IACtE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qDAAqD;IACrD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,yDAAyD;IACzD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;kDAI8C;IAC9C,gBAAgB,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC,GAAG;QAC5D;;;0BAGkB;QAClB,SAAS,CAAC,EAAE,OAAO,CAAC;KACrB,CAAC;IACF;;;;;;;;;;;;iEAY6D;IAC7D,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;4DAGwD;IACxD,gBAAgB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;IAC1D;;;;;;;2DAOuD;IACvD,MAAM,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;QAAC,OAAO,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;QAAC,GAAG,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAA;KAAE,CAAC;IACnG;;;wDAGoD;IACpD,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,aAAa,KAAK,IAAI,CAAC;IAC7C;;;;;;;uEAOmE;IACnE,UAAU,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC9B;;;;;;;;;;uBAUmB;IACnB,cAAc,CAAC,EAAE,OAAO,GAAG;QACzB,KAAK,CAAC,EAAE,mBAAmB,CAAC;QAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC;KACxC,CAAC;CACH;AAmKD;;;;;;;;;;;GAWG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC,CAajE;AAutED,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC5C,8EAA8E;IAC9E,cAAc,EAAE,MAAM,CAAC;IACvB;4EACwE;IACxE,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC;IACzB,KAAK,EAAE,mBAAmB,EAAE,CAAC;CAC9B;AAED;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,eAAe,QAS4B,CAAC;AAEzD;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,WAAW,EAChB,OAAO,GAAE,iBAAsB,GAC9B,eAAe,CAmFjB;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,WAAW,EAAE,OAAO,GAAE,iBAAsB,GAAG,MAAM,CAEtF"}
|