postext 1.22.3 → 1.24.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/designOverflowPin.test.d.ts +2 -0
- package/dist/__tests__/bundle/designOverflowPin.test.d.ts.map +1 -0
- package/dist/__tests__/bundle/designOverflowPin.test.js +87 -0
- package/dist/__tests__/bundle/designOverflowPin.test.js.map +1 -0
- package/dist/__tests__/bundle.test.js +1 -1
- package/dist/__tests__/bundle.test.js.map +1 -1
- package/dist/__tests__/codeBlocks.test.d.ts +2 -0
- package/dist/__tests__/codeBlocks.test.d.ts.map +1 -0
- package/dist/__tests__/codeBlocks.test.js +550 -0
- package/dist/__tests__/codeBlocks.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 +30 -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.d.ts +2 -0
- package/dist/__tests__/hardBreaks.test.d.ts.map +1 -0
- package/dist/__tests__/hardBreaks.test.js +226 -0
- package/dist/__tests__/hardBreaks.test.js.map +1 -0
- 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__/lineNumbers.test.d.ts +2 -0
- package/dist/__tests__/lineNumbers.test.d.ts.map +1 -0
- package/dist/__tests__/lineNumbers.test.js +304 -0
- package/dist/__tests__/lineNumbers.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__/paragraphDropCap.test.d.ts +2 -0
- package/dist/__tests__/paragraphDropCap.test.d.ts.map +1 -0
- package/dist/__tests__/paragraphDropCap.test.js +442 -0
- package/dist/__tests__/paragraphDropCap.test.js.map +1 -0
- package/dist/__tests__/paragraphStyleIndent.test.js +26 -2
- package/dist/__tests__/paragraphStyleIndent.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 +1 -1
- package/dist/__tests__/pipeline/calloutInlineResourceGap.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/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/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/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/paragraphContainerTail.test.js +1 -1
- package/dist/__tests__/pipeline/paragraphContainerTail.test.js.map +1 -1
- package/dist/__tests__/pipeline/paragraphStyleFaces.test.js +7 -1
- package/dist/__tests__/pipeline/paragraphStyleFaces.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/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__/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__/tabStops.test.d.ts +2 -0
- package/dist/__tests__/tabStops.test.d.ts.map +1 -0
- package/dist/__tests__/tabStops.test.js +394 -0
- package/dist/__tests__/tabStops.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.d.ts +2 -0
- package/dist/__tests__/verseLines.test.d.ts.map +1 -0
- package/dist/__tests__/verseLines.test.js +505 -0
- package/dist/__tests__/verseLines.test.js.map +1 -0
- 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/codec.d.ts +9 -2
- package/dist/bundle/codec.d.ts.map +1 -1
- package/dist/bundle/codec.js +24 -2
- package/dist/bundle/codec.js.map +1 -1
- package/dist/bundle/configVersion.d.ts +119 -8
- package/dist/bundle/configVersion.d.ts.map +1 -1
- package/dist/bundle/configVersion.js +395 -6
- package/dist/bundle/configVersion.js.map +1 -1
- package/dist/bundle/index.d.ts +3 -3
- package/dist/bundle/index.d.ts.map +1 -1
- package/dist/bundle/index.js +2 -2
- 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 +132 -6
- package/dist/bundle/manifest.js.map +1 -1
- package/dist/bundle/types.d.ts +28 -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 +45 -9
- package/dist/canvas-backend/blockRender.js.map +1 -1
- package/dist/canvas-backend/index.d.ts.map +1 -1
- package/dist/canvas-backend/index.js +3 -0
- package/dist/canvas-backend/index.js.map +1 -1
- package/dist/canvas-backend/renderResourceBlock.d.ts.map +1 -1
- package/dist/canvas-backend/renderResourceBlock.js +15 -1
- package/dist/canvas-backend/renderResourceBlock.js.map +1 -1
- package/dist/cjkMarks.js +1 -1
- package/dist/cjkMarks.js.map +1 -1
- package/dist/code/highlight.d.ts +34 -0
- package/dist/code/highlight.d.ts.map +1 -0
- package/dist/code/highlight.js +406 -0
- package/dist/code/highlight.js.map +1 -0
- package/dist/configWarnings.d.ts.map +1 -1
- package/dist/configWarnings.js +220 -4
- package/dist/configWarnings.js.map +1 -1
- package/dist/defaults/bodyText.d.ts.map +1 -1
- package/dist/defaults/bodyText.js +25 -0
- package/dist/defaults/bodyText.js.map +1 -1
- package/dist/defaults/calloutStyles.d.ts.map +1 -1
- package/dist/defaults/calloutStyles.js +7 -0
- package/dist/defaults/calloutStyles.js.map +1 -1
- package/dist/defaults/codeStyle.d.ts +29 -0
- package/dist/defaults/codeStyle.d.ts.map +1 -0
- package/dist/defaults/codeStyle.js +284 -0
- package/dist/defaults/codeStyle.js.map +1 -0
- package/dist/defaults/dropCap.d.ts +49 -0
- package/dist/defaults/dropCap.d.ts.map +1 -0
- package/dist/defaults/dropCap.js +66 -0
- package/dist/defaults/dropCap.js.map +1 -0
- 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 +26 -4
- package/dist/defaults/headings.js.map +1 -1
- package/dist/defaults/index.d.ts +4 -1
- package/dist/defaults/index.d.ts.map +1 -1
- package/dist/defaults/index.js +20 -1
- package/dist/defaults/index.js.map +1 -1
- package/dist/defaults/layout.d.ts +30 -1
- package/dist/defaults/layout.d.ts.map +1 -1
- package/dist/defaults/layout.js +105 -1
- package/dist/defaults/layout.js.map +1 -1
- package/dist/defaults/lineNumbers.d.ts +19 -0
- package/dist/defaults/lineNumbers.d.ts.map +1 -0
- package/dist/defaults/lineNumbers.js +101 -0
- package/dist/defaults/lineNumbers.js.map +1 -0
- package/dist/defaults/paragraphStyles.d.ts.map +1 -1
- package/dist/defaults/paragraphStyles.js +20 -0
- package/dist/defaults/paragraphStyles.js.map +1 -1
- package/dist/defaults/parts.js +4 -4
- package/dist/defaults/parts.js.map +1 -1
- package/dist/defaults/tabStops.d.ts +29 -0
- package/dist/defaults/tabStops.d.ts.map +1 -0
- package/dist/defaults/tabStops.js +94 -0
- package/dist/defaults/tabStops.js.map +1 -0
- package/dist/defaults/tableStyle.d.ts.map +1 -1
- package/dist/defaults/tableStyle.js +44 -0
- package/dist/defaults/tableStyle.js.map +1 -1
- package/dist/defaults/toc.js +2 -2
- package/dist/defaults/verse.d.ts +11 -0
- package/dist/defaults/verse.d.ts.map +1 -0
- package/dist/defaults/verse.js +57 -0
- package/dist/defaults/verse.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 +28 -4
- package/dist/design/layout.js.map +1 -1
- package/dist/fonts/usage.d.ts +7 -0
- package/dist/fonts/usage.d.ts.map +1 -1
- package/dist/fonts/usage.js +71 -0
- package/dist/fonts/usage.js.map +1 -1
- 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.map +1 -1
- package/dist/html-backend.js +107 -15
- package/dist/html-backend.js.map +1 -1
- package/dist/index.d.ts +18 -10
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -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 +14 -9
- package/dist/measure/bidiLines.js.map +1 -1
- package/dist/measure/cache.js +2 -2
- package/dist/measure/cache.js.map +1 -1
- package/dist/measure/cjkCompose.d.ts.map +1 -1
- package/dist/measure/cjkCompose.js +10 -6
- package/dist/measure/cjkCompose.js.map +1 -1
- package/dist/measure/hardBreaks.d.ts +46 -0
- package/dist/measure/hardBreaks.d.ts.map +1 -0
- package/dist/measure/hardBreaks.js +228 -0
- package/dist/measure/hardBreaks.js.map +1 -0
- package/dist/measure/index.d.ts +4 -3
- package/dist/measure/index.d.ts.map +1 -1
- package/dist/measure/index.js +5 -4
- package/dist/measure/index.js.map +1 -1
- package/dist/measure/leader.d.ts +20 -0
- package/dist/measure/leader.d.ts.map +1 -0
- package/dist/measure/leader.js +46 -0
- package/dist/measure/leader.js.map +1 -0
- package/dist/measure/links.js +1 -1
- package/dist/measure/links.js.map +1 -1
- package/dist/measure/plain.d.ts.map +1 -1
- package/dist/measure/plain.js +23 -26
- package/dist/measure/plain.js.map +1 -1
- package/dist/measure/rich.d.ts +19 -0
- package/dist/measure/rich.d.ts.map +1 -1
- package/dist/measure/rich.js +215 -39
- package/dist/measure/rich.js.map +1 -1
- package/dist/measure/tabs.d.ts +103 -0
- package/dist/measure/tabs.d.ts.map +1 -0
- package/dist/measure/tabs.js +123 -0
- package/dist/measure/tabs.js.map +1 -0
- package/dist/measure/types.d.ts +72 -2
- package/dist/measure/types.d.ts.map +1 -1
- package/dist/measure/types.js +87 -3
- package/dist/measure/types.js.map +1 -1
- package/dist/parse/blockParser.d.ts +13 -6
- package/dist/parse/blockParser.d.ts.map +1 -1
- package/dist/parse/blockParser.js +457 -87
- package/dist/parse/blockParser.js.map +1 -1
- package/dist/parse/codeFence.d.ts +18 -0
- package/dist/parse/codeFence.d.ts.map +1 -0
- package/dist/parse/codeFence.js +52 -0
- package/dist/parse/codeFence.js.map +1 -0
- package/dist/parse/index.d.ts +1 -1
- package/dist/parse/index.d.ts.map +1 -1
- package/dist/parse/index.js.map +1 -1
- package/dist/parse/indexMarks.d.ts +3 -1
- package/dist/parse/indexMarks.d.ts.map +1 -1
- package/dist/parse/indexMarks.js +22 -2
- package/dist/parse/indexMarks.js.map +1 -1
- package/dist/parse/inlineFormatting.d.ts +50 -0
- package/dist/parse/inlineFormatting.d.ts.map +1 -1
- package/dist/parse/inlineFormatting.js +94 -0
- package/dist/parse/inlineFormatting.js.map +1 -1
- package/dist/parse/sourceMapping.d.ts.map +1 -1
- package/dist/parse/sourceMapping.js +65 -1
- package/dist/parse/sourceMapping.js.map +1 -1
- package/dist/parse/types.d.ts +144 -9
- package/dist/parse/types.d.ts.map +1 -1
- package/dist/pipeline/build.d.ts.map +1 -1
- package/dist/pipeline/build.js +629 -47
- 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 +74 -2
- package/dist/pipeline/buildBlockKind.js.map +1 -1
- package/dist/pipeline/buildHelpers.d.ts +3 -0
- package/dist/pipeline/buildHelpers.d.ts.map +1 -1
- package/dist/pipeline/buildHelpers.js +7 -2
- package/dist/pipeline/buildHelpers.js.map +1 -1
- package/dist/pipeline/buildMeasurement.js +1 -1
- package/dist/pipeline/buildMeasurement.js.map +1 -1
- package/dist/pipeline/calloutLayout.d.ts.map +1 -1
- package/dist/pipeline/calloutLayout.js +33 -2
- package/dist/pipeline/calloutLayout.js.map +1 -1
- package/dist/pipeline/chips.d.ts.map +1 -1
- package/dist/pipeline/chips.js +4 -0
- package/dist/pipeline/chips.js.map +1 -1
- package/dist/pipeline/codeBlocks.d.ts +38 -0
- package/dist/pipeline/codeBlocks.d.ts.map +1 -0
- package/dist/pipeline/codeBlocks.js +146 -0
- package/dist/pipeline/codeBlocks.js.map +1 -0
- package/dist/pipeline/codeInline.d.ts +22 -0
- package/dist/pipeline/codeInline.d.ts.map +1 -0
- package/dist/pipeline/codeInline.js +93 -0
- package/dist/pipeline/codeInline.js.map +1 -0
- package/dist/pipeline/codeLines.d.ts +91 -0
- package/dist/pipeline/codeLines.d.ts.map +1 -0
- package/dist/pipeline/codeLines.js +399 -0
- package/dist/pipeline/codeLines.js.map +1 -0
- package/dist/pipeline/columnBalancing.d.ts.map +1 -1
- package/dist/pipeline/columnBalancing.js +5 -0
- package/dist/pipeline/columnBalancing.js.map +1 -1
- package/dist/pipeline/config.d.ts.map +1 -1
- package/dist/pipeline/config.js +8 -1
- package/dist/pipeline/config.js.map +1 -1
- package/dist/pipeline/contentWarnings.d.ts +25 -0
- package/dist/pipeline/contentWarnings.d.ts.map +1 -1
- package/dist/pipeline/contentWarnings.js +173 -19
- package/dist/pipeline/contentWarnings.js.map +1 -1
- package/dist/pipeline/continuation.d.ts.map +1 -1
- package/dist/pipeline/continuation.js +9 -2
- package/dist/pipeline/continuation.js.map +1 -1
- package/dist/pipeline/dropCap.d.ts +128 -0
- package/dist/pipeline/dropCap.d.ts.map +1 -0
- package/dist/pipeline/dropCap.js +412 -0
- package/dist/pipeline/dropCap.js.map +1 -0
- package/dist/pipeline/floatPlacement.d.ts +34 -4
- package/dist/pipeline/floatPlacement.d.ts.map +1 -1
- package/dist/pipeline/floatPlacement.js +35 -5
- package/dist/pipeline/floatPlacement.js.map +1 -1
- package/dist/pipeline/floatSlots.d.ts +7 -0
- package/dist/pipeline/floatSlots.d.ts.map +1 -1
- package/dist/pipeline/floatSlots.js.map +1 -1
- package/dist/pipeline/hardBreaks.d.ts +19 -0
- package/dist/pipeline/hardBreaks.d.ts.map +1 -0
- package/dist/pipeline/hardBreaks.js +36 -0
- package/dist/pipeline/hardBreaks.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 +23 -6
- package/dist/pipeline/headerFooter.js.map +1 -1
- package/dist/pipeline/lineNumbers.d.ts +37 -0
- package/dist/pipeline/lineNumbers.d.ts.map +1 -0
- package/dist/pipeline/lineNumbers.js +441 -0
- package/dist/pipeline/lineNumbers.js.map +1 -0
- package/dist/pipeline/measureContentBlock.d.ts +38 -5
- package/dist/pipeline/measureContentBlock.d.ts.map +1 -1
- package/dist/pipeline/measureContentBlock.js +284 -69
- package/dist/pipeline/measureContentBlock.js.map +1 -1
- package/dist/pipeline/partPalette.d.ts +1 -1
- package/dist/pipeline/partPalette.d.ts.map +1 -1
- package/dist/pipeline/partPalette.js +24 -2
- package/dist/pipeline/partPalette.js.map +1 -1
- package/dist/pipeline/placement.d.ts.map +1 -1
- package/dist/pipeline/placement.js +7 -0
- package/dist/pipeline/placement.js.map +1 -1
- package/dist/pipeline/resourceLayout.d.ts +15 -0
- package/dist/pipeline/resourceLayout.d.ts.map +1 -1
- package/dist/pipeline/resourceLayout.js +95 -15
- package/dist/pipeline/resourceLayout.js.map +1 -1
- package/dist/pipeline/styles.d.ts +18 -2
- package/dist/pipeline/styles.d.ts.map +1 -1
- package/dist/pipeline/styles.js +23 -8
- package/dist/pipeline/styles.js.map +1 -1
- package/dist/pipeline/tabs.d.ts +35 -0
- package/dist/pipeline/tabs.d.ts.map +1 -0
- package/dist/pipeline/tabs.js +99 -0
- package/dist/pipeline/tabs.js.map +1 -0
- 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 +3 -38
- package/dist/pipeline/toc.js.map +1 -1
- package/dist/pipeline/verseLines.d.ts +98 -0
- package/dist/pipeline/verseLines.d.ts.map +1 -0
- package/dist/pipeline/verseLines.js +293 -0
- package/dist/pipeline/verseLines.js.map +1 -0
- package/dist/preflight.d.ts +46 -1
- package/dist/preflight.d.ts.map +1 -1
- package/dist/preflight.js +43 -7
- package/dist/preflight.js.map +1 -1
- 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 +787 -12
- package/dist/types.d.ts.map +1 -1
- package/dist/vdt.d.ts +367 -9
- package/dist/vdt.d.ts.map +1 -1
- package/dist/vdt.js +9 -2
- package/dist/vdt.js.map +1 -1
- package/dist/word/docxRead.d.ts.map +1 -1
- package/dist/word/docxRead.js +15 -0
- package/dist/word/docxRead.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/inline.d.ts +6 -1
- package/dist/word/inline.d.ts.map +1 -1
- package/dist/word/inline.js +35 -1
- package/dist/word/inline.js.map +1 -1
- package/dist/word/model.d.ts +14 -0
- package/dist/word/model.d.ts.map +1 -1
- package/dist/word/model.js.map +1 -1
- package/dist/word/template.d.ts +12 -3
- package/dist/word/template.d.ts.map +1 -1
- package/dist/word/template.js +13 -3
- package/dist/word/template.js.map +1 -1
- package/dist/word/toDocx.d.ts.map +1 -1
- package/dist/word/toDocx.js +52 -8
- package/dist/word/toDocx.js.map +1 -1
- package/dist/word/toMarkdown.d.ts +15 -1
- package/dist/word/toMarkdown.d.ts.map +1 -1
- package/dist/word/toMarkdown.js +133 -7
- package/dist/word/toMarkdown.js.map +1 -1
- package/dist/word/word.test.js +124 -2
- package/dist/word/word.test.js.map +1 -1
- package/dist/worker/fonts.d.ts +2 -1
- package/dist/worker/fonts.d.ts.map +1 -1
- package/dist/worker/fonts.js +6 -2
- package/dist/worker/fonts.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Inline code in a code face (#624, `codeStyle.inline`): the characters of
|
|
3
|
+
* a block's `` `x` `` spans (`ContentBlock.inlineCode`, source ranges)
|
|
4
|
+
* become chips set in the code face, at the size, colour and fill the
|
|
5
|
+
* style gives, each one unit as a chip is. A chip span keeps the code's
|
|
6
|
+
* characters as its text, so the block's plain text and source map stay
|
|
7
|
+
* as they are. Without `codeStyle.inline` inline code is set in the text's
|
|
8
|
+
* face, as before #624.
|
|
9
|
+
*/
|
|
10
|
+
import { sliceSpan } from '../parse/links';
|
|
11
|
+
import { setsObject } from '../measure/rich';
|
|
12
|
+
import { dimensionToPx } from '../units';
|
|
13
|
+
/** Style id of an inline code chip: no chip style can name it. */
|
|
14
|
+
export const INLINE_CODE_CHIP_STYLE = '__postext-code';
|
|
15
|
+
/** The chip box of inline code in text of `fontSizePx`. */
|
|
16
|
+
function inlineCodeBox(resolved, fontSizePx) {
|
|
17
|
+
const inline = resolved.codeStyle?.inline;
|
|
18
|
+
if (!inline)
|
|
19
|
+
return undefined;
|
|
20
|
+
const dpi = resolved.page.dpi;
|
|
21
|
+
const sizePx = dimensionToPx(inline.fontSize, dpi, fontSizePx);
|
|
22
|
+
const px = (d) => Math.max(0, dimensionToPx(d, dpi, sizePx));
|
|
23
|
+
const borderWidthPx = inline.borderColor ? px(inline.borderWidth) : 0;
|
|
24
|
+
return {
|
|
25
|
+
styleId: INLINE_CODE_CHIP_STYLE,
|
|
26
|
+
fontFamily: inline.fontFamily,
|
|
27
|
+
fontSizePx: sizePx,
|
|
28
|
+
bold: inline.bold,
|
|
29
|
+
italic: inline.italic,
|
|
30
|
+
...(inline.color ? { color: inline.color.hex } : {}),
|
|
31
|
+
...(inline.background ? { background: inline.background.hex } : {}),
|
|
32
|
+
...(borderWidthPx > 0 && inline.borderColor ? { borderColor: inline.borderColor.hex } : {}),
|
|
33
|
+
borderWidthPx,
|
|
34
|
+
borderRadiusPx: px(inline.borderRadius),
|
|
35
|
+
paddingXPx: px(inline.paddingX),
|
|
36
|
+
paddingYPx: px(inline.paddingY),
|
|
37
|
+
gapPx: 0,
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* `block` (the block being measured: `raw` with its heading number, its
|
|
42
|
+
* capitals…) with the characters of its inline code set as code chips,
|
|
43
|
+
* when `codeStyle.inline` is set and the block has inline code. `raw` is
|
|
44
|
+
* the parsed block, whose source map tells which characters were written
|
|
45
|
+
* between backticks.
|
|
46
|
+
*/
|
|
47
|
+
export function withInlineCode(block, raw, resolved, fontSizePx) {
|
|
48
|
+
const ranges = raw.inlineCode;
|
|
49
|
+
if (!ranges || ranges.length === 0 || !resolved.codeStyle?.inline)
|
|
50
|
+
return block;
|
|
51
|
+
const box = inlineCodeBox(resolved, fontSizePx);
|
|
52
|
+
if (!box)
|
|
53
|
+
return block;
|
|
54
|
+
const prefix = block.text.length - raw.text.length;
|
|
55
|
+
const map = raw.sourceMap;
|
|
56
|
+
const isCode = (p) => {
|
|
57
|
+
const i = p - prefix;
|
|
58
|
+
if (i < 0 || i >= map.length)
|
|
59
|
+
return false;
|
|
60
|
+
const at = map[i];
|
|
61
|
+
return ranges.some((r) => at >= r.start && at < r.end);
|
|
62
|
+
};
|
|
63
|
+
const out = [];
|
|
64
|
+
let at = 0;
|
|
65
|
+
let changed = false;
|
|
66
|
+
for (const span of block.spans) {
|
|
67
|
+
const len = span.text.length;
|
|
68
|
+
if (setsObject(span) || span.tab || span.inserted || len === 0) {
|
|
69
|
+
out.push(span);
|
|
70
|
+
at += len;
|
|
71
|
+
continue;
|
|
72
|
+
}
|
|
73
|
+
let k = 0;
|
|
74
|
+
while (k < len) {
|
|
75
|
+
const code = isCode(at + k);
|
|
76
|
+
let j = k + 1;
|
|
77
|
+
while (j < len && isCode(at + j) === code)
|
|
78
|
+
j++;
|
|
79
|
+
if (!code) {
|
|
80
|
+
out.push(k === 0 && j === len ? span : sliceSpan(span, k, j));
|
|
81
|
+
}
|
|
82
|
+
else {
|
|
83
|
+
const text = span.text.slice(k, j);
|
|
84
|
+
out.push({ text, bold: span.bold, italic: span.italic, chip: { style: INLINE_CODE_CHIP_STYLE, spans: [{ text, bold: false, italic: false }], box } });
|
|
85
|
+
changed = true;
|
|
86
|
+
}
|
|
87
|
+
k = j;
|
|
88
|
+
}
|
|
89
|
+
at += len;
|
|
90
|
+
}
|
|
91
|
+
return changed ? { ...block, spans: out } : block;
|
|
92
|
+
}
|
|
93
|
+
//# sourceMappingURL=codeInline.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codeInline.js","sourceRoot":"","sources":["../../src/pipeline/codeInline.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Code listings line by line (#624): a `code` block (a ```` ``` ```` or
|
|
3
|
+
* `~~~` fence, or indented code) is set one line per source line, as
|
|
4
|
+
* written. No Knuth–Plass, no hyphenation, no justification, no runt or
|
|
5
|
+
* tracking levers: every character keeps its advance in the code face, a
|
|
6
|
+
* run of spaces its width, and a tab goes on to the next multiple of
|
|
7
|
+
* `codeStyle.tabSize` character cells (a tab segment, `\t`, so copied text
|
|
8
|
+
* keeps it). A line wider than the measure is turned over, set smaller or
|
|
9
|
+
* cut (`codeStyle.overflow`). Line numbers stand in a gutter before the
|
|
10
|
+
* code, out of the text (the page's `lineNumbers` slot, see
|
|
11
|
+
* {@link buildCodeLineNumbers}).
|
|
12
|
+
*
|
|
13
|
+
* The lines are built segment by segment here, not by the paragraph
|
|
14
|
+
* breaker, which collapses and trims spaces. Each segment carries its face
|
|
15
|
+
* (`fontString`) and, when a token kind or a highlighter gives one, its
|
|
16
|
+
* colour; the segments' widths are final, from the line's box (`bbox.x`).
|
|
17
|
+
*/
|
|
18
|
+
import type { ContentBlock } from '../parse';
|
|
19
|
+
import type { ResolvedCodeStyleConfig } from '../types';
|
|
20
|
+
import { type ResolvedConfig, type VDTDocument, type VDTLine, type ContentWarning } from '../vdt';
|
|
21
|
+
import type { MeasuredBlock } from '../measure';
|
|
22
|
+
/** What a fence asks of its listing, over `codeStyle`. */
|
|
23
|
+
export interface CodeFenceSettings {
|
|
24
|
+
lineNumbers: boolean;
|
|
25
|
+
/** The first line's number. */
|
|
26
|
+
start: number;
|
|
27
|
+
/** Source lines (1-based, as written) the fence highlights. */
|
|
28
|
+
highlight: ReadonlySet<number>;
|
|
29
|
+
}
|
|
30
|
+
/** `highlight="3,5-7"`: the line numbers it names (1-based, from the
|
|
31
|
+
* listing's first line whatever `start` says). */
|
|
32
|
+
export declare function highlightLines(value: string | undefined): Set<number>;
|
|
33
|
+
/** The settings a fence's attributes give its listing. */
|
|
34
|
+
export declare function codeFenceSettings(block: ContentBlock, cs: ResolvedCodeStyleConfig): CodeFenceSettings;
|
|
35
|
+
/** How a listing's lines were fitted, for its warning. */
|
|
36
|
+
export interface CodeFit {
|
|
37
|
+
mode: 'wrap' | 'shrink' | 'clip';
|
|
38
|
+
/** Source lines too wide for the measure. */
|
|
39
|
+
lines: number;
|
|
40
|
+
/** The size the listing was set at, as a share of `fontSize` (below 1
|
|
41
|
+
* when shrunk). */
|
|
42
|
+
scale: number;
|
|
43
|
+
}
|
|
44
|
+
export interface MeasuredCode extends MeasuredBlock {
|
|
45
|
+
/** Set when a line did not fit the measure as written. */
|
|
46
|
+
fit?: CodeFit;
|
|
47
|
+
/** The numbers' look and the room between them and the code, when the
|
|
48
|
+
* listing is numbered. */
|
|
49
|
+
numbers?: {
|
|
50
|
+
gap: number;
|
|
51
|
+
fontString: string;
|
|
52
|
+
color: string;
|
|
53
|
+
};
|
|
54
|
+
/** The size the listing was set at, px (the code size, or less when it
|
|
55
|
+
* was shrunk). */
|
|
56
|
+
fontSizePx: number;
|
|
57
|
+
}
|
|
58
|
+
export interface CodeLinesInput {
|
|
59
|
+
block: ContentBlock;
|
|
60
|
+
/** The code's size and leading (the listing box's body style). */
|
|
61
|
+
fontSizePx: number;
|
|
62
|
+
lineHeightPx: number;
|
|
63
|
+
/** The listing's colour (hex). */
|
|
64
|
+
color: string;
|
|
65
|
+
/** The measure, px. */
|
|
66
|
+
measure: number;
|
|
67
|
+
resolved: ResolvedConfig;
|
|
68
|
+
/** Source offset of the markdown body inside the document. */
|
|
69
|
+
bodyOffset: number;
|
|
70
|
+
/** The frame runs right to left (a mirrored page): the lines keep their
|
|
71
|
+
* left-to-right order and are set from the frame's far side. */
|
|
72
|
+
mirrored?: boolean;
|
|
73
|
+
}
|
|
74
|
+
/** Lay a listing out (see the module comment). */
|
|
75
|
+
export declare function measureCodeLines(input: CodeLinesInput): MeasuredCode;
|
|
76
|
+
/**
|
|
77
|
+
* The line numbers of the listings of `doc` (#624), in each page's
|
|
78
|
+
* `lineNumbers` slot beside any the margin numbers set there (#621): each
|
|
79
|
+
* right-aligned against the end of its listing's gutter, on its line's
|
|
80
|
+
* baseline, an artifact out of the text (the slot's numbers are hidden
|
|
81
|
+
* from assistive technology, left out of a selection, and painted under an
|
|
82
|
+
* empty `/ActualText` in a tagged PDF). Vertical pages get none.
|
|
83
|
+
*/
|
|
84
|
+
export declare function buildCodeLineNumbers(doc: VDTDocument): void;
|
|
85
|
+
/** A `codeOverflow` warning for each listing (by content index) one of
|
|
86
|
+
* whose lines did not fit its measure as written (#624). */
|
|
87
|
+
export declare function codeOverflowWarnings(doc: VDTDocument): ContentWarning[];
|
|
88
|
+
/** The plain text of a listing's lines as written (a continuation joins
|
|
89
|
+
* its line, a line feed ends each source line). */
|
|
90
|
+
export declare function codeLinesText(lines: readonly VDTLine[]): string;
|
|
91
|
+
//# sourceMappingURL=codeLines.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codeLines.d.ts","sourceRoot":"","sources":["../../src/pipeline/codeLines.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,KAAK,EAAiB,uBAAuB,EAAE,MAAM,UAAU,CAAC;AACvE,OAAO,EAAqD,KAAK,cAAc,EAA0C,KAAK,WAAW,EAAE,KAAK,OAAO,EAAuB,KAAK,cAAc,EAAE,MAAM,QAAQ,CAAC;AAClN,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAShD,0DAA0D;AAC1D,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,OAAO,CAAC;IACrB,+BAA+B;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,+DAA+D;IAC/D,SAAS,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CAChC;AASD;mDACmD;AACnD,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC,CAUrE;AAED,0DAA0D;AAC1D,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,YAAY,EAAE,EAAE,EAAE,uBAAuB,GAAG,iBAAiB,CAUrG;AAoCD,0DAA0D;AAC1D,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAC;IACjC,6CAA6C;IAC7C,KAAK,EAAE,MAAM,CAAC;IACd;wBACoB;IACpB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,YAAa,SAAQ,aAAa;IACjD,0DAA0D;IAC1D,GAAG,CAAC,EAAE,OAAO,CAAC;IACd;+BAC2B;IAC3B,OAAO,CAAC,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7D;uBACmB;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,YAAY,CAAC;IACpB,kEAAkE;IAClE,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,kCAAkC;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,uBAAuB;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,cAAc,CAAC;IACzB,8DAA8D;IAC9D,UAAU,EAAE,MAAM,CAAC;IACnB;qEACiE;IACjE,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,kDAAkD;AAClD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,cAAc,GAAG,YAAY,CAsOpE;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,WAAW,GAAG,IAAI,CAwC3D;AAED;6DAC6D;AAC7D,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,WAAW,GAAG,cAAc,EAAE,CAoBvE;AAED;oDACoD;AACpD,wBAAgB,aAAa,CAAC,KAAK,EAAE,SAAS,OAAO,EAAE,GAAG,MAAM,CAO/D"}
|
|
@@ -0,0 +1,399 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Code listings line by line (#624): a `code` block (a ```` ``` ```` or
|
|
3
|
+
* `~~~` fence, or indented code) is set one line per source line, as
|
|
4
|
+
* written. No Knuth–Plass, no hyphenation, no justification, no runt or
|
|
5
|
+
* tracking levers: every character keeps its advance in the code face, a
|
|
6
|
+
* run of spaces its width, and a tab goes on to the next multiple of
|
|
7
|
+
* `codeStyle.tabSize` character cells (a tab segment, `\t`, so copied text
|
|
8
|
+
* keeps it). A line wider than the measure is turned over, set smaller or
|
|
9
|
+
* cut (`codeStyle.overflow`). Line numbers stand in a gutter before the
|
|
10
|
+
* code, out of the text (the page's `lineNumbers` slot, see
|
|
11
|
+
* {@link buildCodeLineNumbers}).
|
|
12
|
+
*
|
|
13
|
+
* The lines are built segment by segment here, not by the paragraph
|
|
14
|
+
* breaker, which collapses and trims spaces. Each segment carries its face
|
|
15
|
+
* (`fontString`) and, when a token kind or a highlighter gives one, its
|
|
16
|
+
* colour; the segments' widths are final, from the line's box (`bbox.x`).
|
|
17
|
+
*/
|
|
18
|
+
import { createBoundingBox, flowRectToPage, pageIsVertical } from '../vdt';
|
|
19
|
+
import { buildFontString } from '../measure';
|
|
20
|
+
import { measureTextWidth } from '../measure/canvas';
|
|
21
|
+
import { graphemesOf } from '../measure/graphemes';
|
|
22
|
+
import { lineBaselineOffset } from '../measure/vertical';
|
|
23
|
+
import { dimensionToPx } from '../units';
|
|
24
|
+
import { resolvedCodeStyle } from '../defaults/codeStyle';
|
|
25
|
+
import { highlightCode } from '../code/highlight';
|
|
26
|
+
/** A flag attribute: present and not `false` / `no` / `0`. */
|
|
27
|
+
function flagAttr(value) {
|
|
28
|
+
if (value === undefined)
|
|
29
|
+
return undefined;
|
|
30
|
+
const v = value.trim().toLowerCase();
|
|
31
|
+
return v !== 'false' && v !== 'no' && v !== '0' && v !== 'off';
|
|
32
|
+
}
|
|
33
|
+
/** `highlight="3,5-7"`: the line numbers it names (1-based, from the
|
|
34
|
+
* listing's first line whatever `start` says). */
|
|
35
|
+
export function highlightLines(value) {
|
|
36
|
+
const out = new Set();
|
|
37
|
+
for (const part of (value ?? '').split(/[,\s]+/)) {
|
|
38
|
+
const m = /^(\d+)(?:-(\d+))?$/.exec(part.trim());
|
|
39
|
+
if (!m)
|
|
40
|
+
continue;
|
|
41
|
+
const a = Number(m[1]);
|
|
42
|
+
const b = m[2] !== undefined ? Number(m[2]) : a;
|
|
43
|
+
for (let n = Math.min(a, b); n <= Math.max(a, b) && n - Math.min(a, b) < 10_000; n++)
|
|
44
|
+
out.add(n);
|
|
45
|
+
}
|
|
46
|
+
return out;
|
|
47
|
+
}
|
|
48
|
+
/** The settings a fence's attributes give its listing. */
|
|
49
|
+
export function codeFenceSettings(block, cs) {
|
|
50
|
+
const attrs = block.code?.attrs ?? {};
|
|
51
|
+
const start = /^\s*-?\d+\s*$/.test(attrs.start ?? '') ? Number(attrs.start) : undefined;
|
|
52
|
+
const numbered = flagAttr(attrs.lineNumbers ?? attrs.linenumbers ?? attrs.numbered);
|
|
53
|
+
return {
|
|
54
|
+
// `start=N` numbers a listing on its own.
|
|
55
|
+
lineNumbers: numbered ?? (start !== undefined ? true : cs.lineNumbers),
|
|
56
|
+
start: start ?? 1,
|
|
57
|
+
highlight: highlightLines(attrs.highlight),
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
/** East Asian wide and full-width characters: two cells of a grid of
|
|
61
|
+
* character cells (tab stops count them so). */
|
|
62
|
+
const WIDE_RE = /[ᄀ-ᅟ⺀-〾ぁ-㏿㐀-䶿一-鿿ꀀ-가-힣豈-︰-﹏-⦆¢-₩]|[\uD840-\uD87F][\uDC00-\uDFFF]/;
|
|
63
|
+
function facesAt(cs, sizePx) {
|
|
64
|
+
const w = cs.fontWeight.toString();
|
|
65
|
+
const b = cs.boldFontWeight.toString();
|
|
66
|
+
return {
|
|
67
|
+
normal: buildFontString(cs.fontFamily, sizePx, w, 'normal'),
|
|
68
|
+
bold: buildFontString(cs.fontFamily, sizePx, b, 'normal'),
|
|
69
|
+
italic: buildFontString(cs.fontFamily, sizePx, w, 'italic'),
|
|
70
|
+
boldItalic: buildFontString(cs.fontFamily, sizePx, b, 'italic'),
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
/** Lay a listing out (see the module comment). */
|
|
74
|
+
export function measureCodeLines(input) {
|
|
75
|
+
const { block, resolved } = input;
|
|
76
|
+
const cs = resolvedCodeStyle(resolved);
|
|
77
|
+
const info = block.code;
|
|
78
|
+
if (!info || info.lines.length === 0)
|
|
79
|
+
return { lines: [], totalHeight: 0, fontSizePx: input.fontSizePx };
|
|
80
|
+
const dpi = resolved.page.dpi;
|
|
81
|
+
const fence = codeFenceSettings(block, cs);
|
|
82
|
+
const tokens = highlightCode(info.lines.join('\n'), info.lang, cs.highlight === 'builtin');
|
|
83
|
+
const lineHeight = input.lineHeightPx;
|
|
84
|
+
/** The runs of every line at one size. */
|
|
85
|
+
const runsAt = (faces) => info.lines.map((line, k) => {
|
|
86
|
+
const pieces = tokens?.[k] ?? (line.length > 0 ? [{ text: line }] : []);
|
|
87
|
+
const runs = [];
|
|
88
|
+
let col = 0;
|
|
89
|
+
for (const piece of pieces) {
|
|
90
|
+
const kind = piece.token;
|
|
91
|
+
const look = kind ? cs.tokens[kind] : undefined;
|
|
92
|
+
const bold = look?.bold === true;
|
|
93
|
+
const italic = look?.italic === true;
|
|
94
|
+
const font = bold ? (italic ? faces.boldItalic : faces.bold) : italic ? faces.italic : faces.normal;
|
|
95
|
+
const color = piece.color ?? look?.color?.hex;
|
|
96
|
+
let text = '';
|
|
97
|
+
const flush = () => {
|
|
98
|
+
if (text.length === 0)
|
|
99
|
+
return;
|
|
100
|
+
runs.push({ text, font, ...(color ? { color } : {}), ...(bold ? { bold: true } : {}), ...(italic ? { italic: true } : {}), width: measureTextWidth(text, font) });
|
|
101
|
+
text = '';
|
|
102
|
+
};
|
|
103
|
+
for (const ch of graphemesOf(piece.text)) {
|
|
104
|
+
if (ch === '\t') {
|
|
105
|
+
flush();
|
|
106
|
+
const cells = cs.tabSize - (col % cs.tabSize);
|
|
107
|
+
runs.push({ text: '\t', font: faces.normal, tab: cells, width: cells * measureTextWidth(' ', faces.normal) });
|
|
108
|
+
col += cells;
|
|
109
|
+
}
|
|
110
|
+
else {
|
|
111
|
+
text += ch;
|
|
112
|
+
col += WIDE_RE.test(ch) ? 2 : 1;
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
flush();
|
|
116
|
+
}
|
|
117
|
+
return runs;
|
|
118
|
+
});
|
|
119
|
+
const widthOf = (runs) => runs.reduce((s, r) => s + r.width, 0);
|
|
120
|
+
/** The gutter of a numbered listing at one size: the widest number and
|
|
121
|
+
* the gap after it. */
|
|
122
|
+
const lastNumber = fence.start + info.lines.length - 1;
|
|
123
|
+
const numberWidth = (faces) => (fence.lineNumbers ? measureTextWidth(String(Math.max(Math.abs(fence.start), Math.abs(lastNumber))).replace(/\d/g, '0') + (fence.start < 0 ? '-' : ''), faces.normal) : 0);
|
|
124
|
+
const gutterAt = (faces, sizePx) => (fence.lineNumbers ? numberWidth(faces) + Math.max(0, dimensionToPx(cs.lineNumberGap, dpi, sizePx)) : 0);
|
|
125
|
+
// The size the listing is set at: its own, or for `shrink` the largest
|
|
126
|
+
// (down to `minFontScale`) at which its widest line fits.
|
|
127
|
+
let sizePx = input.fontSizePx;
|
|
128
|
+
let faces = facesAt(cs, sizePx);
|
|
129
|
+
let rows = runsAt(faces);
|
|
130
|
+
let gutter = gutterAt(faces, sizePx);
|
|
131
|
+
const widest = Math.max(...rows.map(widthOf));
|
|
132
|
+
const tooWide = rows.filter((r) => gutter + widthOf(r) > input.measure + 0.01).length;
|
|
133
|
+
let scale = 1;
|
|
134
|
+
if (tooWide > 0 && cs.overflow === 'shrink') {
|
|
135
|
+
const fit = Math.max(cs.minFontScale, Math.min(1, input.measure / (gutter + widest)));
|
|
136
|
+
scale = Math.floor(fit * 1000) / 1000;
|
|
137
|
+
sizePx = input.fontSizePx * scale;
|
|
138
|
+
faces = facesAt(cs, sizePx);
|
|
139
|
+
rows = runsAt(faces);
|
|
140
|
+
gutter = gutterAt(faces, sizePx);
|
|
141
|
+
}
|
|
142
|
+
const measure = Math.max(1, input.measure - gutter);
|
|
143
|
+
// What still does not fit wraps (`wrap`, and `shrink` past its floor) or
|
|
144
|
+
// is cut (`clip`).
|
|
145
|
+
const cut = cs.overflow === 'clip';
|
|
146
|
+
const cell = measureTextWidth(' ', faces.normal);
|
|
147
|
+
const marker = cs.wrapMarker;
|
|
148
|
+
const markerWidth = marker ? measureTextWidth(marker, faces.normal) : 0;
|
|
149
|
+
const hang = Math.min(measure / 2, Math.max(cs.wrapIndent * cell, markerWidth > 0 ? markerWidth + cell / 2 : 0));
|
|
150
|
+
const baselineOffset = lineBaselineOffset(lineHeight, faces.normal);
|
|
151
|
+
const lines = [];
|
|
152
|
+
let plainAt = 0;
|
|
153
|
+
/** A run's segment. */
|
|
154
|
+
const segmentOf = (run, text = run.text, width = run.width) => (run.tab !== undefined
|
|
155
|
+
? { kind: 'space', text: '\t', width, labelTab: true, fontString: run.font }
|
|
156
|
+
: {
|
|
157
|
+
kind: 'text',
|
|
158
|
+
text,
|
|
159
|
+
width,
|
|
160
|
+
fontString: run.font,
|
|
161
|
+
...(run.color ? { color: run.color } : {}),
|
|
162
|
+
...(run.bold ? { bold: true } : {}),
|
|
163
|
+
...(run.italic ? { italic: true } : {}),
|
|
164
|
+
});
|
|
165
|
+
const push = (segments, x, k, plainStart, plainEnd, flags) => {
|
|
166
|
+
const y = lines.length * lineHeight;
|
|
167
|
+
const width = segments.reduce((s, seg) => s + seg.width, 0);
|
|
168
|
+
const text = segments.filter((s) => !s.inserted && !s.leader).map((s) => s.text).join('');
|
|
169
|
+
const map = block.sourceMap;
|
|
170
|
+
const src = (p, end) => {
|
|
171
|
+
if (map.length === 0)
|
|
172
|
+
return block.sourceStart + input.bodyOffset;
|
|
173
|
+
if (end)
|
|
174
|
+
return p > 0 ? map[Math.min(p, map.length) - 1] + 1 + input.bodyOffset : (map[0] ?? block.sourceStart) + input.bodyOffset;
|
|
175
|
+
return (p < map.length ? map[p] : map[map.length - 1] + 1) + input.bodyOffset;
|
|
176
|
+
};
|
|
177
|
+
// A blank line still spans its line end, so the editor can map it.
|
|
178
|
+
const sourceStart = plainStart < map.length ? src(plainStart, false) : (info.lineStarts[k] ?? block.sourceStart) + input.bodyOffset;
|
|
179
|
+
const sourceEnd = plainEnd > plainStart ? src(plainEnd, true) : sourceStart;
|
|
180
|
+
const line = {
|
|
181
|
+
text,
|
|
182
|
+
bbox: createBoundingBox(x, y, width, lineHeight),
|
|
183
|
+
baseline: y + baselineOffset,
|
|
184
|
+
hyphenated: false,
|
|
185
|
+
segments,
|
|
186
|
+
isLastLine: true,
|
|
187
|
+
ragged: true,
|
|
188
|
+
plainStart,
|
|
189
|
+
plainEnd,
|
|
190
|
+
sourceStart,
|
|
191
|
+
sourceEnd,
|
|
192
|
+
codeLine: { line: k, ...flags },
|
|
193
|
+
};
|
|
194
|
+
// Set from the far side of a mirrored frame, as a left-to-right
|
|
195
|
+
// quotation in a right-to-left book is: its span the measure.
|
|
196
|
+
if (input.mirrored) {
|
|
197
|
+
line.measure = { x: 0, width: measure };
|
|
198
|
+
line.bbox.x = 0;
|
|
199
|
+
}
|
|
200
|
+
lines.push(line);
|
|
201
|
+
};
|
|
202
|
+
rows.forEach((runs, k) => {
|
|
203
|
+
const n = fence.start + k;
|
|
204
|
+
const flags = {
|
|
205
|
+
...(fence.lineNumbers ? { number: String(n) } : {}),
|
|
206
|
+
...(fence.highlight.has(k + 1) ? { highlight: true } : {}),
|
|
207
|
+
};
|
|
208
|
+
const lineLength = info.lines[k].length;
|
|
209
|
+
const lineStart = plainAt;
|
|
210
|
+
plainAt += lineLength + 1;
|
|
211
|
+
if (widthOf(runs) <= measure + 0.01) {
|
|
212
|
+
push(runs.map((r) => segmentOf(r)), gutter, k, lineStart, lineStart + lineLength, flags);
|
|
213
|
+
return;
|
|
214
|
+
}
|
|
215
|
+
const cells = [];
|
|
216
|
+
let at = lineStart;
|
|
217
|
+
for (const run of runs) {
|
|
218
|
+
if (run.tab !== undefined) {
|
|
219
|
+
cells.push({ run, text: '\t', width: run.width, at });
|
|
220
|
+
at += 1;
|
|
221
|
+
continue;
|
|
222
|
+
}
|
|
223
|
+
for (const g of graphemesOf(run.text)) {
|
|
224
|
+
cells.push({ run, text: g, width: measureTextWidth(g, run.font), at });
|
|
225
|
+
at += g.length;
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
/** Segments for cells `[a, b)`: consecutive cells of one run make one
|
|
229
|
+
* segment, measured whole. */
|
|
230
|
+
const segmentsOf = (a, b) => {
|
|
231
|
+
const out = [];
|
|
232
|
+
let i = a;
|
|
233
|
+
while (i < b) {
|
|
234
|
+
const run = cells[i].run;
|
|
235
|
+
let j = i;
|
|
236
|
+
let text = '';
|
|
237
|
+
while (j < b && cells[j].run === run)
|
|
238
|
+
text += cells[j++].text;
|
|
239
|
+
out.push(run.tab !== undefined ? segmentOf(run) : segmentOf(run, text, measureTextWidth(text, run.font)));
|
|
240
|
+
i = j;
|
|
241
|
+
}
|
|
242
|
+
return out;
|
|
243
|
+
};
|
|
244
|
+
if (cut) {
|
|
245
|
+
let w = 0;
|
|
246
|
+
let b = 0;
|
|
247
|
+
while (b < cells.length && w + cells[b].width <= measure + 0.01)
|
|
248
|
+
w += cells[b++].width;
|
|
249
|
+
const end = b < cells.length ? cells[b].at : lineStart + lineLength;
|
|
250
|
+
push(segmentsOf(0, b), gutter, k, lineStart, end, { ...flags, clipped: true });
|
|
251
|
+
return;
|
|
252
|
+
}
|
|
253
|
+
// Turned over: break after the last space or punctuation that fits,
|
|
254
|
+
// else between two characters; the continuations hang by `wrapIndent`
|
|
255
|
+
// cells behind the marker.
|
|
256
|
+
let a = 0;
|
|
257
|
+
let first = true;
|
|
258
|
+
while (a < cells.length) {
|
|
259
|
+
const room = first ? measure : Math.max(cell, measure - hang);
|
|
260
|
+
let w = 0;
|
|
261
|
+
let b = a;
|
|
262
|
+
while (b < cells.length && w + cells[b].width <= room + 0.01)
|
|
263
|
+
w += cells[b++].width;
|
|
264
|
+
if (b === a)
|
|
265
|
+
b = a + 1; // a character wider than the room still goes
|
|
266
|
+
if (b < cells.length) {
|
|
267
|
+
let brk = -1;
|
|
268
|
+
for (let i = b; i > a; i--) {
|
|
269
|
+
if (/[\s,;.:)\]}>/\\\-=+*|&!?]/.test(cells[i - 1].text) && !/\s/.test(cells[i]?.text ?? '')) {
|
|
270
|
+
brk = i;
|
|
271
|
+
break;
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
if (brk > a)
|
|
275
|
+
b = brk;
|
|
276
|
+
}
|
|
277
|
+
const segments = segmentsOf(a, b);
|
|
278
|
+
const startAt = cells[a].at;
|
|
279
|
+
const endAt = b < cells.length ? cells[b].at : lineStart + lineLength;
|
|
280
|
+
const more = b < cells.length;
|
|
281
|
+
if (first) {
|
|
282
|
+
push(segments, gutter, k, startAt, endAt, { ...flags, ...(more ? { wrapped: true } : {}) });
|
|
283
|
+
}
|
|
284
|
+
else {
|
|
285
|
+
// The marker in the hang, before the text: no character of it (a
|
|
286
|
+
// leader: out of the copied text, an artifact in a tagged PDF).
|
|
287
|
+
const lead = marker
|
|
288
|
+
? [{ kind: 'text', text: marker, width: hang, inserted: true, leader: 'text', fontString: faces.normal, color: cs.lineNumberColor.hex }]
|
|
289
|
+
: [{ kind: 'text', text: '', width: hang, inserted: true }];
|
|
290
|
+
const { highlight } = flags;
|
|
291
|
+
push([...lead, ...segments], gutter, k, startAt, endAt, { continued: true, ...(highlight ? { highlight } : {}), ...(more ? { wrapped: true } : {}) });
|
|
292
|
+
}
|
|
293
|
+
first = false;
|
|
294
|
+
a = b;
|
|
295
|
+
}
|
|
296
|
+
});
|
|
297
|
+
if (lines.length === 0)
|
|
298
|
+
return { lines: [], totalHeight: 0, fontSizePx: sizePx };
|
|
299
|
+
const fit = tooWide > 0 ? { mode: cs.overflow, lines: tooWide, scale } : undefined;
|
|
300
|
+
return {
|
|
301
|
+
lines,
|
|
302
|
+
totalHeight: lines.length * lineHeight,
|
|
303
|
+
fontSizePx: sizePx,
|
|
304
|
+
...(fit ? { fit } : {}),
|
|
305
|
+
...(fence.lineNumbers ? { numbers: { gap: Math.max(0, dimensionToPx(cs.lineNumberGap, dpi, sizePx)), fontString: faces.normal, color: cs.lineNumberColor.hex } } : {}),
|
|
306
|
+
};
|
|
307
|
+
}
|
|
308
|
+
/**
|
|
309
|
+
* The line numbers of the listings of `doc` (#624), in each page's
|
|
310
|
+
* `lineNumbers` slot beside any the margin numbers set there (#621): each
|
|
311
|
+
* right-aligned against the end of its listing's gutter, on its line's
|
|
312
|
+
* baseline, an artifact out of the text (the slot's numbers are hidden
|
|
313
|
+
* from assistive technology, left out of a selection, and painted under an
|
|
314
|
+
* empty `/ActualText` in a tagged PDF). Vertical pages get none.
|
|
315
|
+
*/
|
|
316
|
+
export function buildCodeLineNumbers(doc) {
|
|
317
|
+
for (const page of doc.pages) {
|
|
318
|
+
if (pageIsVertical(page))
|
|
319
|
+
continue;
|
|
320
|
+
const blocks = [];
|
|
321
|
+
const visit = (block) => {
|
|
322
|
+
const numbers = block.type === 'code' ? block.code?.numbers : undefined;
|
|
323
|
+
if (!numbers)
|
|
324
|
+
return;
|
|
325
|
+
for (const line of block.lines) {
|
|
326
|
+
const label = line.codeLine?.number;
|
|
327
|
+
if (label === undefined)
|
|
328
|
+
continue;
|
|
329
|
+
const w = measureTextWidth(label, numbers.fontString);
|
|
330
|
+
const size = /(\d*\.?\d+)px/.exec(numbers.fontString);
|
|
331
|
+
const sizePx = size ? parseFloat(size[1]) : 12;
|
|
332
|
+
// Where the line's code starts on the sheet: its box's left edge,
|
|
333
|
+
// or that of the span it is set in on a mirrored page (#370).
|
|
334
|
+
const span = line.measure ?? { x: line.bbox.x, width: line.bbox.width };
|
|
335
|
+
const sheet = flowRectToPage(page, createBoundingBox(span.x, line.bbox.y, Math.max(0, span.width), line.bbox.height));
|
|
336
|
+
const right = sheet.x - numbers.gap;
|
|
337
|
+
const baseline = sheet.y + (line.baseline - line.bbox.y);
|
|
338
|
+
blocks.push({
|
|
339
|
+
kind: 'text',
|
|
340
|
+
bbox: createBoundingBox(right - w, baseline - sizePx * 0.8, w, sizePx),
|
|
341
|
+
fontString: numbers.fontString,
|
|
342
|
+
color: numbers.color,
|
|
343
|
+
lines: [{ text: label, xOffset: 0, baselineY: baseline, width: w }],
|
|
344
|
+
clip: false,
|
|
345
|
+
artifact: true,
|
|
346
|
+
});
|
|
347
|
+
}
|
|
348
|
+
};
|
|
349
|
+
for (const column of page.columns)
|
|
350
|
+
for (const block of column.blocks)
|
|
351
|
+
visit(block);
|
|
352
|
+
for (const block of page.floats ?? [])
|
|
353
|
+
visit(block);
|
|
354
|
+
if (blocks.length === 0)
|
|
355
|
+
continue;
|
|
356
|
+
const all = [...(page.lineNumbers?.blocks ?? []), ...blocks];
|
|
357
|
+
const left = Math.min(...all.map((b) => b.bbox.x));
|
|
358
|
+
const top = Math.min(...all.map((b) => b.bbox.y));
|
|
359
|
+
const right = Math.max(...all.map((b) => b.bbox.x + b.bbox.width));
|
|
360
|
+
const bottom = Math.max(...all.map((b) => b.bbox.y + b.bbox.height));
|
|
361
|
+
page.lineNumbers = { bbox: createBoundingBox(left, top, right - left, bottom - top), blocks: all };
|
|
362
|
+
}
|
|
363
|
+
}
|
|
364
|
+
/** A `codeOverflow` warning for each listing (by content index) one of
|
|
365
|
+
* whose lines did not fit its measure as written (#624). */
|
|
366
|
+
export function codeOverflowWarnings(doc) {
|
|
367
|
+
const out = [];
|
|
368
|
+
const seen = new Set();
|
|
369
|
+
for (const block of doc.blocks) {
|
|
370
|
+
const fit = block.code?.fit;
|
|
371
|
+
const idx = block.contentIndex;
|
|
372
|
+
if (block.type !== 'code' || !fit || idx === undefined || seen.has(idx))
|
|
373
|
+
continue;
|
|
374
|
+
seen.add(idx);
|
|
375
|
+
out.push({
|
|
376
|
+
kind: 'codeOverflow',
|
|
377
|
+
mode: fit.mode,
|
|
378
|
+
lines: fit.lines,
|
|
379
|
+
...(fit.mode === 'shrink' ? { scale: fit.scale } : {}),
|
|
380
|
+
...(block.code?.lang ? { lang: block.code.lang } : {}),
|
|
381
|
+
...(block.sourceStart !== undefined ? { sourceStart: block.sourceStart } : {}),
|
|
382
|
+
...(block.sourceEnd !== undefined ? { sourceEnd: block.sourceEnd } : {}),
|
|
383
|
+
...(block.pageIndex >= 0 ? { pageIndex: block.pageIndex } : {}),
|
|
384
|
+
});
|
|
385
|
+
}
|
|
386
|
+
return out;
|
|
387
|
+
}
|
|
388
|
+
/** The plain text of a listing's lines as written (a continuation joins
|
|
389
|
+
* its line, a line feed ends each source line). */
|
|
390
|
+
export function codeLinesText(lines) {
|
|
391
|
+
let out = '';
|
|
392
|
+
lines.forEach((line, i) => {
|
|
393
|
+
if (i > 0 && !line.codeLine?.continued)
|
|
394
|
+
out += '\n';
|
|
395
|
+
out += line.text;
|
|
396
|
+
});
|
|
397
|
+
return out;
|
|
398
|
+
}
|
|
399
|
+
//# sourceMappingURL=codeLines.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codeLines.js","sourceRoot":"","sources":["../../src/pipeline/codeLines.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"columnBalancing.d.ts","sourceRoot":"","sources":["../../src/pipeline/columnBalancing.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAuB,WAAW,EAAW,MAAM,QAAQ,CAAC;AACtF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAKhD;kDACkD;AAClD,eAAO,MAAM,oBAAoB,KAAK,CAAC;AAEvC;gEACgE;AAChE,eAAO,MAAM,iCAAiC,QAA2B,CAAC;AAE1E,qCAAqC;AACrC,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;CACZ;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,gBAAgB,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,SAAS,EAAE,CAWlG;AAED,6EAA6E;AAC7E,wBAAgB,UAAU,CAAC,IAAI,EAAE,SAAS,SAAS,EAAE,EAAE,KAAK,EAAE,SAAS,GAAG,MAAM,CAI/E;AAED;;;4EAG4E;AAC5E,wBAAgB,SAAS,CAAC,IAAI,EAAE,SAAS,SAAS,EAAE,EAAE,KAAK,EAAE,SAAS,GAAG,MAAM,CAO9E;AAED;8CAC8C;AAC9C,wBAAgB,YAAY,CAAC,IAAI,EAAE,SAAS,SAAS,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,CAMpE;AAED;;8BAE8B;AAC9B,MAAM,MAAM,oBAAoB,GAAG,YAAY,CAAC;AAEhD,UAAU,gBAAgB;IACxB,sEAAsE;IACtE,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,oBAAoB,CAAC;IAC3B,8DAA8D;IAC9D,KAAK,EAAE,MAAM,CAAC;IACd,gDAAgD;IAChD,KAAK,EAAE,MAAM,CAAC;IACd;gDAC4C;IAC5C,SAAS,EAAE,MAAM,CAAC;IAClB;0EACsE;IACtE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;wCAGoC;IACpC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;4EACwE;IACxE,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,iEAAiE;IACjE,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,wDAAwD;AACxD,wBAAgB,YAAY,CAAC,CAAC,EAAE;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAE7F;AAED;+DAC+D;AAC/D,wBAAgB,aAAa,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAE1D;AAED;iEACiE;AACjE,wBAAgB,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAOvD;AAED;;;4CAG4C;AAC5C,wBAAgB,UAAU,CAAC,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAErE;AAWD,MAAM,WAAW,SAAS;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,0DAA0D;IAC1D,QAAQ,EAAE,MAAM,CAAC;IACjB,qEAAqE;IACrE,UAAU,EAAE,gBAAgB,EAAE,CAAC;CAChC;AAoCD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,WAAW,EAChB,gBAAgB,EAAE,WAAW,CAAC,MAAM,CAAC,GACpC,SAAS,EAAE,
|
|
1
|
+
{"version":3,"file":"columnBalancing.d.ts","sourceRoot":"","sources":["../../src/pipeline/columnBalancing.ts"],"names":[],"mappings":"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"}
|