postext 0.3.17 → 0.3.18

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.
Files changed (111) hide show
  1. package/dist/__tests__/columnBalancing.test.d.ts +2 -0
  2. package/dist/__tests__/columnBalancing.test.d.ts.map +1 -0
  3. package/dist/__tests__/columnBalancing.test.js +194 -0
  4. package/dist/__tests__/columnBalancing.test.js.map +1 -0
  5. package/dist/__tests__/exports.test.js +6 -0
  6. package/dist/__tests__/exports.test.js.map +1 -1
  7. package/dist/__tests__/pipeline/floatPlacement.test.js +121 -0
  8. package/dist/__tests__/pipeline/floatPlacement.test.js.map +1 -1
  9. package/dist/__tests__/singleInk.test.d.ts +2 -0
  10. package/dist/__tests__/singleInk.test.d.ts.map +1 -0
  11. package/dist/__tests__/singleInk.test.js +42 -0
  12. package/dist/__tests__/singleInk.test.js.map +1 -0
  13. package/dist/canvas-backend/blockRender.d.ts.map +1 -1
  14. package/dist/canvas-backend/blockRender.js +93 -75
  15. package/dist/canvas-backend/blockRender.js.map +1 -1
  16. package/dist/canvas-backend/decorations.d.ts +4 -1
  17. package/dist/canvas-backend/decorations.d.ts.map +1 -1
  18. package/dist/canvas-backend/decorations.js +14 -6
  19. package/dist/canvas-backend/decorations.js.map +1 -1
  20. package/dist/canvas-backend/headerFooter.d.ts +0 -1
  21. package/dist/canvas-backend/headerFooter.d.ts.map +1 -1
  22. package/dist/canvas-backend/headerFooter.js +0 -1
  23. package/dist/canvas-backend/headerFooter.js.map +1 -1
  24. package/dist/canvas-backend/index.d.ts.map +1 -1
  25. package/dist/canvas-backend/index.js +9 -10
  26. package/dist/canvas-backend/index.js.map +1 -1
  27. package/dist/defaults/diagramStyle.d.ts +5 -0
  28. package/dist/defaults/diagramStyle.d.ts.map +1 -0
  29. package/dist/defaults/diagramStyle.js +29 -0
  30. package/dist/defaults/diagramStyle.js.map +1 -0
  31. package/dist/defaults/headings.d.ts +4 -0
  32. package/dist/defaults/headings.d.ts.map +1 -1
  33. package/dist/defaults/headings.js +36 -3
  34. package/dist/defaults/headings.js.map +1 -1
  35. package/dist/defaults/index.d.ts +2 -1
  36. package/dist/defaults/index.d.ts.map +1 -1
  37. package/dist/defaults/index.js +10 -1
  38. package/dist/defaults/index.js.map +1 -1
  39. package/dist/defaults/shared.d.ts.map +1 -1
  40. package/dist/defaults/shared.js +10 -0
  41. package/dist/defaults/shared.js.map +1 -1
  42. package/dist/html-backend.d.ts +6 -0
  43. package/dist/html-backend.d.ts.map +1 -1
  44. package/dist/html-backend.js +183 -9
  45. package/dist/html-backend.js.map +1 -1
  46. package/dist/index.d.ts +4 -2
  47. package/dist/index.d.ts.map +1 -1
  48. package/dist/index.js +3 -1
  49. package/dist/index.js.map +1 -1
  50. package/dist/knuthPlass/breakpoints.d.ts.map +1 -1
  51. package/dist/knuthPlass/breakpoints.js +41 -98
  52. package/dist/knuthPlass/breakpoints.js.map +1 -1
  53. package/dist/measure/canvas.d.ts +3 -0
  54. package/dist/measure/canvas.d.ts.map +1 -1
  55. package/dist/measure/canvas.js +40 -2
  56. package/dist/measure/canvas.js.map +1 -1
  57. package/dist/measure/font.d.ts +3 -2
  58. package/dist/measure/font.d.ts.map +1 -1
  59. package/dist/measure/font.js +5 -2
  60. package/dist/measure/font.js.map +1 -1
  61. package/dist/measure/plain.d.ts.map +1 -1
  62. package/dist/measure/plain.js +14 -7
  63. package/dist/measure/plain.js.map +1 -1
  64. package/dist/measure/rich.d.ts.map +1 -1
  65. package/dist/measure/rich.js +11 -14
  66. package/dist/measure/rich.js.map +1 -1
  67. package/dist/parse/injectSpans.d.ts +9 -0
  68. package/dist/parse/injectSpans.d.ts.map +1 -0
  69. package/dist/parse/injectSpans.js +35 -0
  70. package/dist/parse/injectSpans.js.map +1 -0
  71. package/dist/parse/inlineFormatting.d.ts.map +1 -1
  72. package/dist/parse/inlineFormatting.js +9 -35
  73. package/dist/parse/inlineFormatting.js.map +1 -1
  74. package/dist/parse/inlineMath.d.ts.map +1 -1
  75. package/dist/parse/inlineMath.js +26 -43
  76. package/dist/parse/inlineMath.js.map +1 -1
  77. package/dist/parse/sourceMapping.d.ts.map +1 -1
  78. package/dist/parse/sourceMapping.js +15 -8
  79. package/dist/parse/sourceMapping.js.map +1 -1
  80. package/dist/pipeline/build.d.ts.map +1 -1
  81. package/dist/pipeline/build.js +158 -37
  82. package/dist/pipeline/build.js.map +1 -1
  83. package/dist/pipeline/columnBalancing.d.ts +75 -0
  84. package/dist/pipeline/columnBalancing.d.ts.map +1 -0
  85. package/dist/pipeline/columnBalancing.js +125 -0
  86. package/dist/pipeline/columnBalancing.js.map +1 -0
  87. package/dist/pipeline/config.d.ts +4 -1
  88. package/dist/pipeline/config.d.ts.map +1 -1
  89. package/dist/pipeline/config.js +10 -1
  90. package/dist/pipeline/config.js.map +1 -1
  91. package/dist/pipeline/headerFooter.d.ts.map +1 -1
  92. package/dist/pipeline/headerFooter.js +7 -5
  93. package/dist/pipeline/headerFooter.js.map +1 -1
  94. package/dist/pipeline/lists.d.ts +4 -9
  95. package/dist/pipeline/lists.d.ts.map +1 -1
  96. package/dist/pipeline/lists.js +24 -42
  97. package/dist/pipeline/lists.js.map +1 -1
  98. package/dist/pipeline/placeholders.d.ts.map +1 -1
  99. package/dist/pipeline/placeholders.js +18 -51
  100. package/dist/pipeline/placeholders.js.map +1 -1
  101. package/dist/svg/singleInk.d.ts +10 -0
  102. package/dist/svg/singleInk.d.ts.map +1 -0
  103. package/dist/svg/singleInk.js +86 -0
  104. package/dist/svg/singleInk.js.map +1 -0
  105. package/dist/types.d.ts +32 -0
  106. package/dist/types.d.ts.map +1 -1
  107. package/dist/vdt.d.ts +17 -1
  108. package/dist/vdt.d.ts.map +1 -1
  109. package/dist/vdt.js +34 -0
  110. package/dist/vdt.js.map +1 -1
  111. package/package.json +6 -6
