postext 1.52.0 → 1.53.1
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__/breakOpportunities.test.js +12 -7
- package/dist/__tests__/breakOpportunities.test.js.map +1 -1
- package/dist/__tests__/bundle/balloonPlacementPin.test.js +11 -9
- package/dist/__tests__/bundle/balloonPlacementPin.test.js.map +1 -1
- package/dist/__tests__/bundle/cjkRulesPin.test.js +12 -12
- package/dist/__tests__/bundle/cjkRulesPin.test.js.map +1 -1
- package/dist/__tests__/bundle/designOverflowPin.test.js +3 -3
- package/dist/__tests__/bundle/designOverflowPin.test.js.map +1 -1
- package/dist/__tests__/bundle/flowColumnsPin.test.js +4 -4
- package/dist/__tests__/bundle/flowColumnsPin.test.js.map +1 -1
- package/dist/__tests__/bundle/gridBalancingPin.test.js +11 -9
- package/dist/__tests__/bundle/gridBalancingPin.test.js.map +1 -1
- package/dist/__tests__/bundle/gridBreakRulesPin.test.js +26 -24
- package/dist/__tests__/bundle/gridBreakRulesPin.test.js.map +1 -1
- package/dist/__tests__/bundle/indexGroupSplitPin.test.js +4 -4
- package/dist/__tests__/bundle/indexGroupSplitPin.test.js.map +1 -1
- package/dist/__tests__/bundle/looseOrderPin.test.js +11 -9
- package/dist/__tests__/bundle/looseOrderPin.test.js.map +1 -1
- package/dist/__tests__/bundle/markRadiusPin.test.js +3 -3
- package/dist/__tests__/bundle/markRadiusPin.test.js.map +1 -1
- package/dist/__tests__/bundle/refLabelBreaksPin.test.js +11 -9
- package/dist/__tests__/bundle/refLabelBreaksPin.test.js.map +1 -1
- package/dist/__tests__/bundle/scriptContextPin.test.js +12 -10
- package/dist/__tests__/bundle/scriptContextPin.test.js.map +1 -1
- package/dist/__tests__/bundle/shapingLanguagePin.test.js +20 -18
- package/dist/__tests__/bundle/shapingLanguagePin.test.js.map +1 -1
- package/dist/__tests__/bundle/taskBoxPin.test.js +1 -1
- package/dist/__tests__/bundle/trailingStepPin.test.js +4 -4
- package/dist/__tests__/bundle/trailingStepPin.test.js.map +1 -1
- package/dist/__tests__/bundle/wideFloatStretchPin.test.js +4 -4
- package/dist/__tests__/bundle/wideFloatStretchPin.test.js.map +1 -1
- package/dist/__tests__/bundle.test.js +5 -5
- package/dist/__tests__/bundle.test.js.map +1 -1
- package/dist/__tests__/codeBlocks.test.js +1 -1
- package/dist/__tests__/composed/folioMissing.test.d.ts +2 -0
- package/dist/__tests__/composed/folioMissing.test.d.ts.map +1 -0
- package/dist/__tests__/composed/folioMissing.test.js +90 -0
- package/dist/__tests__/composed/folioMissing.test.js.map +1 -0
- package/dist/__tests__/composedTemplates.test.js +8 -6
- package/dist/__tests__/composedTemplates.test.js.map +1 -1
- package/dist/__tests__/hardBreaks.test.js +1 -1
- package/dist/__tests__/headingInlineMarks.test.js +1 -1
- package/dist/__tests__/mathSizeMigration.test.js +4 -4
- package/dist/__tests__/mathSizeMigration.test.js.map +1 -1
- package/dist/__tests__/pipeline/boxParagraphStyles.test.js +2 -2
- package/dist/__tests__/pipeline/calloutInlineResourceGap.test.js +1 -1
- package/dist/__tests__/pipeline/calloutSplitMinLinesChild.test.js +3 -3
- package/dist/__tests__/pipeline/calloutSplitMinLinesChild.test.js.map +1 -1
- package/dist/__tests__/pipeline/colonListRoom.test.js +3 -3
- package/dist/__tests__/pipeline/colonListRoom.test.js.map +1 -1
- package/dist/__tests__/pipeline/compoundBreaks.test.js +6 -6
- package/dist/__tests__/pipeline/compoundBreaks.test.js.map +1 -1
- package/dist/__tests__/pipeline/dashBreaks.test.js +5 -5
- package/dist/__tests__/pipeline/dashBreaks.test.js.map +1 -1
- package/dist/__tests__/pipeline/headingSplitOrphans.test.js +3 -3
- package/dist/__tests__/pipeline/headingSplitOrphans.test.js.map +1 -1
- package/dist/__tests__/pipeline/inlineFigureSpace.test.js +5 -5
- package/dist/__tests__/pipeline/inlineFigureSpace.test.js.map +1 -1
- package/dist/__tests__/pipeline/openerChips.test.d.ts +2 -0
- package/dist/__tests__/pipeline/openerChips.test.d.ts.map +1 -0
- package/dist/__tests__/pipeline/openerChips.test.js +181 -0
- package/dist/__tests__/pipeline/openerChips.test.js.map +1 -0
- package/dist/__tests__/pipeline/paragraphContainerTail.test.js +7 -7
- package/dist/__tests__/pipeline/paragraphContainerTail.test.js.map +1 -1
- package/dist/__tests__/pipeline/raggedOptimal.test.js +7 -7
- package/dist/__tests__/pipeline/raggedOptimal.test.js.map +1 -1
- package/dist/__tests__/scriptContext.test.js +10 -1
- package/dist/__tests__/scriptContext.test.js.map +1 -1
- package/dist/__tests__/slashBreaks.test.d.ts +2 -0
- package/dist/__tests__/slashBreaks.test.d.ts.map +1 -0
- package/dist/__tests__/slashBreaks.test.js +160 -0
- package/dist/__tests__/slashBreaks.test.js.map +1 -0
- package/dist/__tests__/verseLines.test.js +7 -7
- package/dist/__tests__/verseLines.test.js.map +1 -1
- package/dist/bundle/configVersion.d.ts +28 -7
- package/dist/bundle/configVersion.d.ts.map +1 -1
- package/dist/bundle/configVersion.js +40 -7
- package/dist/bundle/configVersion.js.map +1 -1
- package/dist/bundle/index.d.ts +1 -1
- package/dist/bundle/index.d.ts.map +1 -1
- package/dist/bundle/index.js +1 -1
- package/dist/bundle/index.js.map +1 -1
- package/dist/canvas-backend/headerFooter.d.ts.map +1 -1
- package/dist/canvas-backend/headerFooter.js +10 -0
- package/dist/canvas-backend/headerFooter.js.map +1 -1
- package/dist/composed/furniture.d.ts +41 -0
- package/dist/composed/furniture.d.ts.map +1 -0
- package/dist/composed/furniture.js +108 -0
- package/dist/composed/furniture.js.map +1 -0
- package/dist/defaults/bodyText.d.ts.map +1 -1
- package/dist/defaults/bodyText.js +7 -0
- package/dist/defaults/bodyText.js.map +1 -1
- package/dist/design/bidiText.d.ts +2 -0
- package/dist/design/bidiText.d.ts.map +1 -1
- package/dist/design/bidiText.js +1 -1
- package/dist/design/bidiText.js.map +1 -1
- package/dist/design/cjkText.d.ts.map +1 -1
- package/dist/design/cjkText.js +6 -1
- package/dist/design/cjkText.js.map +1 -1
- package/dist/design/layout.d.ts +7 -1
- package/dist/design/layout.d.ts.map +1 -1
- package/dist/design/layout.js +49 -15
- package/dist/design/layout.js.map +1 -1
- package/dist/design/placeholders.d.ts +6 -1
- package/dist/design/placeholders.d.ts.map +1 -1
- package/dist/design/placeholders.js.map +1 -1
- package/dist/design/richText.d.ts +28 -4
- package/dist/design/richText.d.ts.map +1 -1
- package/dist/design/richText.js +105 -6
- package/dist/design/richText.js.map +1 -1
- package/dist/html-backend.d.ts.map +1 -1
- package/dist/html-backend.js +28 -5
- package/dist/html-backend.js.map +1 -1
- package/dist/measure/breakRules.d.ts +33 -0
- package/dist/measure/breakRules.d.ts.map +1 -1
- package/dist/measure/breakRules.js +82 -0
- package/dist/measure/breakRules.js.map +1 -1
- package/dist/measure/cache.d.ts.map +1 -1
- package/dist/measure/cache.js +4 -2
- package/dist/measure/cache.js.map +1 -1
- package/dist/measure/rich.d.ts +6 -2
- package/dist/measure/rich.d.ts.map +1 -1
- package/dist/measure/rich.js +69 -6
- package/dist/measure/rich.js.map +1 -1
- package/dist/pipeline/build.d.ts.map +1 -1
- package/dist/pipeline/build.js +16 -7
- package/dist/pipeline/build.js.map +1 -1
- package/dist/pipeline/contentWarnings.d.ts.map +1 -1
- package/dist/pipeline/contentWarnings.js +3 -0
- package/dist/pipeline/contentWarnings.js.map +1 -1
- package/dist/pipeline/headerFooter.d.ts +17 -3
- package/dist/pipeline/headerFooter.d.ts.map +1 -1
- package/dist/pipeline/headerFooter.js +199 -45
- package/dist/pipeline/headerFooter.js.map +1 -1
- package/dist/types.d.ts +17 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/vdt.d.ts +26 -0
- package/dist/vdt.d.ts.map +1 -1
- package/dist/vdt.js.map +1 -1
- package/package.json +1 -1
package/dist/pipeline/build.js
CHANGED
|
@@ -15,6 +15,7 @@ import { initHyphenator, measureRichBlock } from '../measure/index.js';
|
|
|
15
15
|
import { setHyphenationRules } from '../hyphenate.js';
|
|
16
16
|
import { citedNames } from '../citations/names.js';
|
|
17
17
|
import { getCjkLineBreak, setCjkLineBreak } from '../measure/cjkClasses.js';
|
|
18
|
+
import { getSlashBreaks, setSlashBreaks } from '../measure/breakRules.js';
|
|
18
19
|
import { cjkCompositionOf, getCjkComposition, setCjkComposition } from '../measure/cjkPunctuation.js';
|
|
19
20
|
import { getMeasureRegion, getMeasureUprightDigits, getMeasureWritingMode, measuringVertically, setMeasureUprightDigits, setMeasureWritingMode } from '../measure/vertical.js';
|
|
20
21
|
import { stampCentralBaselines } from './verticalMetrics.js';
|
|
@@ -79,7 +80,7 @@ import { buildCodeLineNumbers, codeOverflowWarnings } from './codeLines.js';
|
|
|
79
80
|
import { pickTableStyle } from '../defaults/tableStyle.js';
|
|
80
81
|
import { DEFAULT_FLOAT_MIN_SCALE } from '../defaults/layout.js';
|
|
81
82
|
import { buildLineNumbers, lineNumberWarnings } from './lineNumbers.js';
|
|
82
|
-
import { buildHeadersAndFooters, connectorAnchorUnknownWarnings, defaultOpenerTitle, headingDesignBoxes, layoutBoxDesign, measureBoxDesign, measureDefaultOpenerHeight, measureHeadingDesign } from './headerFooter.js';
|
|
83
|
+
import { buildHeadersAndFooters, connectorAnchorUnknownWarnings, pageFurnitureWarnings, defaultOpenerTitle, headingDesignBoxes, layoutBoxDesign, markedTitleFields, measureBoxDesign, measureDefaultOpenerHeight, measureHeadingDesign } from './headerFooter.js';
|
|
83
84
|
import { flowColorValues } from './partPalette.js';
|
|
84
85
|
import { chapterNumberCounter, leadingBoldText } from './placeholders.js';
|
|
85
86
|
import { proposeBalanceLines, GRID_LINE_LEVERS, collectColumnGaps, firstDivergentColumn, gapLinesIn, boxRoomIn, boxLeverKeys, pageSegments, MAX_BALANCING_PASSES, MAX_BALANCING_PASSES_PER_DOCUMENT, balanceKey, candidateKey, flexFigureKey, flexFloatKey } from './columnBalancing.js';
|
|
@@ -261,10 +262,12 @@ export function buildDocumentPass(content, config, cache, options, hints = {}) {
|
|
|
261
262
|
const arabicNumbers = getMeasureArabicNumbers();
|
|
262
263
|
const scriptContext = getMeasureScriptContext();
|
|
263
264
|
const language = getMeasureLanguage();
|
|
265
|
+
const slashBreaks = getSlashBreaks();
|
|
264
266
|
try {
|
|
265
267
|
return placeDocumentPass(content, config, cache, options, hints);
|
|
266
268
|
}
|
|
267
269
|
finally {
|
|
270
|
+
setSlashBreaks(slashBreaks);
|
|
268
271
|
setMeasureLanguage(language);
|
|
269
272
|
setMeasureScriptContext(scriptContext);
|
|
270
273
|
setMeasureArabicNumbers(arabicNumbers);
|
|
@@ -320,6 +323,9 @@ function placeDocumentPass(content, config, cache, options, hints) {
|
|
|
320
323
|
// authors it cites join them below, once its references are read.
|
|
321
324
|
const hyphenationRules = { exceptions: resolved.bodyText.hyphenation.exceptions, capitalized: resolved.bodyText.hyphenation.capitalized };
|
|
322
325
|
initHyphenator(resolved.bodyText.hyphenation.locale, hyphenationRules);
|
|
326
|
+
// A line may end after a slash between two words wherever rich text is
|
|
327
|
+
// measured (#1164), unless the configuration keeps the breaks of 1.51.
|
|
328
|
+
setSlashBreaks(resolved.bodyText.breakAfterSlashes !== false);
|
|
323
329
|
// CJK text breaks at the document's level wherever it is measured (body,
|
|
324
330
|
// captions, cells, notes, boxes), as it hyphenates in its language.
|
|
325
331
|
setCjkLineBreak(resolved.cjk.lineBreak);
|
|
@@ -3543,7 +3549,7 @@ function placeDocumentPass(content, config, cache, options, hints) {
|
|
|
3543
3549
|
if (level.advancedDesign.enabled) {
|
|
3544
3550
|
const pref = measured.kind.numberPrefix ?? '';
|
|
3545
3551
|
const title = defaultOpenerTitle(measured.measured.lines, pref, rawBlock.titleBreaks, rawBlock.text.length, level.numberSeparator);
|
|
3546
|
-
const design = measureHeadingDesign(level, { titleText: title.titleText, ...(title
|
|
3552
|
+
const design = measureHeadingDesign(level, { titleText: title.titleText, ...markedTitleFields(title, resolved.chipStyles), formattedNumber: pref, attrs: rawBlock.attrs }, width, resolved.page.dpi, doc.metadata, cursor.pageIndex, designFramesOn(page), undefined, resourceById);
|
|
3547
3553
|
height = Math.max(height, design.height, design.textFloor);
|
|
3548
3554
|
}
|
|
3549
3555
|
// Level the band first: in this pass the cap is proposed (the heading
|
|
@@ -4084,8 +4090,8 @@ function placeDocumentPass(content, config, cache, options, hints) {
|
|
|
4084
4090
|
const lvl = headingLevels.forBlock(raw);
|
|
4085
4091
|
if (!lvl?.advancedDesign.enabled)
|
|
4086
4092
|
return undefined;
|
|
4087
|
-
const
|
|
4088
|
-
const info = { titleText, ...(
|
|
4093
|
+
const title = defaultOpenerTitle(lines, pref, raw.titleBreaks, raw.text.length, lvl.numberSeparator);
|
|
4094
|
+
const info = { titleText: title.titleText, ...markedTitleFields(title, resolved.chipStyles), formattedNumber: pref, numericValue: headingNumber, locale: resolvedLocale(resolved), ...(resolved.numerals ? { numerals: resolved.numerals } : {}), chapterNumber: chapterNumberByBlock[blockIdx] ?? '', attrs: raw.attrs };
|
|
4089
4095
|
const design = measureHeadingDesign(lvl, info, width, resolved.page.dpi, doc.metadata, cursor.pageIndex, undefined, undefined, resourceById);
|
|
4090
4096
|
return Math.max(design.height, design.textFloor);
|
|
4091
4097
|
};
|
|
@@ -7878,12 +7884,12 @@ function placeDocumentPass(content, config, cache, options, hints) {
|
|
|
7878
7884
|
const pref = numberPrefix ?? '';
|
|
7879
7885
|
// The lines joined back into the title (EF-162), as the design is
|
|
7880
7886
|
// painted (`buildHeadersAndFooters`).
|
|
7881
|
-
const
|
|
7887
|
+
const openerTitle = defaultOpenerTitle(remainingLines, pref, rawBlock.titleBreaks, rawBlock.text.length, lvl.numberSeparator);
|
|
7882
7888
|
// Span-page openers lay out across the full content area (both
|
|
7883
7889
|
// columns); in-column headings use just the column width.
|
|
7884
7890
|
const pageArea = doc.pages[cursor.pageIndex].contentArea;
|
|
7885
7891
|
const measureWidth = lvl.span === 'page' ? pageArea.width : curCol.bbox.width;
|
|
7886
|
-
const info = { titleText:
|
|
7892
|
+
const info = { titleText: openerTitle.titleText, ...markedTitleFields(openerTitle, resolved.chipStyles), formattedNumber: pref, numericValue: headingNumber, locale: resolvedLocale(resolved), ...(resolved.numerals ? { numerals: resolved.numerals } : {}), chapterNumber: chapterNumberByBlock[blockIdx] ?? '', attrs: rawBlock.attrs };
|
|
7887
7893
|
const design = measureHeadingDesign(lvl, info, measureWidth, resolved.page.dpi, doc.metadata, cursor.pageIndex, designFramesOn(doc.pages[cursor.pageIndex]), {
|
|
7888
7894
|
x: lvl.span === 'page' ? pageArea.x : curCol.bbox.x,
|
|
7889
7895
|
y: curCol.bbox.y + (curCol.bbox.height - curCol.availableHeight) + spacingBefore,
|
|
@@ -7902,7 +7908,7 @@ function placeDocumentPass(content, config, cache, options, hints) {
|
|
|
7902
7908
|
// line whose spaces shrink, a forced break, a run it prints plain):
|
|
7903
7909
|
// the band holds every line it paints (EF-100).
|
|
7904
7910
|
if (opensDefaultOpener(rawBlock)) {
|
|
7905
|
-
const painted = measureDefaultOpenerHeight(lvl, resolved.headings.textAlign,
|
|
7911
|
+
const painted = measureDefaultOpenerHeight(lvl, resolved.headings.textAlign, openerTitle, pref, pageArea.width, resolved.page.dpi, doc.metadata, cursor.pageIndex, resolved.chipStyles);
|
|
7906
7912
|
if (painted > effectiveRemainHeight)
|
|
7907
7913
|
effectiveRemainHeight = painted;
|
|
7908
7914
|
}
|
|
@@ -9046,6 +9052,9 @@ export function* buildDocumentGen(content, config, cache, options) {
|
|
|
9046
9052
|
loose.push(...figureLabelWarnings(doc, (b) => (b.sourceStart !== undefined && b.sourceEnd !== undefined ? { start: b.sourceStart, end: b.sourceEnd } : undefined)));
|
|
9047
9053
|
// Connectors' ends at an anchor their frame's picture lacks (#1057).
|
|
9048
9054
|
loose.push(...connectorAnchorUnknownWarnings(doc));
|
|
9055
|
+
// Composed pages that draw no folio or running head their siblings of
|
|
9056
|
+
// the same template and side draw (#1163).
|
|
9057
|
+
loose.push(...pageFurnitureWarnings(doc));
|
|
9049
9058
|
// Comic panels whose cell cannot hold their picture's safe area (#556).
|
|
9050
9059
|
for (const page of doc.pages) {
|
|
9051
9060
|
if (page.comic)
|