postext 0.3.26 → 0.3.28
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__/columnBalancing.test.js +46 -0
- package/dist/__tests__/columnBalancing.test.js.map +1 -1
- package/dist/__tests__/continuation.test.d.ts +2 -0
- package/dist/__tests__/continuation.test.d.ts.map +1 -0
- package/dist/__tests__/continuation.test.js +124 -0
- package/dist/__tests__/continuation.test.js.map +1 -0
- package/dist/__tests__/defaults/calloutStyles.test.js +62 -3
- package/dist/__tests__/defaults/calloutStyles.test.js.map +1 -1
- package/dist/__tests__/defaults/headingsBalancing.test.d.ts +2 -0
- package/dist/__tests__/defaults/headingsBalancing.test.d.ts.map +1 -0
- package/dist/__tests__/defaults/headingsBalancing.test.js +17 -0
- package/dist/__tests__/defaults/headingsBalancing.test.js.map +1 -0
- package/dist/__tests__/exports.test.js +1 -0
- package/dist/__tests__/exports.test.js.map +1 -1
- package/dist/__tests__/parts.test.js +82 -1
- package/dist/__tests__/parts.test.js.map +1 -1
- package/dist/__tests__/pipeline/calloutLayout.test.js +171 -0
- package/dist/__tests__/pipeline/calloutLayout.test.js.map +1 -1
- package/dist/__tests__/pipeline/calloutSplit.test.d.ts +2 -0
- package/dist/__tests__/pipeline/calloutSplit.test.d.ts.map +1 -0
- package/dist/__tests__/pipeline/calloutSplit.test.js +156 -0
- package/dist/__tests__/pipeline/calloutSplit.test.js.map +1 -0
- package/dist/__tests__/pipeline/raggedUrl.test.d.ts +2 -0
- package/dist/__tests__/pipeline/raggedUrl.test.d.ts.map +1 -0
- package/dist/__tests__/pipeline/raggedUrl.test.js +22 -0
- package/dist/__tests__/pipeline/raggedUrl.test.js.map +1 -0
- package/dist/__tests__/pipeline/spanBlocks.test.js +4 -2
- package/dist/__tests__/pipeline/spanBlocks.test.js.map +1 -1
- package/dist/__tests__/pipeline/spanLeaveLevel.test.d.ts +2 -0
- package/dist/__tests__/pipeline/spanLeaveLevel.test.d.ts.map +1 -0
- package/dist/__tests__/pipeline/spanLeaveLevel.test.js +103 -0
- package/dist/__tests__/pipeline/spanLeaveLevel.test.js.map +1 -0
- package/dist/__tests__/pipeline/trailingBandZone.test.d.ts +2 -0
- package/dist/__tests__/pipeline/trailingBandZone.test.d.ts.map +1 -0
- package/dist/__tests__/pipeline/trailingBandZone.test.js +77 -0
- package/dist/__tests__/pipeline/trailingBandZone.test.js.map +1 -0
- package/dist/canvas-backend/blockRender.js +1 -1
- package/dist/canvas-backend/blockRender.js.map +1 -1
- package/dist/defaults/calloutStyles.d.ts +17 -1
- package/dist/defaults/calloutStyles.d.ts.map +1 -1
- package/dist/defaults/calloutStyles.js +77 -4
- package/dist/defaults/calloutStyles.js.map +1 -1
- package/dist/defaults/headings.d.ts +1 -0
- package/dist/defaults/headings.d.ts.map +1 -1
- package/dist/defaults/headings.js +7 -0
- package/dist/defaults/headings.js.map +1 -1
- package/dist/defaults/shared.d.ts.map +1 -1
- package/dist/defaults/shared.js +12 -0
- package/dist/defaults/shared.js.map +1 -1
- package/dist/design/layout.d.ts +6 -1
- package/dist/design/layout.d.ts.map +1 -1
- package/dist/design/layout.js +38 -2
- package/dist/design/layout.js.map +1 -1
- package/dist/design/placeholders.d.ts +4 -0
- package/dist/design/placeholders.d.ts.map +1 -1
- package/dist/design/placeholders.js.map +1 -1
- package/dist/html-backend.js +1 -1
- package/dist/html-backend.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/numbering.d.ts +3 -1
- package/dist/numbering.d.ts.map +1 -1
- package/dist/numbering.js +4 -1
- package/dist/numbering.js.map +1 -1
- package/dist/pipeline/bandCaps.d.ts +21 -1
- package/dist/pipeline/bandCaps.d.ts.map +1 -1
- package/dist/pipeline/bandCaps.js +29 -3
- package/dist/pipeline/bandCaps.js.map +1 -1
- package/dist/pipeline/build.d.ts +17 -0
- package/dist/pipeline/build.d.ts.map +1 -1
- package/dist/pipeline/build.js +413 -172
- package/dist/pipeline/build.js.map +1 -1
- package/dist/pipeline/buildHelpers.d.ts +1 -1
- package/dist/pipeline/buildHelpers.d.ts.map +1 -1
- package/dist/pipeline/buildHelpers.js +2 -2
- package/dist/pipeline/buildHelpers.js.map +1 -1
- package/dist/pipeline/calloutLayout.d.ts +14 -3
- package/dist/pipeline/calloutLayout.d.ts.map +1 -1
- package/dist/pipeline/calloutLayout.js +153 -48
- package/dist/pipeline/calloutLayout.js.map +1 -1
- package/dist/pipeline/columnBalancing.d.ts.map +1 -1
- package/dist/pipeline/columnBalancing.js +17 -1
- package/dist/pipeline/columnBalancing.js.map +1 -1
- package/dist/pipeline/continuation.d.ts +7 -0
- package/dist/pipeline/continuation.d.ts.map +1 -0
- package/dist/pipeline/continuation.js +38 -0
- package/dist/pipeline/continuation.js.map +1 -0
- package/dist/pipeline/headerFooter.d.ts.map +1 -1
- package/dist/pipeline/headerFooter.js +16 -8
- package/dist/pipeline/headerFooter.js.map +1 -1
- package/dist/pipeline/index.d.ts +2 -1
- package/dist/pipeline/index.d.ts.map +1 -1
- package/dist/pipeline/index.js +1 -0
- package/dist/pipeline/index.js.map +1 -1
- package/dist/pipeline/parts.d.ts +9 -0
- package/dist/pipeline/parts.d.ts.map +1 -1
- package/dist/pipeline/parts.js +15 -0
- package/dist/pipeline/parts.js.map +1 -1
- package/dist/pipeline/placeholders.d.ts +13 -10
- package/dist/pipeline/placeholders.d.ts.map +1 -1
- package/dist/pipeline/placeholders.js +17 -15
- package/dist/pipeline/placeholders.js.map +1 -1
- package/dist/pipeline/placement.d.ts +3 -2
- package/dist/pipeline/placement.d.ts.map +1 -1
- package/dist/pipeline/placement.js +13 -8
- package/dist/pipeline/placement.js.map +1 -1
- package/dist/pipeline/raggedUrl.d.ts +15 -0
- package/dist/pipeline/raggedUrl.d.ts.map +1 -0
- package/dist/pipeline/raggedUrl.js +28 -0
- package/dist/pipeline/raggedUrl.js.map +1 -0
- package/dist/pipeline/resourceNumbering.d.ts +27 -19
- package/dist/pipeline/resourceNumbering.d.ts.map +1 -1
- package/dist/pipeline/resourceNumbering.js +19 -17
- package/dist/pipeline/resourceNumbering.js.map +1 -1
- package/dist/types.d.ts +128 -2
- package/dist/types.d.ts.map +1 -1
- package/dist/vdt.d.ts +27 -1
- package/dist/vdt.d.ts.map +1 -1
- package/dist/vdt.js.map +1 -1
- package/dist/worker/client.d.ts +4 -0
- package/dist/worker/client.d.ts.map +1 -1
- package/dist/worker/client.js +4 -0
- package/dist/worker/client.js.map +1 -1
- package/dist/worker/layout.worker.js +14 -0
- package/dist/worker/layout.worker.js.map +1 -1
- package/dist/worker/protocol.d.ts +5 -0
- package/dist/worker/protocol.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -9,11 +9,12 @@ export function resetLinePositions(lines, lineHeightPx) {
|
|
|
9
9
|
baseline: i * lineHeightPx + lineHeightPx * 0.8,
|
|
10
10
|
}));
|
|
11
11
|
}
|
|
12
|
-
export function createPageWithColumns(pageIndex, resolved, contentArea, pageWidthPx, pageHeightPx) {
|
|
12
|
+
export function createPageWithColumns(pageIndex, resolved, contentArea, pageWidthPx, pageHeightPx, pageIndexOffset = 0) {
|
|
13
13
|
// `contentArea` is the recto (odd-page) area; mirrored margins swap the
|
|
14
14
|
// inner/outer margins on even pages. `pageIndex` is the page's position in
|
|
15
|
-
// `doc.pages`, so page number = index + 1
|
|
16
|
-
|
|
15
|
+
// `doc.pages`, so page number = index + 1 (+ the pages before a continued
|
|
16
|
+
// document).
|
|
17
|
+
const pageArea = contentAreaForPage({ contentArea, pageWidthPx }, resolved, pageIndex, pageIndexOffset);
|
|
17
18
|
const page = createVDTPage(pageIndex, pageWidthPx, pageHeightPx, pageArea);
|
|
18
19
|
const colBboxes = computeColumnBboxes(pageArea, resolved);
|
|
19
20
|
for (let i = 0; i < colBboxes.length; i++) {
|
|
@@ -27,7 +28,7 @@ export function createPageWithColumns(pageIndex, resolved, contentArea, pageWidt
|
|
|
27
28
|
* area, `partInfo` stamped and the role fixed to `'part'`. The opener
|
|
28
29
|
* design is laid out later by `buildHeadersAndFooters` against the full
|
|
29
30
|
* trim box and never reserves body space. */
|
|
30
|
-
export function createPartPage(page, metrics, resolved, info) {
|
|
31
|
+
export function createPartPage(page, metrics, resolved, info, pageIndexOffset = 0) {
|
|
31
32
|
const dpi = resolved.page.dpi;
|
|
32
33
|
const m = resolved.parts.margins;
|
|
33
34
|
const trim = metrics.trimBox;
|
|
@@ -36,7 +37,7 @@ export function createPartPage(page, metrics, resolved, info) {
|
|
|
36
37
|
const left = dimensionToPx(m.left, dpi);
|
|
37
38
|
const right = dimensionToPx(m.right, dpi);
|
|
38
39
|
let area = createBoundingBox(trim.x + left, trim.y + top, Math.max(0, trim.width - left - right), Math.max(0, trim.height - top - bottom));
|
|
39
|
-
const isEvenPage = (page.index + 1) % 2 === 0;
|
|
40
|
+
const isEvenPage = (page.index + pageIndexOffset + 1) % 2 === 0;
|
|
40
41
|
if (m.mirror && isEvenPage)
|
|
41
42
|
area = mirrorContentArea(area, metrics.pageWidthPx);
|
|
42
43
|
page.contentArea = area;
|
|
@@ -44,6 +45,7 @@ export function createPartPage(page, metrics, resolved, info) {
|
|
|
44
45
|
page.partInfo = {
|
|
45
46
|
number: info.number,
|
|
46
47
|
title: info.title,
|
|
48
|
+
...(info.palette && Object.keys(info.palette).length > 0 ? { palette: info.palette } : {}),
|
|
47
49
|
titleSourceStart: info.titleSourceStart,
|
|
48
50
|
titleSourceEnd: info.titleSourceEnd,
|
|
49
51
|
};
|
|
@@ -168,7 +170,7 @@ export function advanceToNextColumn(doc, cursor, resolved, contentArea, pageWidt
|
|
|
168
170
|
}
|
|
169
171
|
else {
|
|
170
172
|
// New page
|
|
171
|
-
const newPage = createPageWithColumns(doc.pages.length, resolved, contentArea, pageWidthPx, pageHeightPx);
|
|
173
|
+
const newPage = createPageWithColumns(doc.pages.length, resolved, contentArea, pageWidthPx, pageHeightPx, doc.pageIndexOffset ?? 0);
|
|
172
174
|
doc.pages.push(newPage);
|
|
173
175
|
cursor.pageIndex = newPage.index;
|
|
174
176
|
cursor.columnIndex = 0;
|
|
@@ -208,12 +210,15 @@ export function advanceToNextPageBoundary(doc, cursor, resolved, contentArea, pa
|
|
|
208
210
|
export function enforcePageParity(doc, cursor, resolved, contentArea, pageWidthPx, pageHeightPx, parity) {
|
|
209
211
|
if (parity === 'any')
|
|
210
212
|
return;
|
|
213
|
+
const pageIndexOffset = doc.pageIndexOffset ?? 0;
|
|
211
214
|
// Document-start exception: when the first block of the document is a
|
|
212
215
|
// heading with `breakBefore` (or the source opens with a `:::pagebreak`),
|
|
213
216
|
// we're still sitting on page 0 with nothing placed yet. Skip parity
|
|
214
217
|
// and force logic entirely — there's no previous content to separate
|
|
215
218
|
// from, and padding would only create a spurious blank opening page.
|
|
216
|
-
|
|
219
|
+
// A continued document (a chapter laid out after the pages before it)
|
|
220
|
+
// has that previous content, so it pads exactly as it would mid-book.
|
|
221
|
+
if (cursor.pageIndex === 0 && pageIndexOffset === 0) {
|
|
217
222
|
const firstPage = doc.pages[0];
|
|
218
223
|
if (firstPage && firstPage.columns.every((c) => c.blocks.length === 0)) {
|
|
219
224
|
return;
|
|
@@ -232,7 +237,7 @@ export function enforcePageParity(doc, cursor, resolved, contentArea, pageWidthP
|
|
|
232
237
|
}
|
|
233
238
|
while (true) {
|
|
234
239
|
const curPage = doc.pages[cursor.pageIndex];
|
|
235
|
-
const pageNumber = curPage.index + 1;
|
|
240
|
+
const pageNumber = curPage.index + pageIndexOffset + 1;
|
|
236
241
|
const isOdd = pageNumber % 2 === 1;
|
|
237
242
|
const ok = targetParity === 'odd' ? isOdd : !isOdd;
|
|
238
243
|
if (ok)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"placement.js","sourceRoot":"","sources":["../../src/pipeline/placement.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"placement.js","sourceRoot":"","sources":["../../src/pipeline/placement.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { VDTLine } from '../vdt';
|
|
2
|
+
/** Word-space ratio (justified over natural) past which a line holding a
|
|
3
|
+
* URL is set ragged instead of justified. Matches the sandbox's loose-line
|
|
4
|
+
* threshold, so such a line is fixed rather than flagged. */
|
|
5
|
+
export declare const URL_LINE_MAX_SPACE_RATIO = 3;
|
|
6
|
+
/**
|
|
7
|
+
* A long link breaks only at its own joints, so the lines it lands on hold
|
|
8
|
+
* few word spaces — and justifying them stretches those few spaces to
|
|
9
|
+
* several times their width. Rather than flag the paragraph, set those
|
|
10
|
+
* lines ragged (like a paragraph's last line): the URL runs on, the text
|
|
11
|
+
* around it keeps its natural spacing. Only paragraphs containing a URL
|
|
12
|
+
* are touched; the measured lines are left as they are otherwise.
|
|
13
|
+
*/
|
|
14
|
+
export declare function raggedUrlLines(lines: VDTLine[], textAlign: string | undefined, text: string): VDTLine[];
|
|
15
|
+
//# sourceMappingURL=raggedUrl.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"raggedUrl.d.ts","sourceRoot":"","sources":["../../src/pipeline/raggedUrl.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAEtC;;8DAE8D;AAC9D,eAAO,MAAM,wBAAwB,IAAI,CAAC;AAI1C;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,EAAE,CAWvG"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/** Word-space ratio (justified over natural) past which a line holding a
|
|
2
|
+
* URL is set ragged instead of justified. Matches the sandbox's loose-line
|
|
3
|
+
* threshold, so such a line is fixed rather than flagged. */
|
|
4
|
+
export const URL_LINE_MAX_SPACE_RATIO = 3;
|
|
5
|
+
const URL_RE = /(?:https?|ftp):\/\/|www\.|\b10\.\d{4,}\//i;
|
|
6
|
+
/**
|
|
7
|
+
* A long link breaks only at its own joints, so the lines it lands on hold
|
|
8
|
+
* few word spaces — and justifying them stretches those few spaces to
|
|
9
|
+
* several times their width. Rather than flag the paragraph, set those
|
|
10
|
+
* lines ragged (like a paragraph's last line): the URL runs on, the text
|
|
11
|
+
* around it keeps its natural spacing. Only paragraphs containing a URL
|
|
12
|
+
* are touched; the measured lines are left as they are otherwise.
|
|
13
|
+
*/
|
|
14
|
+
export function raggedUrlLines(lines, textAlign, text) {
|
|
15
|
+
if (textAlign !== 'justify' || !URL_RE.test(text))
|
|
16
|
+
return lines;
|
|
17
|
+
let changed = false;
|
|
18
|
+
const out = lines.map((line) => {
|
|
19
|
+
if (line.isLastLine || line.justifiedSpaceRatio === undefined || line.justifiedSpaceRatio <= URL_LINE_MAX_SPACE_RATIO)
|
|
20
|
+
return line;
|
|
21
|
+
changed = true;
|
|
22
|
+
const { justifiedSpaceRatio: _loose, ...rest } = line;
|
|
23
|
+
void _loose;
|
|
24
|
+
return { ...rest, ragged: true };
|
|
25
|
+
});
|
|
26
|
+
return changed ? out : lines;
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=raggedUrl.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"raggedUrl.js","sourceRoot":"","sources":["../../src/pipeline/raggedUrl.ts"],"names":[],"mappings":"AAEA;;8DAE8D;AAC9D,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC;AAE1C,MAAM,MAAM,GAAG,2CAA2C,CAAC;AAE3D;;;;;;;GAOG;AACH,MAAM,UAAU,cAAc,CAAC,KAAgB,EAAE,SAA6B,EAAE,IAAY;IAC1F,IAAI,SAAS,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IAChE,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QAC7B,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,mBAAmB,KAAK,SAAS,IAAI,IAAI,CAAC,mBAAmB,IAAI,wBAAwB;YAAE,OAAO,IAAI,CAAC;QACnI,OAAO,GAAG,IAAI,CAAC;QACf,MAAM,EAAE,mBAAmB,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC;QACtD,KAAK,MAAM,CAAC;QACZ,OAAO,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IACnC,CAAC,CAAC,CAAC;IACH,OAAO,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC;AAC/B,CAAC"}
|
|
@@ -13,25 +13,11 @@
|
|
|
13
13
|
* heading numbers in effect at the point of first reference.
|
|
14
14
|
*/
|
|
15
15
|
import type { ContentBlock } from '../parse';
|
|
16
|
-
import type { Resource, ResourceType } from '../types';
|
|
16
|
+
import type { HeadingCounters, Resource, ResourceNumberEntry, ResourceType } from '../types';
|
|
17
17
|
/** Heading counters (1-indexed by level) in effect at a given point in the
|
|
18
18
|
* document. `h1`..`h6` carry the running heading number for each level. */
|
|
19
|
-
export
|
|
20
|
-
|
|
21
|
-
h2: number;
|
|
22
|
-
h3: number;
|
|
23
|
-
h4: number;
|
|
24
|
-
h5: number;
|
|
25
|
-
h6: number;
|
|
26
|
-
}
|
|
27
|
-
export interface ResourceNumberEntry {
|
|
28
|
-
/** The rendered number string (e.g. `"1.7"`). */
|
|
29
|
-
number: string;
|
|
30
|
-
/** The `ResourceType.id` this number was computed for. */
|
|
31
|
-
typeId: string;
|
|
32
|
-
/** The heading counters in effect at the point of first reference. */
|
|
33
|
-
heading: HeadingContext;
|
|
34
|
-
}
|
|
19
|
+
export type HeadingContext = HeadingCounters;
|
|
20
|
+
export type { ResourceNumberEntry };
|
|
35
21
|
/** Maps each referenced `Resource.id` to its computed numbering entry. */
|
|
36
22
|
export type ResourceNumberingMap = Record<string, ResourceNumberEntry>;
|
|
37
23
|
/** Walk `blocks` and produce, for each block index, the heading counters in
|
|
@@ -39,7 +25,7 @@ export type ResourceNumberingMap = Record<string, ResourceNumberEntry>;
|
|
|
39
25
|
* `result[i]` (i.e. the heading counts itself). Mirrors the counter logic in
|
|
40
26
|
* `computeHeadingNumbers` but exposes the raw per-level values rather than the
|
|
41
27
|
* rendered prefix. */
|
|
42
|
-
export declare function computeHeadingContext(blocks: ContentBlock[]): HeadingContext[];
|
|
28
|
+
export declare function computeHeadingContext(blocks: ContentBlock[], start?: HeadingContext): HeadingContext[];
|
|
43
29
|
/**
|
|
44
30
|
* Compute the numbering map for every resource referenced in `blocks`.
|
|
45
31
|
*
|
|
@@ -50,5 +36,27 @@ export declare function computeHeadingContext(blocks: ContentBlock[]): HeadingCo
|
|
|
50
36
|
* {@link computeHeadingContext}); must align with
|
|
51
37
|
* `blocks` by index
|
|
52
38
|
*/
|
|
53
|
-
|
|
39
|
+
/** Per-type counter state at the end of a document: the `{n}` counter and
|
|
40
|
+
* the heading counters of the last numbered resource (what `resetOn`
|
|
41
|
+
* compares against). */
|
|
42
|
+
export type ResourceCounterState = Record<string, {
|
|
43
|
+
counter: number;
|
|
44
|
+
heading: HeadingContext;
|
|
45
|
+
}>;
|
|
46
|
+
/** What precedes the document: resources already numbered (they keep the
|
|
47
|
+
* number of their first mention) and the per-type counters to continue. */
|
|
48
|
+
export interface ResourceNumberingStart {
|
|
49
|
+
counters?: ResourceCounterState;
|
|
50
|
+
numbered?: ResourceNumberingMap;
|
|
51
|
+
}
|
|
52
|
+
export interface ResourceNumberingResult {
|
|
53
|
+
/** Every referenced resource — including the inherited ones. */
|
|
54
|
+
map: ResourceNumberingMap;
|
|
55
|
+
/** Counter state at the end of the document, to continue from. */
|
|
56
|
+
counters: ResourceCounterState;
|
|
57
|
+
}
|
|
58
|
+
export declare function computeResourceNumbering(blocks: ContentBlock[], resourceTypes: ResourceType[], resources: Resource[], headingContext: HeadingContext[], start?: ResourceNumberingStart): ResourceNumberingMap;
|
|
59
|
+
/** {@link computeResourceNumbering} plus the counter state at the end of the
|
|
60
|
+
* document. */
|
|
61
|
+
export declare function computeResourceNumberingState(blocks: ContentBlock[], resourceTypes: ResourceType[], resources: Resource[], headingContext: HeadingContext[], start?: ResourceNumberingStart): ResourceNumberingResult;
|
|
54
62
|
//# sourceMappingURL=resourceNumbering.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resourceNumbering.d.ts","sourceRoot":"","sources":["../../src/pipeline/resourceNumbering.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAyB,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"resourceNumbering.d.ts","sourceRoot":"","sources":["../../src/pipeline/resourceNumbering.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,KAAK,EAAE,eAAe,EAAE,QAAQ,EAAE,mBAAmB,EAAE,YAAY,EAAyB,MAAM,UAAU,CAAC;AAQpH;4EAC4E;AAC5E,MAAM,MAAM,cAAc,GAAG,eAAe,CAAC;AAE7C,YAAY,EAAE,mBAAmB,EAAE,CAAC;AAEpC,0EAA0E;AAC1E,MAAM,MAAM,oBAAoB,GAAG,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;AAsBvE;;;;uBAIuB;AACvB,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,YAAY,EAAE,EAAE,KAAK,CAAC,EAAE,cAAc,GAAG,cAAc,EAAE,CAqBtG;AAoGD;;;;;;;;;GASG;AACH;;yBAEyB;AACzB,MAAM,MAAM,oBAAoB,GAAG,MAAM,CAAC,MAAM,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,cAAc,CAAA;CAAE,CAAC,CAAC;AAEhG;4EAC4E;AAC5E,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,EAAE,oBAAoB,CAAC;IAChC,QAAQ,CAAC,EAAE,oBAAoB,CAAC;CACjC;AAED,MAAM,WAAW,uBAAuB;IACtC,gEAAgE;IAChE,GAAG,EAAE,oBAAoB,CAAC;IAC1B,kEAAkE;IAClE,QAAQ,EAAE,oBAAoB,CAAC;CAChC;AAED,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,YAAY,EAAE,EACtB,aAAa,EAAE,YAAY,EAAE,EAC7B,SAAS,EAAE,QAAQ,EAAE,EACrB,cAAc,EAAE,cAAc,EAAE,EAChC,KAAK,CAAC,EAAE,sBAAsB,GAC7B,oBAAoB,CAEtB;AAED;gBACgB;AAChB,wBAAgB,6BAA6B,CAC3C,MAAM,EAAE,YAAY,EAAE,EACtB,aAAa,EAAE,YAAY,EAAE,EAC7B,SAAS,EAAE,QAAQ,EAAE,EACrB,cAAc,EAAE,cAAc,EAAE,EAChC,KAAK,CAAC,EAAE,sBAAsB,GAC7B,uBAAuB,CA4EzB"}
|
|
@@ -36,8 +36,11 @@ function counterFormatToStyle(format) {
|
|
|
36
36
|
* `result[i]` (i.e. the heading counts itself). Mirrors the counter logic in
|
|
37
37
|
* `computeHeadingNumbers` but exposes the raw per-level values rather than the
|
|
38
38
|
* rendered prefix. */
|
|
39
|
-
export function computeHeadingContext(blocks) {
|
|
39
|
+
export function computeHeadingContext(blocks, start) {
|
|
40
40
|
const counters = [0, 0, 0, 0, 0, 0, 0]; // index 1..6 used
|
|
41
|
+
if (start)
|
|
42
|
+
for (let lvl = 1; lvl <= 6; lvl++)
|
|
43
|
+
counters[lvl] = start[`h${lvl}`];
|
|
41
44
|
const out = new Array(blocks.length);
|
|
42
45
|
for (let i = 0; i < blocks.length; i++) {
|
|
43
46
|
const b = blocks[i];
|
|
@@ -138,17 +141,12 @@ function shouldResetCounter(prev, cur, resetLevel) {
|
|
|
138
141
|
}
|
|
139
142
|
return false;
|
|
140
143
|
}
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
*
|
|
146
|
-
|
|
147
|
-
* @param headingContext per-block heading counters (see
|
|
148
|
-
* {@link computeHeadingContext}); must align with
|
|
149
|
-
* `blocks` by index
|
|
150
|
-
*/
|
|
151
|
-
export function computeResourceNumbering(blocks, resourceTypes, resources, headingContext) {
|
|
144
|
+
export function computeResourceNumbering(blocks, resourceTypes, resources, headingContext, start) {
|
|
145
|
+
return computeResourceNumberingState(blocks, resourceTypes, resources, headingContext, start).map;
|
|
146
|
+
}
|
|
147
|
+
/** {@link computeResourceNumbering} plus the counter state at the end of the
|
|
148
|
+
* document. */
|
|
149
|
+
export function computeResourceNumberingState(blocks, resourceTypes, resources, headingContext, start) {
|
|
152
150
|
const typeById = new Map();
|
|
153
151
|
for (const t of resourceTypes)
|
|
154
152
|
typeById.set(t.id, t);
|
|
@@ -156,7 +154,7 @@ export function computeResourceNumbering(blocks, resourceTypes, resources, headi
|
|
|
156
154
|
for (const r of resources)
|
|
157
155
|
resourceById.set(r.id, r);
|
|
158
156
|
const firstOccurrences = [];
|
|
159
|
-
const seen = new Set();
|
|
157
|
+
const seen = new Set(start?.numbered ? Object.keys(start.numbered) : []);
|
|
160
158
|
const record = (resourceId, blockIdx) => {
|
|
161
159
|
if (seen.has(resourceId))
|
|
162
160
|
return;
|
|
@@ -192,14 +190,16 @@ export function computeResourceNumbering(blocks, resourceTypes, resources, headi
|
|
|
192
190
|
else
|
|
193
191
|
byType.set(type.id, [occ]);
|
|
194
192
|
}
|
|
195
|
-
const map = {};
|
|
193
|
+
const map = { ...(start?.numbered ?? {}) };
|
|
194
|
+
const counters = { ...(start?.counters ?? {}) };
|
|
196
195
|
for (const [typeId, occurrences] of byType) {
|
|
197
196
|
const type = typeById.get(typeId);
|
|
198
197
|
const tokens = parseResourceTemplate(type.numberingTemplate);
|
|
199
198
|
const style = counterFormatToStyle(type.counterFormat);
|
|
200
199
|
const resetLevel = type.resetOn === 'never' ? null : Number(type.resetOn.slice(1));
|
|
201
|
-
|
|
202
|
-
let
|
|
200
|
+
const inherited = start?.counters?.[typeId];
|
|
201
|
+
let counter = inherited?.counter ?? 0;
|
|
202
|
+
let prevHeading = inherited?.heading ?? null;
|
|
203
203
|
for (const occ of occurrences) {
|
|
204
204
|
if (resetLevel !== null && shouldResetCounter(prevHeading, occ.heading, resetLevel)) {
|
|
205
205
|
counter = 0;
|
|
@@ -212,7 +212,9 @@ export function computeResourceNumbering(blocks, resourceTypes, resources, headi
|
|
|
212
212
|
heading: occ.heading,
|
|
213
213
|
};
|
|
214
214
|
}
|
|
215
|
+
if (prevHeading)
|
|
216
|
+
counters[typeId] = { counter, heading: prevHeading };
|
|
215
217
|
}
|
|
216
|
-
return map;
|
|
218
|
+
return { map, counters };
|
|
217
219
|
}
|
|
218
220
|
//# sourceMappingURL=resourceNumbering.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resourceNumbering.js","sourceRoot":"","sources":["../../src/pipeline/resourceNumbering.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAIH,OAAO,EACL,aAAa,EACb,qBAAqB,GAGtB,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"resourceNumbering.js","sourceRoot":"","sources":["../../src/pipeline/resourceNumbering.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { NumeralStyle } from './numbering';
|
|
1
2
|
/** @deprecated Legacy content-model resource used by the VDT renderer
|
|
2
3
|
* (`VDTBlock.resource`). The Resources-panel feature uses the newer
|
|
3
4
|
* `Resource` / `ResourceType` model below. Retained until the renderer
|
|
@@ -182,6 +183,72 @@ export interface PostextContent {
|
|
|
182
183
|
* inline. */
|
|
183
184
|
resources?: Resource[];
|
|
184
185
|
notes?: PostextNote[];
|
|
186
|
+
/** Counters carried over from content laid out before this document — a
|
|
187
|
+
* book chapter laid out on its own continues the numbering of the
|
|
188
|
+
* chapters before it. Omit for a self-contained document. */
|
|
189
|
+
continuation?: LayoutContinuation;
|
|
190
|
+
}
|
|
191
|
+
/** Heading counters (1-indexed by level) in effect at a point in a document. */
|
|
192
|
+
export interface HeadingCounters {
|
|
193
|
+
h1: number;
|
|
194
|
+
h2: number;
|
|
195
|
+
h3: number;
|
|
196
|
+
h4: number;
|
|
197
|
+
h5: number;
|
|
198
|
+
h6: number;
|
|
199
|
+
}
|
|
200
|
+
/** A numbered resource: its rendered number, type and the heading counters
|
|
201
|
+
* at its first reference. */
|
|
202
|
+
export interface ResourceNumberEntry {
|
|
203
|
+
number: string;
|
|
204
|
+
typeId: string;
|
|
205
|
+
heading: HeadingCounters;
|
|
206
|
+
}
|
|
207
|
+
/** What a document laid out after other content inherits from it. Every
|
|
208
|
+
* field is optional; a missing one means "nothing precedes". Obtain it
|
|
209
|
+
* with `continuationAfter()` (counters) and the previous layout's page
|
|
210
|
+
* count (pages). */
|
|
211
|
+
export interface LayoutContinuation {
|
|
212
|
+
/** Physical pages before this document's first page. Shifts page parity
|
|
213
|
+
* (recto/verso, mirrored margins, odd/even header elements) and marks the
|
|
214
|
+
* document as continued, so a leading heading's `breakBefore` pads
|
|
215
|
+
* parity as it would mid-book. */
|
|
216
|
+
pageIndexOffset?: number;
|
|
217
|
+
/** Page numbering in effect on the first page, overriding
|
|
218
|
+
* `page.pageNumbering` (the value the previous page would be followed
|
|
219
|
+
* by, in its format). */
|
|
220
|
+
pageNumbering?: {
|
|
221
|
+
format?: NumeralStyle;
|
|
222
|
+
startAt?: number;
|
|
223
|
+
};
|
|
224
|
+
/** Heading counters at the end of the preceding content: the next `#`
|
|
225
|
+
* becomes chapter `h1 + 1`. */
|
|
226
|
+
headings?: HeadingCounters;
|
|
227
|
+
/** Per resource-type counter state at the end of the preceding content
|
|
228
|
+
* (the `{n}` counter and the heading counters of the last numbered
|
|
229
|
+
* resource, which decide `resetOn`). */
|
|
230
|
+
resourceCounters?: Record<string, {
|
|
231
|
+
counter: number;
|
|
232
|
+
heading: HeadingCounters;
|
|
233
|
+
}>;
|
|
234
|
+
/** Resources already numbered by the preceding content, so a later
|
|
235
|
+
* reference keeps the number of its first mention. */
|
|
236
|
+
resourceNumbers?: Record<string, ResourceNumberEntry>;
|
|
237
|
+
/** The `:::part` in effect at the end of the preceding content — the last
|
|
238
|
+
* part opened, whether or not its fence has closed — so a chapter laid
|
|
239
|
+
* out on its own keeps `{partTitle}` / `{partNumber}` and the part's
|
|
240
|
+
* palette overrides on every page until it opens a part of its own. */
|
|
241
|
+
part?: PartState;
|
|
242
|
+
}
|
|
243
|
+
/** A part (section) as the running heads see it: number and title as
|
|
244
|
+
* written on the fence, plus the colour-palette entries the fence
|
|
245
|
+
* overrides (`palette="band=#f6c297"`), applied to every design slot laid
|
|
246
|
+
* out on the part's pages. */
|
|
247
|
+
export interface PartState {
|
|
248
|
+
number: string;
|
|
249
|
+
title: string;
|
|
250
|
+
/** Palette id → hex colour. */
|
|
251
|
+
palette?: Record<string, string>;
|
|
185
252
|
}
|
|
186
253
|
export type PlacementStrategy = 'topOfColumn' | 'inline' | 'floatLeft' | 'floatRight' | 'fullWidthBreak' | 'margin';
|
|
187
254
|
export interface ColumnConfig {
|
|
@@ -727,7 +794,9 @@ export interface CalloutStripeConfig {
|
|
|
727
794
|
}
|
|
728
795
|
/** Icon drawn beside the title/body: a text glyph or a resource image. When
|
|
729
796
|
* the style has a side stripe the icon is centred over the stripe;
|
|
730
|
-
* otherwise it reserves its own column (`size` + `titleStyle.gap`).
|
|
797
|
+
* otherwise it reserves its own column (`size` + `titleStyle.gap`). A
|
|
798
|
+
* resource image is fitted inside the square box keeping its aspect ratio.
|
|
799
|
+
* An icon taller than the content grows the box to fit it. */
|
|
731
800
|
export interface CalloutIconConfig {
|
|
732
801
|
kind?: CalloutIconKind;
|
|
733
802
|
/** Glyph text for `kind: 'glyph'` (e.g. `'!'`, `'✎'`). */
|
|
@@ -742,6 +811,30 @@ export interface CalloutIconConfig {
|
|
|
742
811
|
color?: ColorValue;
|
|
743
812
|
align?: CalloutIconAlign;
|
|
744
813
|
}
|
|
814
|
+
/** Vertical rule drawn between a callout marker and its box. */
|
|
815
|
+
export interface CalloutMarkerRuleConfig {
|
|
816
|
+
enabled?: boolean;
|
|
817
|
+
/** Default main colour. */
|
|
818
|
+
color?: ColorValue;
|
|
819
|
+
/** Default `0.5pt`. */
|
|
820
|
+
width?: Dimension;
|
|
821
|
+
/** Minimum rule length; the rule always spans at least the box height and
|
|
822
|
+
* is centred on it (`align: 'center'`) or hangs from its top. Default `0`
|
|
823
|
+
* (box height). */
|
|
824
|
+
length?: Dimension;
|
|
825
|
+
}
|
|
826
|
+
/** Marker drawn *outside* the box, in a column on its left: an icon (glyph
|
|
827
|
+
* or resource, same fields as {@link CalloutIconConfig}) with an optional
|
|
828
|
+
* vertical rule between it and the box. The frame grows by the marker
|
|
829
|
+
* column (`size` + rule width + `gap`); the box keeps its own background,
|
|
830
|
+
* padding and icon. `align` positions the marker, the rule and the box
|
|
831
|
+
* against each other when their heights differ. */
|
|
832
|
+
export interface CalloutMarkerConfig extends CalloutIconConfig {
|
|
833
|
+
/** Space between the marker column (after the rule) and the box. Default
|
|
834
|
+
* `0.5em`. */
|
|
835
|
+
gap?: Dimension;
|
|
836
|
+
rule?: CalloutMarkerRuleConfig;
|
|
837
|
+
}
|
|
745
838
|
export interface CalloutTitleStyleConfig {
|
|
746
839
|
/** Defaults to the headings font family. */
|
|
747
840
|
fontFamily?: string;
|
|
@@ -812,6 +905,8 @@ export interface CalloutStyleConfig {
|
|
|
812
905
|
stripe?: CalloutStripeConfig;
|
|
813
906
|
/** Default `kind: 'none'`. */
|
|
814
907
|
icon?: CalloutIconConfig;
|
|
908
|
+
/** Default `kind: 'none'` (no marker column). */
|
|
909
|
+
marker?: CalloutMarkerConfig;
|
|
815
910
|
titleStyle?: CalloutTitleStyleConfig;
|
|
816
911
|
body?: CalloutBodyStyleConfig;
|
|
817
912
|
lists?: CalloutListStyleConfig;
|
|
@@ -820,7 +915,13 @@ export interface CalloutStyleConfig {
|
|
|
820
915
|
/** Minimum space below the box; the flow snaps back to the baseline grid
|
|
821
916
|
* after it. Default `0.75em`. */
|
|
822
917
|
marginBottom?: Dimension;
|
|
823
|
-
/**
|
|
918
|
+
/** When `true` (default) the box never splits: a callout that does not
|
|
919
|
+
* fit the remaining space moves whole to the next column or page. When
|
|
920
|
+
* `false` it may break between child blocks — never inside a paragraph
|
|
921
|
+
* or list item — the part that fits closes the current column (or, for
|
|
922
|
+
* a `span: 'page'` box, the page) and the rest continues on the next one
|
|
923
|
+
* in a box of its own without the title or icon (stripe, border and
|
|
924
|
+
* background stay). */
|
|
824
925
|
keepTogether?: boolean;
|
|
825
926
|
}
|
|
826
927
|
export interface ResolvedCalloutStyleConfig {
|
|
@@ -868,6 +969,23 @@ export interface ResolvedCalloutStyleConfig {
|
|
|
868
969
|
color: ColorValue;
|
|
869
970
|
align: CalloutIconAlign;
|
|
870
971
|
};
|
|
972
|
+
marker: {
|
|
973
|
+
kind: CalloutIconKind;
|
|
974
|
+
glyph: string;
|
|
975
|
+
resourceId: string;
|
|
976
|
+
fontFamily: string;
|
|
977
|
+
fontWeight: number;
|
|
978
|
+
size: Dimension;
|
|
979
|
+
color: ColorValue;
|
|
980
|
+
align: CalloutIconAlign;
|
|
981
|
+
gap: Dimension;
|
|
982
|
+
rule: {
|
|
983
|
+
enabled: boolean;
|
|
984
|
+
color: ColorValue;
|
|
985
|
+
width: Dimension;
|
|
986
|
+
length: Dimension;
|
|
987
|
+
};
|
|
988
|
+
};
|
|
871
989
|
titleStyle: {
|
|
872
990
|
fontFamily: string;
|
|
873
991
|
fontSize: Dimension;
|
|
@@ -1034,6 +1152,13 @@ export interface ColumnBalancingConfig {
|
|
|
1034
1152
|
* level (via a band cap) so the last columns end at the same height, the
|
|
1035
1153
|
* way a compositor sets a short closing page. Default true. */
|
|
1036
1154
|
trailing?: boolean;
|
|
1155
|
+
/** Balance the band a page-span block leaves behind: when a `span: 'page'`
|
|
1156
|
+
* callout does not fit under the current columns and has to move to the
|
|
1157
|
+
* next page (or split, see `CalloutStyleConfig.keepTogether`), the
|
|
1158
|
+
* columns it interrupts are cut level instead of leaving the last one
|
|
1159
|
+
* short — the flow ends at the same height in every column and the box
|
|
1160
|
+
* (or the part of it that fits) sits under them. Default true. */
|
|
1161
|
+
beforeSpan?: boolean;
|
|
1037
1162
|
}
|
|
1038
1163
|
export interface ResolvedHeadingsConfig {
|
|
1039
1164
|
fontFamily: string;
|
|
@@ -1054,6 +1179,7 @@ export interface ResolvedHeadingsConfig {
|
|
|
1054
1179
|
trackParagraphs: boolean;
|
|
1055
1180
|
maxTracking: number;
|
|
1056
1181
|
trailing: boolean;
|
|
1182
|
+
beforeSpan: boolean;
|
|
1057
1183
|
};
|
|
1058
1184
|
levels: ResolvedHeadingLevelConfig[];
|
|
1059
1185
|
}
|