@@ -4,7 +4,7 @@ import { parseMarkdownMemo } from '../parse';
4
4
  import { buildPageLabels, computeHeadingNumbers, } from '../numbering';
5
5
  import { extractFrontmatter } from '../frontmatter';
6
6
  import { initHyphenator } from '../measure';
7
- import { resolveAllConfig, computeBaselineGrid } from './config';
7
+ import { resolveAllConfig, computeBaselineGrid, buildHeadingLevelMap } from './config';
8
8
  import { resolveBodyStyle, resolveBlockquoteStyle } from './styles';
9
9
  import { computeLevelIndentsPx, computeOrderedLevelIndentsPx, computeOrderedListRunMetrics, } from './lists';
10
10
  import { resetLinePositions, createPageWithColumns, currentColumn, advanceToNextColumn, advanceToNextPageBoundary, enforcePageParity, placeBlockInColumn, placeResourceBlock, } from './placement';
@@ -17,14 +17,31 @@ import { computeFloatPlan, floatedResourceIds, } from './floatPlacement';
17
17
  import { computeHeadingContext, computeResourceNumbering, } from './resourceNumbering';
18
18
  import { defaultResourceTypes } from '../defaults/resourceTypes';
19
19
  import { buildHeadersAndFooters, measureHeadingAdvancedDesignHeight } from './headerFooter';
