postext 0.1.2 → 0.1.4
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__/exports.test.js +34 -2
- package/dist/__tests__/exports.test.js.map +1 -1
- package/dist/canvas-backend.d.ts +5 -0
- package/dist/canvas-backend.d.ts.map +1 -0
- package/dist/canvas-backend.js +156 -0
- package/dist/canvas-backend.js.map +1 -0
- package/dist/createLayout.d.ts +2 -2
- package/dist/createLayout.d.ts.map +1 -1
- package/dist/createLayout.js +25 -2
- package/dist/createLayout.js.map +1 -1
- package/dist/defaults.d.ts +23 -0
- package/dist/defaults.d.ts.map +1 -0
- package/dist/defaults.js +387 -0
- package/dist/defaults.js.map +1 -0
- package/dist/hyphenate.d.ts +11 -0
- package/dist/hyphenate.d.ts.map +1 -0
- package/dist/hyphenate.js +140 -0
- package/dist/hyphenate.js.map +1 -0
- package/dist/index.d.ts +11 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -1
- package/dist/measure.d.ts +40 -0
- package/dist/measure.d.ts.map +1 -0
- package/dist/measure.js +267 -0
- package/dist/measure.js.map +1 -0
- package/dist/parse.d.ts +17 -0
- package/dist/parse.d.ts.map +1 -0
- package/dist/parse.js +152 -0
- package/dist/parse.js.map +1 -0
- package/dist/pipeline.d.ts +4 -0
- package/dist/pipeline.d.ts.map +1 -0
- package/dist/pipeline.js +324 -0
- package/dist/pipeline.js.map +1 -0
- package/dist/types.d.ts +131 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/units.d.ts +9 -0
- package/dist/units.d.ts.map +1 -0
- package/dist/units.js +27 -0
- package/dist/units.js.map +1 -0
- package/dist/vdt.d.ts +83 -0
- package/dist/vdt.d.ts.map +1 -0
- package/dist/vdt.js +50 -0
- package/dist/vdt.js.map +1 -0
- package/package.json +4 -1
package/dist/pipeline.js
ADDED
|
@@ -0,0 +1,324 @@
|
|
|
1
|
+
import { resolvePageConfig, resolveLayoutConfig, resolveBodyTextConfig, resolveHeadingsConfig, } from './defaults';
|
|
2
|
+
import { dimensionToPx } from './units';
|
|
3
|
+
import { createBoundingBox, createVDTDocument, createVDTPage, createVDTColumn, createVDTBlock, } from './vdt';
|
|
4
|
+
import { parseMarkdown } from './parse';
|
|
5
|
+
import { buildFontString, measureBlock, measureRichBlock, initHyphenator } from './measure';
|
|
6
|
+
// ---------------------------------------------------------------------------
|
|
7
|
+
// Config resolution helpers
|
|
8
|
+
// ---------------------------------------------------------------------------
|
|
9
|
+
function resolveAllConfig(config) {
|
|
10
|
+
return {
|
|
11
|
+
page: resolvePageConfig(config?.page),
|
|
12
|
+
layout: resolveLayoutConfig(config?.layout),
|
|
13
|
+
bodyText: resolveBodyTextConfig(config?.bodyText),
|
|
14
|
+
headings: resolveHeadingsConfig(config?.headings),
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
// ---------------------------------------------------------------------------
|
|
18
|
+
// Baseline grid computation
|
|
19
|
+
// ---------------------------------------------------------------------------
|
|
20
|
+
function computeBaselineGrid(resolved) {
|
|
21
|
+
const dpi = resolved.page.dpi;
|
|
22
|
+
const bodyFontSizePx = dimensionToPx(resolved.bodyText.fontSize, dpi);
|
|
23
|
+
const lineHeightDim = resolved.bodyText.lineHeight;
|
|
24
|
+
// em/rem: multiplier of font size; pt/px/cm/etc: absolute
|
|
25
|
+
if (lineHeightDim.unit === 'em' || lineHeightDim.unit === 'rem') {
|
|
26
|
+
return bodyFontSizePx * lineHeightDim.value;
|
|
27
|
+
}
|
|
28
|
+
return dimensionToPx(lineHeightDim, dpi, bodyFontSizePx);
|
|
29
|
+
}
|
|
30
|
+
// ---------------------------------------------------------------------------
|
|
31
|
+
// Column layout computation
|
|
32
|
+
// ---------------------------------------------------------------------------
|
|
33
|
+
function computeColumnBboxes(contentArea, resolved) {
|
|
34
|
+
const { layoutType, gutterWidth, sideColumnPercent } = resolved.layout;
|
|
35
|
+
const dpi = resolved.page.dpi;
|
|
36
|
+
if (layoutType === 'single') {
|
|
37
|
+
return [createBoundingBox(contentArea.x, contentArea.y, contentArea.width, contentArea.height)];
|
|
38
|
+
}
|
|
39
|
+
const gutterPx = dimensionToPx(gutterWidth, dpi);
|
|
40
|
+
if (layoutType === 'double') {
|
|
41
|
+
const colWidth = (contentArea.width - gutterPx) / 2;
|
|
42
|
+
return [
|
|
43
|
+
createBoundingBox(contentArea.x, contentArea.y, colWidth, contentArea.height),
|
|
44
|
+
createBoundingBox(contentArea.x + colWidth + gutterPx, contentArea.y, colWidth, contentArea.height),
|
|
45
|
+
];
|
|
46
|
+
}
|
|
47
|
+
// oneAndHalf
|
|
48
|
+
const sideWidth = contentArea.width * (sideColumnPercent / 100);
|
|
49
|
+
const mainWidth = contentArea.width - sideWidth - gutterPx;
|
|
50
|
+
return [
|
|
51
|
+
createBoundingBox(contentArea.x, contentArea.y, mainWidth, contentArea.height),
|
|
52
|
+
createBoundingBox(contentArea.x + mainWidth + gutterPx, contentArea.y, sideWidth, contentArea.height),
|
|
53
|
+
];
|
|
54
|
+
}
|
|
55
|
+
function resolveBodyStyle(resolved) {
|
|
56
|
+
const dpi = resolved.page.dpi;
|
|
57
|
+
const fontSizePx = dimensionToPx(resolved.bodyText.fontSize, dpi);
|
|
58
|
+
const lineHeightPx = computeBaselineGrid(resolved);
|
|
59
|
+
const weight = resolved.bodyText.fontWeight.toString();
|
|
60
|
+
const fontString = buildFontString(resolved.bodyText.fontFamily, fontSizePx, weight);
|
|
61
|
+
const boldWeight = resolved.bodyText.boldFontWeight.toString();
|
|
62
|
+
const boldFontString = buildFontString(resolved.bodyText.fontFamily, fontSizePx, boldWeight);
|
|
63
|
+
const textAlign = resolved.bodyText.textAlign;
|
|
64
|
+
const hyphenate = resolved.bodyText.hyphenation.enabled && textAlign === 'justify';
|
|
65
|
+
return { fontString, boldFontString, fontSizePx, lineHeightPx, color: resolved.bodyText.color.hex, textAlign, hyphenate, marginTopPx: 0, marginBottomPx: 0 };
|
|
66
|
+
}
|
|
67
|
+
function resolveHeadingStyle(level, resolved) {
|
|
68
|
+
const dpi = resolved.page.dpi;
|
|
69
|
+
const headingConfig = resolved.headings.levels.find((l) => l.level === level) ?? resolved.headings.levels[0];
|
|
70
|
+
const fontSizePx = dimensionToPx(headingConfig.fontSize, dpi);
|
|
71
|
+
const lineHeightDim = headingConfig.lineHeight;
|
|
72
|
+
let lineHeightPx;
|
|
73
|
+
if (lineHeightDim.unit === 'em' || lineHeightDim.unit === 'rem') {
|
|
74
|
+
lineHeightPx = fontSizePx * lineHeightDim.value;
|
|
75
|
+
}
|
|
76
|
+
else {
|
|
77
|
+
lineHeightPx = dimensionToPx(lineHeightDim, dpi, fontSizePx);
|
|
78
|
+
}
|
|
79
|
+
const weight = headingConfig.fontWeight.toString();
|
|
80
|
+
const fontString = buildFontString(headingConfig.fontFamily, fontSizePx, weight);
|
|
81
|
+
const textAlign = resolved.headings.textAlign;
|
|
82
|
+
const marginTopPx = dimensionToPx(headingConfig.marginTop, dpi, fontSizePx);
|
|
83
|
+
const marginBottomPx = dimensionToPx(headingConfig.marginBottom, dpi, fontSizePx);
|
|
84
|
+
return { fontString, fontSizePx, lineHeightPx, color: headingConfig.color.hex, textAlign, hyphenate: false, marginTopPx, marginBottomPx };
|
|
85
|
+
}
|
|
86
|
+
function resolveBlockquoteStyle(resolved) {
|
|
87
|
+
const dpi = resolved.page.dpi;
|
|
88
|
+
const fontSizePx = dimensionToPx(resolved.bodyText.fontSize, dpi);
|
|
89
|
+
const lineHeightPx = computeBaselineGrid(resolved);
|
|
90
|
+
const weight = resolved.bodyText.fontWeight.toString();
|
|
91
|
+
const fontString = buildFontString(resolved.bodyText.fontFamily, fontSizePx, weight, 'italic');
|
|
92
|
+
const boldWeight = resolved.bodyText.boldFontWeight.toString();
|
|
93
|
+
const boldFontString = buildFontString(resolved.bodyText.fontFamily, fontSizePx, boldWeight, 'italic');
|
|
94
|
+
const textAlign = resolved.bodyText.textAlign;
|
|
95
|
+
const hyphenate = resolved.bodyText.hyphenation.enabled && textAlign === 'justify';
|
|
96
|
+
return { fontString, boldFontString, fontSizePx, lineHeightPx, color: '#666666', textAlign, hyphenate, marginTopPx: 0, marginBottomPx: 0 };
|
|
97
|
+
}
|
|
98
|
+
// ---------------------------------------------------------------------------
|
|
99
|
+
// Line position reset (for split blocks)
|
|
100
|
+
// ---------------------------------------------------------------------------
|
|
101
|
+
function resetLinePositions(lines, lineHeightPx) {
|
|
102
|
+
return lines.map((line, i) => ({
|
|
103
|
+
...line,
|
|
104
|
+
bbox: createBoundingBox(0, i * lineHeightPx, line.bbox.width, lineHeightPx),
|
|
105
|
+
baseline: i * lineHeightPx + lineHeightPx * 0.8,
|
|
106
|
+
}));
|
|
107
|
+
}
|
|
108
|
+
// ---------------------------------------------------------------------------
|
|
109
|
+
// Page creation with columns
|
|
110
|
+
// ---------------------------------------------------------------------------
|
|
111
|
+
function createPageWithColumns(pageIndex, resolved, contentArea, pageWidthPx, pageHeightPx) {
|
|
112
|
+
const page = createVDTPage(pageIndex, pageWidthPx, pageHeightPx);
|
|
113
|
+
const colBboxes = computeColumnBboxes(contentArea, resolved);
|
|
114
|
+
for (let i = 0; i < colBboxes.length; i++) {
|
|
115
|
+
page.columns.push(createVDTColumn(i, colBboxes[i]));
|
|
116
|
+
}
|
|
117
|
+
return page;
|
|
118
|
+
}
|
|
119
|
+
function currentColumn(doc, cursor) {
|
|
120
|
+
return doc.pages[cursor.pageIndex].columns[cursor.columnIndex];
|
|
121
|
+
}
|
|
122
|
+
function advanceToNextColumn(doc, cursor, resolved, contentArea, pageWidthPx, pageHeightPx) {
|
|
123
|
+
const page = doc.pages[cursor.pageIndex];
|
|
124
|
+
if (cursor.columnIndex < page.columns.length - 1) {
|
|
125
|
+
cursor.columnIndex++;
|
|
126
|
+
}
|
|
127
|
+
else {
|
|
128
|
+
// New page
|
|
129
|
+
const newPage = createPageWithColumns(doc.pages.length, resolved, contentArea, pageWidthPx, pageHeightPx);
|
|
130
|
+
doc.pages.push(newPage);
|
|
131
|
+
cursor.pageIndex = newPage.index;
|
|
132
|
+
cursor.columnIndex = 0;
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
function placeBlockInColumn(block, blockHeight, col, cursor) {
|
|
136
|
+
const y = col.bbox.y + (col.bbox.height - col.availableHeight);
|
|
137
|
+
block.bbox = createBoundingBox(col.bbox.x, y, col.bbox.width, blockHeight);
|
|
138
|
+
block.pageIndex = cursor.pageIndex;
|
|
139
|
+
block.columnIndex = cursor.columnIndex;
|
|
140
|
+
// Offset all line bboxes to absolute page coordinates
|
|
141
|
+
for (const line of block.lines) {
|
|
142
|
+
line.bbox.x += col.bbox.x;
|
|
143
|
+
line.bbox.y += y;
|
|
144
|
+
line.baseline += y;
|
|
145
|
+
}
|
|
146
|
+
col.blocks.push(block);
|
|
147
|
+
col.availableHeight -= blockHeight;
|
|
148
|
+
}
|
|
149
|
+
// ---------------------------------------------------------------------------
|
|
150
|
+
// Public API
|
|
151
|
+
// ---------------------------------------------------------------------------
|
|
152
|
+
export function buildDocument(content, config) {
|
|
153
|
+
const resolved = resolveAllConfig(config);
|
|
154
|
+
const dpi = resolved.page.dpi;
|
|
155
|
+
// Initialize hyphenator if needed
|
|
156
|
+
if (resolved.bodyText.hyphenation.enabled && resolved.bodyText.textAlign === 'justify') {
|
|
157
|
+
initHyphenator(resolved.bodyText.hyphenation.locale);
|
|
158
|
+
}
|
|
159
|
+
// Compute baseline grid
|
|
160
|
+
const baselineGrid = computeBaselineGrid(resolved);
|
|
161
|
+
// Create document
|
|
162
|
+
const doc = createVDTDocument(resolved, baselineGrid);
|
|
163
|
+
// Page dimensions in px
|
|
164
|
+
const pageWidthPx = dimensionToPx(resolved.page.width, dpi);
|
|
165
|
+
const pageHeightPx = dimensionToPx(resolved.page.height, dpi);
|
|
166
|
+
// Margins in px
|
|
167
|
+
const marginTop = dimensionToPx(resolved.page.margins.top, dpi);
|
|
168
|
+
const marginBottom = dimensionToPx(resolved.page.margins.bottom, dpi);
|
|
169
|
+
const marginLeft = dimensionToPx(resolved.page.margins.left, dpi);
|
|
170
|
+
const marginRight = dimensionToPx(resolved.page.margins.right, dpi);
|
|
171
|
+
// Content area
|
|
172
|
+
const contentArea = createBoundingBox(marginLeft, marginTop, pageWidthPx - marginLeft - marginRight, pageHeightPx - marginTop - marginBottom);
|
|
173
|
+
// Create first page
|
|
174
|
+
const firstPage = createPageWithColumns(0, resolved, contentArea, pageWidthPx, pageHeightPx);
|
|
175
|
+
doc.pages.push(firstPage);
|
|
176
|
+
// Parse markdown
|
|
177
|
+
const contentBlocks = parseMarkdown(content.markdown);
|
|
178
|
+
// Resolve styles
|
|
179
|
+
const bodyStyle = resolveBodyStyle(resolved);
|
|
180
|
+
const blockquoteStyle = resolveBlockquoteStyle(resolved);
|
|
181
|
+
// Placement cursor
|
|
182
|
+
const cursor = { pageIndex: 0, columnIndex: 0 };
|
|
183
|
+
let blockIdCounter = 0;
|
|
184
|
+
let pendingSpacing = 0;
|
|
185
|
+
for (let blockIdx = 0; blockIdx < contentBlocks.length; blockIdx++) {
|
|
186
|
+
const contentBlock = contentBlocks[blockIdx];
|
|
187
|
+
const id = `block-${blockIdCounter++}`;
|
|
188
|
+
let style;
|
|
189
|
+
let vdtType;
|
|
190
|
+
let headingLevel;
|
|
191
|
+
switch (contentBlock.type) {
|
|
192
|
+
case 'heading':
|
|
193
|
+
style = resolveHeadingStyle(contentBlock.level ?? 1, resolved);
|
|
194
|
+
vdtType = 'heading';
|
|
195
|
+
headingLevel = contentBlock.level;
|
|
196
|
+
break;
|
|
197
|
+
case 'blockquote':
|
|
198
|
+
style = blockquoteStyle;
|
|
199
|
+
vdtType = 'blockquote';
|
|
200
|
+
break;
|
|
201
|
+
default:
|
|
202
|
+
style = bodyStyle;
|
|
203
|
+
vdtType = 'paragraph';
|
|
204
|
+
break;
|
|
205
|
+
}
|
|
206
|
+
// Measure text — use rich measurement for blocks with bold spans
|
|
207
|
+
const col = currentColumn(doc, cursor);
|
|
208
|
+
const hasRichSpans = contentBlock.spans.some((s) => s.bold);
|
|
209
|
+
const measured = hasRichSpans && style.boldFontString
|
|
210
|
+
? measureRichBlock(contentBlock.spans, style.fontString, style.boldFontString, col.bbox.width, style.lineHeightPx, { textAlign: style.textAlign, hyphenate: style.hyphenate })
|
|
211
|
+
: measureBlock(contentBlock.text, style.fontString, col.bbox.width, style.lineHeightPx, { textAlign: style.textAlign, hyphenate: style.hyphenate });
|
|
212
|
+
if (measured.lines.length === 0)
|
|
213
|
+
continue;
|
|
214
|
+
// For headings, only snap to baseline grid if the next block is NOT a heading.
|
|
215
|
+
// Consecutive headings flow without grid snapping; the last heading in the
|
|
216
|
+
// group snaps so that the following body text realigns with the grid.
|
|
217
|
+
const nextBlock = blockIdx + 1 < contentBlocks.length ? contentBlocks[blockIdx + 1] : null;
|
|
218
|
+
const nextIsHeading = nextBlock?.type === 'heading';
|
|
219
|
+
const shouldSnapToGrid = vdtType === 'heading' && !nextIsHeading;
|
|
220
|
+
// Place block, splitting across columns/pages if needed
|
|
221
|
+
const canSplit = vdtType === 'paragraph' || vdtType === 'blockquote';
|
|
222
|
+
let remainingLines = [...measured.lines];
|
|
223
|
+
let partIndex = 0;
|
|
224
|
+
while (remainingLines.length > 0) {
|
|
225
|
+
const curCol = currentColumn(doc, cursor);
|
|
226
|
+
const isFirstInColumn = curCol.blocks.length === 0;
|
|
227
|
+
// Compute spacing before this block — margin collapsing between
|
|
228
|
+
// consecutive headings: only the larger of marginBottom / marginTop applies
|
|
229
|
+
let spacingBefore = 0;
|
|
230
|
+
if (!isFirstInColumn) {
|
|
231
|
+
spacingBefore = pendingSpacing;
|
|
232
|
+
if (vdtType === 'heading') {
|
|
233
|
+
spacingBefore = Math.max(spacingBefore, style.marginTopPx);
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
const effectiveAvailable = curCol.availableHeight - spacingBefore;
|
|
237
|
+
const linesPerAvailable = Math.floor(effectiveAvailable / style.lineHeightPx);
|
|
238
|
+
const totalRemainHeight = remainingLines.length * style.lineHeightPx;
|
|
239
|
+
// Block fits in current column
|
|
240
|
+
if (totalRemainHeight <= effectiveAvailable) {
|
|
241
|
+
// Consume spacing
|
|
242
|
+
if (spacingBefore > 0) {
|
|
243
|
+
curCol.availableHeight -= spacingBefore;
|
|
244
|
+
}
|
|
245
|
+
const partId = partIndex === 0 ? id : `${id}-cont-${partIndex}`;
|
|
246
|
+
const blk = createVDTBlock(partId, vdtType, style.fontString, style.color, style.textAlign);
|
|
247
|
+
if (style.boldFontString)
|
|
248
|
+
blk.boldFontString = style.boldFontString;
|
|
249
|
+
if (partIndex === 0)
|
|
250
|
+
blk.headingLevel = headingLevel;
|
|
251
|
+
blk.lines = resetLinePositions(remainingLines, style.lineHeightPx);
|
|
252
|
+
blk.dirty = false;
|
|
253
|
+
blk.snappedToGrid = shouldSnapToGrid && partIndex === 0;
|
|
254
|
+
let h = totalRemainHeight;
|
|
255
|
+
if (shouldSnapToGrid && partIndex === 0) {
|
|
256
|
+
// Snap using the absolute position in the column so that the block
|
|
257
|
+
// bottom lands on a baseline grid line. This accounts for off-grid
|
|
258
|
+
// starts (e.g. after consecutive unsnapped headings) and bakes in
|
|
259
|
+
// the minimum marginBottom — the grid always wins, but the margin
|
|
260
|
+
// below is guaranteed to be at least marginBottomPx.
|
|
261
|
+
const usedHeight = curCol.bbox.height - curCol.availableHeight;
|
|
262
|
+
const naturalBottom = usedHeight + totalRemainHeight + style.marginBottomPx;
|
|
263
|
+
const snappedBottom = Math.ceil(naturalBottom / baselineGrid) * baselineGrid;
|
|
264
|
+
h = snappedBottom - usedHeight;
|
|
265
|
+
}
|
|
266
|
+
placeBlockInColumn(blk, h, curCol, cursor);
|
|
267
|
+
doc.blocks.push(blk);
|
|
268
|
+
// For snapped headings the margin is baked into the snap;
|
|
269
|
+
// for unsnapped headings (consecutive) track it for collapsing
|
|
270
|
+
pendingSpacing = (shouldSnapToGrid && partIndex === 0) ? 0 : style.marginBottomPx;
|
|
271
|
+
break;
|
|
272
|
+
}
|
|
273
|
+
// Block doesn't fit — try to split
|
|
274
|
+
if (canSplit && linesPerAvailable >= 2) {
|
|
275
|
+
// Consume spacing
|
|
276
|
+
if (spacingBefore > 0) {
|
|
277
|
+
curCol.availableHeight -= spacingBefore;
|
|
278
|
+
}
|
|
279
|
+
const partId = partIndex === 0 ? id : `${id}-cont-${partIndex}`;
|
|
280
|
+
const splitLines = remainingLines.slice(0, linesPerAvailable);
|
|
281
|
+
const blk = createVDTBlock(partId, vdtType, style.fontString, style.color, style.textAlign);
|
|
282
|
+
if (style.boldFontString)
|
|
283
|
+
blk.boldFontString = style.boldFontString;
|
|
284
|
+
if (partIndex === 0)
|
|
285
|
+
blk.headingLevel = headingLevel;
|
|
286
|
+
blk.lines = resetLinePositions(splitLines, style.lineHeightPx);
|
|
287
|
+
blk.dirty = false;
|
|
288
|
+
blk.snappedToGrid = false;
|
|
289
|
+
const splitHeight = linesPerAvailable * style.lineHeightPx;
|
|
290
|
+
placeBlockInColumn(blk, splitHeight, curCol, cursor);
|
|
291
|
+
doc.blocks.push(blk);
|
|
292
|
+
remainingLines = remainingLines.slice(linesPerAvailable);
|
|
293
|
+
partIndex++;
|
|
294
|
+
pendingSpacing = 0;
|
|
295
|
+
advanceToNextColumn(doc, cursor, resolved, contentArea, pageWidthPx, pageHeightPx);
|
|
296
|
+
continue;
|
|
297
|
+
}
|
|
298
|
+
// Cannot split — advance to next column if current has content
|
|
299
|
+
if (curCol.blocks.length > 0) {
|
|
300
|
+
pendingSpacing = 0;
|
|
301
|
+
advanceToNextColumn(doc, cursor, resolved, contentArea, pageWidthPx, pageHeightPx);
|
|
302
|
+
continue;
|
|
303
|
+
}
|
|
304
|
+
// Empty column but block still doesn't fit (block taller than page) — place anyway
|
|
305
|
+
const partId = partIndex === 0 ? id : `${id}-cont-${partIndex}`;
|
|
306
|
+
const blk = createVDTBlock(partId, vdtType, style.fontString, style.color, style.textAlign);
|
|
307
|
+
if (style.boldFontString)
|
|
308
|
+
blk.boldFontString = style.boldFontString;
|
|
309
|
+
if (partIndex === 0)
|
|
310
|
+
blk.headingLevel = headingLevel;
|
|
311
|
+
blk.lines = resetLinePositions(remainingLines, style.lineHeightPx);
|
|
312
|
+
blk.dirty = false;
|
|
313
|
+
blk.snappedToGrid = false;
|
|
314
|
+
placeBlockInColumn(blk, totalRemainHeight, curCol, cursor);
|
|
315
|
+
doc.blocks.push(blk);
|
|
316
|
+
pendingSpacing = style.marginBottomPx;
|
|
317
|
+
break;
|
|
318
|
+
}
|
|
319
|
+
}
|
|
320
|
+
doc.converged = true;
|
|
321
|
+
doc.iterationCount = 1;
|
|
322
|
+
return doc;
|
|
323
|
+
}
|
|
324
|
+
//# sourceMappingURL=pipeline.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../src/pipeline.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -62,6 +62,133 @@ export interface ReferenceConfig {
|
|
|
62
62
|
tableNumbering?: boolean;
|
|
63
63
|
marginNotes?: boolean;
|
|
64
64
|
}
|
|
65
|
+
export type ColorModel = 'hex' | 'rgb' | 'cmyk' | 'hsl';
|
|
66
|
+
export interface ColorValue {
|
|
67
|
+
hex: string;
|
|
68
|
+
model: ColorModel;
|
|
69
|
+
}
|
|
70
|
+
export type DimensionUnit = 'cm' | 'mm' | 'in' | 'pt' | 'px' | 'em' | 'rem';
|
|
71
|
+
export interface Dimension {
|
|
72
|
+
value: number;
|
|
73
|
+
unit: DimensionUnit;
|
|
74
|
+
}
|
|
75
|
+
export type PageSizePreset = '11x17' | '12x19' | '17x24' | '21x28' | 'custom';
|
|
76
|
+
export interface PageMargins {
|
|
77
|
+
top?: Dimension;
|
|
78
|
+
bottom?: Dimension;
|
|
79
|
+
left?: Dimension;
|
|
80
|
+
right?: Dimension;
|
|
81
|
+
}
|
|
82
|
+
export interface BaselineGridConfig {
|
|
83
|
+
enabled: boolean;
|
|
84
|
+
color?: ColorValue;
|
|
85
|
+
lineWidth?: Dimension;
|
|
86
|
+
}
|
|
87
|
+
export interface PageConfig {
|
|
88
|
+
backgroundColor?: ColorValue;
|
|
89
|
+
sizePreset?: PageSizePreset;
|
|
90
|
+
width?: Dimension;
|
|
91
|
+
height?: Dimension;
|
|
92
|
+
margins?: PageMargins;
|
|
93
|
+
dpi?: number;
|
|
94
|
+
cutLines?: boolean;
|
|
95
|
+
baselineGrid?: BaselineGridConfig;
|
|
96
|
+
}
|
|
97
|
+
export interface ResolvedPageConfig {
|
|
98
|
+
backgroundColor: ColorValue;
|
|
99
|
+
sizePreset: PageSizePreset;
|
|
100
|
+
width: Dimension;
|
|
101
|
+
height: Dimension;
|
|
102
|
+
margins: Required<PageMargins>;
|
|
103
|
+
dpi: number;
|
|
104
|
+
cutLines: boolean;
|
|
105
|
+
baselineGrid: {
|
|
106
|
+
enabled: boolean;
|
|
107
|
+
color: ColorValue;
|
|
108
|
+
lineWidth: Dimension;
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
export type LayoutType = 'single' | 'double' | 'oneAndHalf';
|
|
112
|
+
export interface LayoutConfig {
|
|
113
|
+
layoutType?: LayoutType;
|
|
114
|
+
gutterWidth?: Dimension;
|
|
115
|
+
sideColumnPercent?: number;
|
|
116
|
+
}
|
|
117
|
+
export interface ResolvedLayoutConfig {
|
|
118
|
+
layoutType: LayoutType;
|
|
119
|
+
gutterWidth: Dimension;
|
|
120
|
+
sideColumnPercent: number;
|
|
121
|
+
}
|
|
122
|
+
export type TextAlign = 'left' | 'justify';
|
|
123
|
+
export type HyphenationLocale = 'en-us' | 'es' | 'fr' | 'de' | 'it' | 'pt' | 'ca' | 'nl';
|
|
124
|
+
export interface HyphenationConfig {
|
|
125
|
+
enabled?: boolean;
|
|
126
|
+
locale?: HyphenationLocale;
|
|
127
|
+
}
|
|
128
|
+
export interface ResolvedHyphenationConfig {
|
|
129
|
+
enabled: boolean;
|
|
130
|
+
locale: HyphenationLocale;
|
|
131
|
+
}
|
|
132
|
+
export interface BodyTextConfig {
|
|
133
|
+
fontFamily?: string;
|
|
134
|
+
fontSize?: Dimension;
|
|
135
|
+
lineHeight?: Dimension;
|
|
136
|
+
color?: ColorValue;
|
|
137
|
+
textAlign?: TextAlign;
|
|
138
|
+
fontWeight?: number;
|
|
139
|
+
boldFontWeight?: number;
|
|
140
|
+
hyphenation?: HyphenationConfig;
|
|
141
|
+
}
|
|
142
|
+
export interface ResolvedBodyTextConfig {
|
|
143
|
+
fontFamily: string;
|
|
144
|
+
fontSize: Dimension;
|
|
145
|
+
lineHeight: Dimension;
|
|
146
|
+
color: ColorValue;
|
|
147
|
+
textAlign: TextAlign;
|
|
148
|
+
fontWeight: number;
|
|
149
|
+
boldFontWeight: number;
|
|
150
|
+
hyphenation: ResolvedHyphenationConfig;
|
|
151
|
+
}
|
|
152
|
+
export interface HeadingLevelConfig {
|
|
153
|
+
level: number;
|
|
154
|
+
fontSize?: Dimension;
|
|
155
|
+
lineHeight?: Dimension;
|
|
156
|
+
fontFamily?: string;
|
|
157
|
+
color?: ColorValue;
|
|
158
|
+
fontWeight?: number;
|
|
159
|
+
marginTop?: Dimension;
|
|
160
|
+
marginBottom?: Dimension;
|
|
161
|
+
}
|
|
162
|
+
export interface ResolvedHeadingLevelConfig {
|
|
163
|
+
level: number;
|
|
164
|
+
fontSize: Dimension;
|
|
165
|
+
lineHeight: Dimension;
|
|
166
|
+
fontFamily: string;
|
|
167
|
+
color: ColorValue;
|
|
168
|
+
fontWeight: number;
|
|
169
|
+
marginTop: Dimension;
|
|
170
|
+
marginBottom: Dimension;
|
|
171
|
+
}
|
|
172
|
+
export interface HeadingsConfig {
|
|
173
|
+
fontFamily?: string;
|
|
174
|
+
lineHeight?: Dimension;
|
|
175
|
+
color?: ColorValue;
|
|
176
|
+
textAlign?: TextAlign;
|
|
177
|
+
fontWeight?: number;
|
|
178
|
+
marginTop?: Dimension;
|
|
179
|
+
marginBottom?: Dimension;
|
|
180
|
+
levels?: HeadingLevelConfig[];
|
|
181
|
+
}
|
|
182
|
+
export interface ResolvedHeadingsConfig {
|
|
183
|
+
fontFamily: string;
|
|
184
|
+
lineHeight: Dimension;
|
|
185
|
+
color: ColorValue;
|
|
186
|
+
textAlign: TextAlign;
|
|
187
|
+
fontWeight: number;
|
|
188
|
+
marginTop: Dimension;
|
|
189
|
+
marginBottom: Dimension;
|
|
190
|
+
levels: ResolvedHeadingLevelConfig[];
|
|
191
|
+
}
|
|
65
192
|
export interface PostextSectionOverride {
|
|
66
193
|
selector: string;
|
|
67
194
|
columns?: ColumnConfig;
|
|
@@ -69,6 +196,10 @@ export interface PostextSectionOverride {
|
|
|
69
196
|
resourcePlacement?: ResourcePlacementConfig;
|
|
70
197
|
}
|
|
71
198
|
export interface PostextConfig {
|
|
199
|
+
page?: PageConfig;
|
|
200
|
+
layout?: LayoutConfig;
|
|
201
|
+
bodyText?: BodyTextConfig;
|
|
202
|
+
headings?: HeadingsConfig;
|
|
72
203
|
columns?: number;
|
|
73
204
|
gutter?: string;
|
|
74
205
|
columnConfig?: ColumnConfig;
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/units.d.ts
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { Dimension } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* Convert a Dimension to pixels at a given DPI.
|
|
4
|
+
*
|
|
5
|
+
* For relative units (em, rem) the caller must supply baseFontSizePx —
|
|
6
|
+
* the resolved font-size of the element the dimension is relative to.
|
|
7
|
+
*/
|
|
8
|
+
export declare function dimensionToPx(dim: Dimension, dpi: number, baseFontSizePx?: number): number;
|
|
9
|
+
//# sourceMappingURL=units.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"units.d.ts","sourceRoot":"","sources":["../src/units.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEzC;;;;;GAKG;AACH,wBAAgB,aAAa,CAC3B,GAAG,EAAE,SAAS,EACd,GAAG,EAAE,MAAM,EACX,cAAc,CAAC,EAAE,MAAM,GACtB,MAAM,CAqBR"}
|
package/dist/units.js
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Convert a Dimension to pixels at a given DPI.
|
|
3
|
+
*
|
|
4
|
+
* For relative units (em, rem) the caller must supply baseFontSizePx —
|
|
5
|
+
* the resolved font-size of the element the dimension is relative to.
|
|
6
|
+
*/
|
|
7
|
+
export function dimensionToPx(dim, dpi, baseFontSizePx) {
|
|
8
|
+
switch (dim.unit) {
|
|
9
|
+
case 'cm':
|
|
10
|
+
return (dim.value / 2.54) * dpi;
|
|
11
|
+
case 'mm':
|
|
12
|
+
return (dim.value / 25.4) * dpi;
|
|
13
|
+
case 'in':
|
|
14
|
+
return dim.value * dpi;
|
|
15
|
+
case 'pt':
|
|
16
|
+
return (dim.value / 72) * dpi;
|
|
17
|
+
case 'px':
|
|
18
|
+
return dim.value;
|
|
19
|
+
case 'em':
|
|
20
|
+
case 'rem':
|
|
21
|
+
if (baseFontSizePx === undefined) {
|
|
22
|
+
throw new Error(`dimensionToPx: baseFontSizePx is required for unit "${dim.unit}"`);
|
|
23
|
+
}
|
|
24
|
+
return dim.value * baseFontSizePx;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=units.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"units.js","sourceRoot":"","sources":["../src/units.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAC3B,GAAc,EACd,GAAW,EACX,cAAuB;IAEvB,QAAQ,GAAG,CAAC,IAAI,EAAE,CAAC;QACjB,KAAK,IAAI;YACP,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC;QAClC,KAAK,IAAI;YACP,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC;QAClC,KAAK,IAAI;YACP,OAAO,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC;QACzB,KAAK,IAAI;YACP,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC;QAChC,KAAK,IAAI;YACP,OAAO,GAAG,CAAC,KAAK,CAAC;QACnB,KAAK,IAAI,CAAC;QACV,KAAK,KAAK;YACR,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;gBACjC,MAAM,IAAI,KAAK,CACb,uDAAuD,GAAG,CAAC,IAAI,GAAG,CACnE,CAAC;YACJ,CAAC;YACD,OAAO,GAAG,CAAC,KAAK,GAAG,cAAc,CAAC;IACtC,CAAC;AACH,CAAC"}
|
package/dist/vdt.d.ts
ADDED
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import type { PostextResource, ResolvedPageConfig, ResolvedLayoutConfig, ResolvedBodyTextConfig, ResolvedHeadingsConfig } from './types';
|
|
2
|
+
export interface BoundingBox {
|
|
3
|
+
x: number;
|
|
4
|
+
y: number;
|
|
5
|
+
width: number;
|
|
6
|
+
height: number;
|
|
7
|
+
}
|
|
8
|
+
export interface ResolvedConfig {
|
|
9
|
+
page: ResolvedPageConfig;
|
|
10
|
+
layout: ResolvedLayoutConfig;
|
|
11
|
+
bodyText: ResolvedBodyTextConfig;
|
|
12
|
+
headings: ResolvedHeadingsConfig;
|
|
13
|
+
}
|
|
14
|
+
export type VDTBlockType = 'paragraph' | 'heading' | 'resource' | 'blockquote' | 'listItem' | 'footnoteRef';
|
|
15
|
+
export type TextAlign = 'left' | 'justify';
|
|
16
|
+
export interface VDTLineSegment {
|
|
17
|
+
kind: 'text' | 'space';
|
|
18
|
+
text: string;
|
|
19
|
+
width: number;
|
|
20
|
+
bold?: boolean;
|
|
21
|
+
}
|
|
22
|
+
export interface VDTLine {
|
|
23
|
+
text: string;
|
|
24
|
+
bbox: BoundingBox;
|
|
25
|
+
baseline: number;
|
|
26
|
+
hyphenated: boolean;
|
|
27
|
+
/** Per-segment data for justified rendering */
|
|
28
|
+
segments?: VDTLineSegment[];
|
|
29
|
+
/** Whether this is the last line of the paragraph (ragged even when justified) */
|
|
30
|
+
isLastLine?: boolean;
|
|
31
|
+
}
|
|
32
|
+
export interface VDTBlock {
|
|
33
|
+
id: string;
|
|
34
|
+
type: VDTBlockType;
|
|
35
|
+
bbox: BoundingBox;
|
|
36
|
+
lines: VDTLine[];
|
|
37
|
+
resource?: PostextResource;
|
|
38
|
+
pageIndex: number;
|
|
39
|
+
columnIndex: number;
|
|
40
|
+
dirty: boolean;
|
|
41
|
+
snappedToGrid: boolean;
|
|
42
|
+
headingLevel?: number;
|
|
43
|
+
fontString: string;
|
|
44
|
+
boldFontString?: string;
|
|
45
|
+
color: string;
|
|
46
|
+
textAlign: TextAlign;
|
|
47
|
+
}
|
|
48
|
+
export interface VDTColumn {
|
|
49
|
+
index: number;
|
|
50
|
+
bbox: BoundingBox;
|
|
51
|
+
blocks: VDTBlock[];
|
|
52
|
+
availableHeight: number;
|
|
53
|
+
baselineOffset: number;
|
|
54
|
+
}
|
|
55
|
+
export interface VDTFootnoteArea {
|
|
56
|
+
bbox: BoundingBox;
|
|
57
|
+
notes: VDTBlock[];
|
|
58
|
+
separator: boolean;
|
|
59
|
+
}
|
|
60
|
+
export interface VDTPage {
|
|
61
|
+
index: number;
|
|
62
|
+
width: number;
|
|
63
|
+
height: number;
|
|
64
|
+
columns: VDTColumn[];
|
|
65
|
+
header?: VDTBlock;
|
|
66
|
+
footer?: VDTBlock;
|
|
67
|
+
marginNotes: VDTBlock[];
|
|
68
|
+
footnoteArea?: VDTFootnoteArea;
|
|
69
|
+
}
|
|
70
|
+
export interface VDTDocument {
|
|
71
|
+
pages: VDTPage[];
|
|
72
|
+
blocks: VDTBlock[];
|
|
73
|
+
config: ResolvedConfig;
|
|
74
|
+
baselineGrid: number;
|
|
75
|
+
converged: boolean;
|
|
76
|
+
iterationCount: number;
|
|
77
|
+
}
|
|
78
|
+
export declare function createBoundingBox(x: number, y: number, width: number, height: number): BoundingBox;
|
|
79
|
+
export declare function createVDTDocument(config: ResolvedConfig, baselineGrid: number): VDTDocument;
|
|
80
|
+
export declare function createVDTPage(index: number, width: number, height: number): VDTPage;
|
|
81
|
+
export declare function createVDTColumn(index: number, bbox: BoundingBox): VDTColumn;
|
|
82
|
+
export declare function createVDTBlock(id: string, type: VDTBlockType, fontString: string, color: string, textAlign?: TextAlign): VDTBlock;
|
|
83
|
+
//# sourceMappingURL=vdt.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vdt.d.ts","sourceRoot":"","sources":["../src/vdt.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,kBAAkB,EAClB,oBAAoB,EACpB,sBAAsB,EACtB,sBAAsB,EACvB,MAAM,SAAS,CAAC;AAMjB,MAAM,WAAW,WAAW;IAC1B,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAMD,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,kBAAkB,CAAC;IACzB,MAAM,EAAE,oBAAoB,CAAC;IAC7B,QAAQ,EAAE,sBAAsB,CAAC;IACjC,QAAQ,EAAE,sBAAsB,CAAC;CAClC;AAMD,MAAM,MAAM,YAAY,GACpB,WAAW,GACX,SAAS,GACT,UAAU,GACV,YAAY,GACZ,UAAU,GACV,aAAa,CAAC;AAElB,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,SAAS,CAAC;AAE3C,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,WAAW,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,OAAO,CAAC;IACpB,+CAA+C;IAC/C,QAAQ,CAAC,EAAE,cAAc,EAAE,CAAC;IAC5B,kFAAkF;IAClF,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,YAAY,CAAC;IACnB,IAAI,EAAE,WAAW,CAAC;IAClB,KAAK,EAAE,OAAO,EAAE,CAAC;IACjB,QAAQ,CAAC,EAAE,eAAe,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,OAAO,CAAC;IACf,aAAa,EAAE,OAAO,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,SAAS,CAAC;CACtB;AAED,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,WAAW,CAAC;IAClB,MAAM,EAAE,QAAQ,EAAE,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,WAAW,CAAC;IAClB,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,OAAO;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,SAAS,EAAE,CAAC;IACrB,MAAM,CAAC,EAAE,QAAQ,CAAC;IAClB,MAAM,CAAC,EAAE,QAAQ,CAAC;IAClB,WAAW,EAAE,QAAQ,EAAE,CAAC;IACxB,YAAY,CAAC,EAAE,eAAe,CAAC;CAChC;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,OAAO,EAAE,CAAC;IACjB,MAAM,EAAE,QAAQ,EAAE,CAAC;IACnB,MAAM,EAAE,cAAc,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,OAAO,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;CACxB;AAMD,wBAAgB,iBAAiB,CAC/B,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,GACb,WAAW,CAEb;AAED,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,cAAc,EACtB,YAAY,EAAE,MAAM,GACnB,WAAW,CASb;AAED,wBAAgB,aAAa,CAC3B,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,GACb,OAAO,CAQT;AAED,wBAAgB,eAAe,CAC7B,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,WAAW,GAChB,SAAS,CAQX;AAED,wBAAgB,cAAc,CAC5B,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,YAAY,EAClB,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM,EACb,SAAS,GAAE,SAAkB,GAC5B,QAAQ,CAcV"}
|