20
+ import { totalGapLines, proposeBalanceLines, MAX_BALANCING_PASSES } from './columnBalancing';
20
21
  export class BuildCancelledError extends Error {
21
22
  constructor() {
22
23
  super('Build cancelled');
23
24
  this.name = 'BuildCancelledError';
24
25
  }
25
26
  }
26
- export function buildDocument(content, config, cache, options) {
27
+ /** Page-number formats accepted by the `::numbering` directive. */
28
+ const ALLOWED_PAGE_FORMATS = new Set([
29
+ 'decimal',
30
+ 'lower-roman',
31
+ 'upper-roman',
32
+ 'lower-alpha',
33
+ 'upper-alpha',
34
+ ]);
35
+ /**
36
+ * Single placement pass. `balanceExtraPx` carries the column-balancing
37
+ * adjustments (extra top spacing per heading, keyed by content-block index);
38
+ * `forcedBreakPages` reports the pages whose break into the next page was
39
+ * explicit (`:::pagebreak`, heading `breakBefore`, chapter opener) rather
40
+ * than natural content overflow — those pages keep their short last column.
41
+ */
42
+ function buildDocumentPass(content, config, cache, options, balanceExtraPx) {
27
43
  const resolved = resolveAllConfig(config);
44
+ const headingLevelByNumber = buildHeadingLevelMap(resolved);
28
45
  const dpi = resolved.page.dpi;
29
46
  // Initialize hyphenator if needed
30
47
  if (resolved.bodyText.hyphenation.enabled && resolved.bodyText.textAlign === 'justify') {
@@ -178,7 +195,6 @@ export function buildDocument(content, config, cache, options) {
178
195
  const built = buildFloatBlock(f.resourceId, xLeft, width);
179
196
  if (!built)
180
197
  return 'skip';
181
- const need = built.height + floatGapPx;
182
198
  let minAvail = Infinity;
183
199
  let anyReserved = false;
184
200
  for (const c of targetCols) {
@@ -186,6 +202,47 @@ export function buildDocument(content, config, cache, options) {
186
202
  if (topUsed[c] > 0 || botUsed[c] > 0)
187
203
  anyReserved = true;
188
204
  }
205
+ // Both band kinds are corrected against the baseline grid so the text
206
+ // around them — and the facing page — stays on the global rhythm:
207
+ // - top: the band pushes the column start (`col.bbox.y`) downward, and
208
+ // all grid snapping inside the column is anchored at that start. The
209
+ // band height is rounded up to a grid multiple (growing the gap
210
+ // below the float) or every line in the displaced column would land
211
+ // off-grid, visibly misaligned with neighbouring columns.
212
+ // - bottom: the float is anchored so its visual bottom sits on the
213
+ // grid — the caption's last line shares its baseline with the last
214
+ // text line of the other columns (captionless content aligns its
215
+ // bottom edge to the last grid slot). Pages then end at the same
216
+ // height across columns and across facing pages.
217
+ let need;
218
+ let floatY = 0;
219
+ if (f.position === 'top') {
220
+ const rawNeed = built.height + floatGapPx;
221
+ need = Math.ceil((rawNeed - 0.01) / baselineGrid) * baselineGrid;
222
+ }
223
+ else {
224
+ const bottomLimit = Math.min(...targetCols.map((c) => {
225
+ const cb = page.columns[c].bbox;
226
+ return cb.y + cb.height;
227
+ }));
228
+ const gridAlignedBottom = contentArea.y
229
+ + Math.floor((bottomLimit - contentArea.y + 0.01) / baselineGrid) * baselineGrid;
230
+ const capLines = built.block.resourceBlock.captionLines;
231
+ if (capLines.length > 0) {
232
+ // Body baselines sit at 0.2 × grid above each slot bottom; anchor
233
+ // the caption's last baseline there.
234
+ const lastBaseline = capLines[capLines.length - 1].baseline; // block-relative
235
+ floatY = gridAlignedBottom - 0.2 * baselineGrid - lastBaseline;
236
+ }
237
+ else {
238
+ floatY = gridAlignedBottom - built.height;
239
+ }
240
+ need = 0;
241
+ for (const c of targetCols) {
242
+ const col = page.columns[c];
243
+ need = Math.max(need, col.bbox.height - (floatY - floatGapPx - col.bbox.y));
244
+ }
245
+ }
189
246
  // Keep some text room, unless this band is still all-text (then a
190
247
  // dominating / oversized float is force-placed so the queue progresses).
191
248
  if (need > minAvail - minTextPx && anyReserved)
@@ -197,14 +254,17 @@ export function buildDocument(content, config, cache, options) {
197
254
  y = col.bbox.y; // float sits at the current top edge
198
255
  col.bbox.y += need; // push column content below the band
199
256
  col.bbox.height = Math.max(0, col.bbox.height - need);
257
+ col.availableHeight = Math.max(0, col.availableHeight - need);
200
258
  topUsed[c] += need;
201
259
  }
202
260
  else {
203
- col.bbox.height = Math.max(0, col.bbox.height - need);
204
- y = col.bbox.y + col.bbox.height + floatGapPx; // flush toward the bottom
205
- botUsed[c] += need;
261
+ y = floatY;
262
+ const newHeight = Math.max(0, floatY - floatGapPx - col.bbox.y);
263
+ const reserved = col.bbox.height - newHeight;
264
+ col.bbox.height = newHeight;
265
+ col.availableHeight = Math.max(0, col.availableHeight - reserved);
266
+ botUsed[c] += reserved;
206
267
  }
207
- col.availableHeight = Math.max(0, col.availableHeight - need);
208
268
  }
209
269
  offsetResourceBlockToAbsolute(built.block.resourceBlock, 0, y);
210
270
  built.block.bbox = createBoundingBox(xLeft, y, width, built.height);
@@ -257,6 +317,16 @@ export function buildDocument(content, config, cache, options) {
257
317
  const cursor = { pageIndex: 0, columnIndex: 0 };
258
318
  let blockIdCounter = 0;
259
319
  let pendingSpacing = 0;
320
+ // Pages whose break into the next page is explicit rather than natural
321
+ // overflow. Column balancing leaves their last column short (a chapter's
322
+ // closing page legitimately ends early).
323
+ const forcedBreakPages = new Set();
324
+ const markForcedBreak = () => {
325
+ const curPage = doc.pages[cursor.pageIndex];
326
+ if (curPage.columns.some((c) => c.blocks.length > 0)) {
327
+ forcedBreakPages.add(cursor.pageIndex);
328
+ }
329
+ };
260
330
  // Page-numbering segments. The implicit first segment comes from
261
331
  // `cfg.page.pageNumbering`; `:::numbering` directives append more,
262
332
  // each applied at the next page boundary.
@@ -283,13 +353,6 @@ export function buildDocument(content, config, cache, options) {
283
353
  lastSeenPageIndex = cursor.pageIndex;
284
354
  }
285
355
  };
286
- const ALLOWED_PAGE_FORMATS = new Set([
287
- 'decimal',
288
- 'lower-roman',
289
- 'upper-roman',
290
- 'lower-alpha',
291
- 'upper-alpha',
292
- ]);
293
356
  for (let blockIdx = 0; blockIdx < contentBlocks.length; blockIdx++) {
294
357
  if (options?.shouldCancel?.())
295
358
  throw new BuildCancelledError();
@@ -307,6 +370,7 @@ export function buildDocument(content, config, cache, options) {
307
370
  const attrs = rawBlock.directiveAttrs ?? {};
308
371
  if (name === 'pagebreak') {
309
372
  pendingSpacing = 0;
373
+ markForcedBreak();
310
374
  advanceToNextPageBoundary(doc, cursor, resolved, contentArea, pageWidthPx, pageHeightPx);
311
375
  const parity = attrs.parity;
312
376
  if (parity === 'odd'
@@ -334,10 +398,11 @@ export function buildDocument(content, config, cache, options) {
334
398
  }
335
399
  // --- Heading `breakBefore` ----------------------------------------
336
400
  if (rawBlock.type === 'heading' && rawBlock.level) {
337
- const level = resolved.headings.levels.find((l) => l.level === rawBlock.level);
401
+ const level = headingLevelByNumber.get(rawBlock.level);
338
402
  const bb = level?.breakBefore;
339
403
  if (bb && bb.enabled) {
340
404
  pendingSpacing = 0;
405
+ markForcedBreak();
341
406
  advanceToNextPageBoundary(doc, cursor, resolved, contentArea, pageWidthPx, pageHeightPx);
342
407
  if (bb.parity !== 'any') {
343
408
  enforcePageParity(doc, cursor, resolved, contentArea, pageWidthPx, pageHeightPx, bb.parity);
@@ -350,6 +415,7 @@ export function buildDocument(content, config, cache, options) {
350
415
  // have their availableHeight reduced symmetrically after placement.
351
416
  if (level?.span === 'page') {
352
417
  pendingSpacing = 0;
418
+ markForcedBreak();
353
419
  advanceToNextPageBoundary(doc, cursor, resolved, contentArea, pageWidthPx, pageHeightPx);
354
420
  cursor.columnIndex = 0;
355
421
  flushPendingNumberingAtBoundary();
@@ -411,6 +477,7 @@ export function buildDocument(content, config, cache, options) {
411
477
  }
412
478
  const groupHeight = measured.totalHeight;
413
479
  const blk = createVDTBlock(id, 'resource', style.fontString, style.color, style.textAlign);
480
+ blk.contentIndex = blockIdx;
414
481
  blk.resourceBlock = resourceBlock;
415
482
  blk.dirty = false;
416
483
  blk.snappedToGrid = false;
@@ -431,26 +498,20 @@ export function buildDocument(content, config, cache, options) {
431
498
  // `placeBlockInColumn` (inside placeResourceBlock) shifts `blk.lines`; the
432
499
  // resource's own caption/table lines live on `resourceBlock` and must be
433
500
  // offset to absolute page coordinates here using the placed bbox origin.
434
- const ox = blk.bbox.x;
435
- const oy = blk.bbox.y;
436
- for (const ln of resourceBlock.captionLines) {
437
- ln.bbox.x += ox;
438
- ln.bbox.y += oy;
439
- ln.baseline += oy;
440
- }
441
- if (resourceBlock.table) {
442
- for (const cell of resourceBlock.table.cells) {
443
- cell.rect.x += ox;
444
- cell.rect.y += oy;
445
- for (const cl of cell.lines) {
446
- cl.bbox.x += ox;
447
- cl.bbox.y += oy;
448
- cl.baseline += oy;
449
- }
450
- }
451
- }
501
+ offsetResourceBlockToAbsolute(resourceBlock, blk.bbox.x, blk.bbox.y);
452
502
  doc.blocks.push(blk);
453
- pendingSpacing = style.marginBottomPx;
503
+ // Snap the flow position after the resource to the baseline grid (the
504
+ // group height is arbitrary), baking in at least marginBottom — same
505
+ // convention as snapped headings — so the following text lands back on
506
+ // the global grid instead of inheriting the resource's offset.
507
+ {
508
+ const rCol = currentColumn(doc, cursor);
509
+ const usedHeight = rCol.bbox.height - rCol.availableHeight;
510
+ const naturalBottom = usedHeight + style.marginBottomPx;
511
+ const snappedBottom = Math.ceil((naturalBottom - 0.01) / baselineGrid) * baselineGrid;
512
+ rCol.availableHeight = Math.max(0, rCol.bbox.height - snappedBottom);
513
+ }
514
+ pendingSpacing = 0;
454
515
  flushPendingNumberingAtBoundary();
455
516
  continue;
456
517
  }
@@ -583,6 +644,17 @@ export function buildDocument(content, config, cache, options) {
583
644
  spacingBefore = pendingSpacing;
584
645
  if (vdtType === 'heading' || vdtType === 'mathDisplay') {
585
646
  spacingBefore = Math.max(spacingBefore, style.marginTopPx);
647
+ // Column balancing: extra whole grid lines above this heading so
648
+ // the column it sits in ends flush with the page bottom. Applied
649
+ // after margin collapsing — the heading's effective top margin
650
+ // grows by the assigned lines. Suppressed for first-in-column
651
+ // headings (no top margin there), keeping columns starting at the
652
+ // page top.
653
+ if (vdtType === 'heading') {
654
+ const extraPx = balanceExtraPx?.get(blockIdx);
655
+ if (extraPx)
656
+ spacingBefore += extraPx;
657
+ }
586
658
  }
587
659
  else if (vdtType === 'listItem') {
588
660
  const prevWasList = blockIdx > 0 && contentBlocks[blockIdx - 1].type === 'listItem';
@@ -604,7 +676,7 @@ export function buildDocument(content, config, cache, options) {
604
676
  // subsequent marginBottom + grid snap) starts from there.
605
677
  let effectiveRemainHeight = totalRemainHeight;
606
678
  if (vdtType === 'heading' && headingLevel !== undefined && partIndex === 0) {
607
- const lvl = resolved.headings.levels.find((l) => l.level === headingLevel);
679
+ const lvl = headingLevelByNumber.get(headingLevel);
608
680
  if (lvl) {
609
681
  const full = remainingLines
610
682
  .map((ln) => (ln.segments ?? []).map((s) => s.text).join(''))
@@ -649,6 +721,7 @@ export function buildDocument(content, config, cache, options) {
649
721
  const splitLines = remainingLines.slice(0, splitAt);
650
722
  const blk = createVDTBlock(id, vdtType, style.fontString, style.color, style.textAlign);
651
723
  applyStyleAttrs(blk, style);
724
+ blk.contentIndex = blockIdx;
652
725
  blk.headingLevel = headingLevel;
653
726
  if (numberPrefix)
654
727
  blk.numberPrefix = numberPrefix;
@@ -756,6 +829,7 @@ export function buildDocument(content, config, cache, options) {
756
829
  const partId = partIndex === 0 ? id : `${id}-cont-${partIndex}`;
757
830
  const blk = createVDTBlock(partId, vdtType, style.fontString, style.color, style.textAlign);
758
831
  applyStyleAttrs(blk, style);
832
+ blk.contentIndex = blockIdx;
759
833
  if (partIndex === 0) {
760
834
  blk.headingLevel = headingLevel;
761
835
  if (numberPrefix)
@@ -805,7 +879,7 @@ export function buildDocument(content, config, cache, options) {
805
879
  // other column on this page so body text under the opener band
806
880
  // starts below it in ALL columns, not just the one it was placed in.
807
881
  if (vdtType === 'heading' && headingLevel !== undefined) {
808
- const lvl = resolved.headings.levels.find((l) => l.level === headingLevel);
882
+ const lvl = headingLevelByNumber.get(headingLevel);
809
883
  if (lvl?.span === 'page') {
810
884
  const page = doc.pages[cursor.pageIndex];
811
885
  for (const otherCol of page.columns) {
@@ -850,6 +924,7 @@ export function buildDocument(content, config, cache, options) {
850
924
  const splitLines = remainingLines.slice(0, choice.splitAt);
851
925
  const blk = createVDTBlock(partId, vdtType, style.fontString, style.color, style.textAlign);
852
926
  applyStyleAttrs(blk, style);
927
+ blk.contentIndex = blockIdx;
853
928
  if (partIndex === 0) {
854
929
  blk.headingLevel = headingLevel;
855
930
  if (numberPrefix)
@@ -899,6 +974,7 @@ export function buildDocument(content, config, cache, options) {
899
974
  const partId = partIndex === 0 ? id : `${id}-cont-${partIndex}`;
900
975
  const blk = createVDTBlock(partId, vdtType, style.fontString, style.color, style.textAlign);
901
976
  applyStyleAttrs(blk, style);
977
+ blk.contentIndex = blockIdx;
902
978
  if (partIndex === 0)
903
979
  blk.headingLevel = headingLevel;
904
980
  blk.lines = resetLinePositions(remainingLines, style.lineHeightPx);
@@ -940,6 +1016,51 @@ export function buildDocument(content, config, cache, options) {
940
1016
  buildHeadersAndFooters(doc);
941
1017
  doc.converged = true;
942
1018
  doc.iterationCount = 1;
943
- return doc;
1019
+ return { doc, forcedBreakPages };
1020
+ }
1021
+ export function buildDocument(content, config, cache, options) {
1022
+ let best = buildDocumentPass(content, config, cache, options);
1023
+ // --- Column balancing (vertical justification) ------------------------
1024
+ // Iteratively re-place the document with extra grid lines above headings
1025
+ // until every balanceable column ends flush with the page bottom (or no
1026
+ // further adjustment is possible). Each retry recomputes the remaining
1027
+ // gaps on the freshly placed document, so split/keep-with-next decisions
1028
+ // that shift under the new spacing are accounted for. The best layout
1029
+ // (fewest leftover gap lines) always wins — a retry that regresses is
1030
+ // discarded.
1031
+ const balancing = best.doc.config.headings.balancing;
1032
+ if (!balancing.enabled)
1033
+ return best.doc;
1034
+ let bestScore = totalGapLines(best.doc, best.forcedBreakPages);
1035
+ let appliedLines = new Map();
1036
+ let passCount = 1;
1037
+ let converged = bestScore === 0;
1038
+ while (!converged && passCount < MAX_BALANCING_PASSES) {
1039
+ const proposal = proposeBalanceLines(best.doc, best.forcedBreakPages, appliedLines, balancing.maxLinesPerHeading);
1040
+ if (!proposal.changed) {
1041
+ // No heading can absorb the remaining gaps — stable.
1042
+ converged = true;
1043
+ break;
1044
+ }
1045
+ const extraPx = new Map();
1046
+ for (const [idx, n] of proposal.lines)
1047
+ extraPx.set(idx, n * best.doc.baselineGrid);
1048
+ const next = buildDocumentPass(content, config, cache, options, extraPx);
1049
+ passCount++;
1050
+ const score = totalGapLines(next.doc, next.forcedBreakPages);
1051
+ if (score < bestScore) {
1052
+ best = next;
1053
+ bestScore = score;
1054
+ appliedLines = proposal.lines;
1055
+ converged = score === 0;
1056
+ }
1057
+ else {
1058
+ // Plateau or regression — keep the best layout found so far.
1059
+ break;
1060
+ }
1061
+ }
1062
+ best.doc.iterationCount = passCount;
1063
+ best.doc.converged = converged || bestScore === 0;
1064
+ return best.doc;
944
1065
  }
945
1066
  //# sourceMappingURL=build.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/pipeline/build.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/pipeline/build.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,75 @@
1
+ /**
2
+ * Vertical column balancing — editorial bottom alignment.
3
+ *
4
+ * Publishers expect every column of a page to start at the top of the page
5
+ * and end flush with the bottom. The placement pass naturally leaves short
6
+ * columns: orphan/widow rules, keep-with-next headings, and unsplittable
7
+ * groups all push content to the next column before the current one is full,
8
+ * leaving one or more empty grid lines at its bottom.
9
+ *
10
+ * The fix mirrors what a human compositor does: add whole baseline-grid
11
+ * lines to the top margin of the headings inside the short column, pushing
12
+ * the content below them down until the column ends on the last grid slot.
13
+ * Because the column break is element-bound (the element that opens the next
14
+ * column did not fit in the gap, so it still won't fit in a smaller one),
15
+ * shifting a column's tail down by at most its gap never moves content into
16
+ * the next column or page — the adjustment is local and exact.
17
+ *
18
+ * When a column needs several lines and holds several headings, the extra
19
+ * lines are distributed round-robin in importance order (lowest heading
20
+ * level first), so the most important heading always receives the largest
21
+ * share — e.g. 3 lines over an h2 and an h3 become +2 above the h2 and +1
22
+ * above the h3.
23
+ */
24
+ import type { VDTDocument } from '../vdt';
25
+ /** Maximum number of placement passes (initial + balancing retries). */
26
+ export declare const MAX_BALANCING_PASSES = 5;
27
+ interface BalanceCandidate {
28
+ /** Stable content-block index keying the adjustment across passes. */
29
+ contentIndex: number;
30
+ /** Heading level (1–6); lower = more important = larger share. */
31
+ level: number;
32
+ /** Reading-order tiebreak within the column. */
33
+ order: number;
34
+ }
35
+ interface ColumnGap {
36
+ pageIndex: number;
37
+ columnIndex: number;
38
+ /** Whole empty grid lines at the bottom of the column. */
39
+ gapLines: number;
40
+ /** Headings inside this column that can absorb extra lines. */
41
+ candidates: BalanceCandidate[];
42
+ }
43
+ /**
44
+ * Collect the bottom gaps of every balanceable column.
45
+ *
46
+ * A column is balanceable when content flowed past it into a later column of
47
+ * the same page, or — for the page's last non-empty column — when the page
48
+ * flows naturally into a later content page (no `:::pagebreak`, heading
49
+ * `breakBefore`, or chapter opener forced the break, and it is not the last
50
+ * content page: a short final column at the end of a chapter is legitimate).
51
+ *
52
+ * Eligible headings are heading blocks that are neither the first block of
53
+ * their column (their top margin is suppressed there so the column keeps
54
+ * starting at the page top) nor the last (space above a trailing heading
55
+ * would strand it at the column bottom).
56
+ */
57
+ export declare function collectColumnGaps(doc: VDTDocument, forcedBreakPages: ReadonlySet<number>): ColumnGap[];
58
+ /** Total empty grid lines across all balanceable columns — the quantity the
59
+ * convergence loop minimises. */
60
+ export declare function totalGapLines(doc: VDTDocument, forcedBreakPages: ReadonlySet<number>): number;
61
+ export interface BalanceProposal {
62
+ /** Extra grid lines per content-block index (cumulative across passes). */
63
+ lines: Map<number, number>;
64
+ /** Whether the proposal adds anything over `current`. */
65
+ changed: boolean;
66
+ }
67
+ /**
68
+ * Propose the next round of per-heading extra lines: for each balanceable
69
+ * column gap, distribute its lines among the column's headings round-robin
70
+ * in importance order, on top of the already-applied `current` adjustments
71
+ * and capped at `maxLinesPerHeading` per heading.
72
+ */
73
+ export declare function proposeBalanceLines(doc: VDTDocument, forcedBreakPages: ReadonlySet<number>, current: ReadonlyMap<number, number>, maxLinesPerHeading: number): BalanceProposal;
74
+ export {};
75
+ //# sourceMappingURL=columnBalancing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"columnBalancing.d.ts","sourceRoot":"","sources":["../../src/pipeline/columnBalancing.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAW,MAAM,QAAQ,CAAC;AAKnD,wEAAwE;AACxE,eAAO,MAAM,oBAAoB,IAAI,CAAC;AAEtC,UAAU,gBAAgB;IACxB,sEAAsE;IACtE,YAAY,EAAE,MAAM,CAAC;IACrB,kEAAkE;IAClE,KAAK,EAAE,MAAM,CAAC;IACd,gDAAgD;IAChD,KAAK,EAAE,MAAM,CAAC;CACf;AAED,UAAU,SAAS;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,0DAA0D;IAC1D,QAAQ,EAAE,MAAM,CAAC;IACjB,+DAA+D;IAC/D,UAAU,EAAE,gBAAgB,EAAE,CAAC;CAChC;AAMD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,WAAW,EAChB,gBAAgB,EAAE,WAAW,CAAC,MAAM,CAAC,GACpC,SAAS,EAAE,CA2Cb;AAED;kCACkC;AAClC,wBAAgB,aAAa,CAC3B,GAAG,EAAE,WAAW,EAChB,gBAAgB,EAAE,WAAW,CAAC,MAAM,CAAC,GACpC,MAAM,CAER;AAED,MAAM,WAAW,eAAe;IAC9B,2EAA2E;IAC3E,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC3B,yDAAyD;IACzD,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,WAAW,EAChB,gBAAgB,EAAE,WAAW,CAAC,MAAM,CAAC,EACrC,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,EACpC,kBAAkB,EAAE,MAAM,GACzB,eAAe,CAyBjB"}