postext 0.1.3 → 0.1.5
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/README.md +8 -2
- package/dist/__tests__/exports.test.js +26 -0
- 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 +183 -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 +26 -3
- package/dist/defaults.d.ts.map +1 -1
- package/dist/defaults.js +309 -8
- package/dist/defaults.js.map +1 -1
- 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 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -1
- 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 +122 -7
- 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 +5 -1
package/README.md
CHANGED
|
@@ -4,7 +4,9 @@
|
|
|
4
4
|
|
|
5
5
|
postext is a layout engine that takes semantic content — enriched markdown with referenced resources — and applies professional editorial layout rules to produce publication-grade output. Built on top of [`@chenglou/pretext`](https://github.com/chenglou/pretext) for DOM-free, pixel-perfect text measurement.
|
|
6
6
|
|
|
7
|
-
> **
|
|
7
|
+
> **Active development** — postext is under very active development and undergoing frequent changes. The team is working intensively on it. We will announce when a first stable version is available. In the meantime, the project is published so everyone can follow its evolution, but we do not recommend using it in production yet as configuration changes are frequent.
|
|
8
|
+
|
|
9
|
+
**Website:** [postext.dev](https://postext.dev/)
|
|
8
10
|
|
|
9
11
|
## Install
|
|
10
12
|
|
|
@@ -127,6 +129,10 @@ Top-level layout configuration.
|
|
|
127
129
|
|
|
128
130
|
| Field | Type | Description |
|
|
129
131
|
|---|---|---|
|
|
132
|
+
| `page?` | `PageConfig` | Page dimensions and margins |
|
|
133
|
+
| `layout?` | `LayoutConfig` | General layout settings |
|
|
134
|
+
| `bodyText?` | `BodyTextConfig` | Body text font, size, and line height |
|
|
135
|
+
| `headings?` | `HeadingsConfig` | Heading styles configuration |
|
|
130
136
|
| `columns?` | `number` | Number of columns |
|
|
131
137
|
| `gutter?` | `string` | Space between columns (e.g., `'24px'`) |
|
|
132
138
|
| `columnConfig?` | `ColumnConfig` | Detailed column settings |
|
|
@@ -196,7 +202,7 @@ type PlacementStrategy =
|
|
|
196
202
|
|
|
197
203
|
## Full Documentation
|
|
198
204
|
|
|
199
|
-
|
|
205
|
+
Visit [postext.dev](https://postext.dev/) for the full documentation, project vision, architecture, and roadmap. For contributing guidelines, see the [GitHub repository](https://github.com/AUsername/postext).
|
|
200
206
|
|
|
201
207
|
## License
|
|
202
208
|
|
|
@@ -9,10 +9,36 @@ describe("package exports", () => {
|
|
|
9
9
|
const exportedKeys = Object.keys(postext);
|
|
10
10
|
expect(exportedKeys).toEqual([
|
|
11
11
|
"createLayout",
|
|
12
|
+
"buildDocument",
|
|
13
|
+
"renderToCanvas",
|
|
14
|
+
"renderPage",
|
|
15
|
+
"renderPageToCanvas",
|
|
16
|
+
"dimensionToPx",
|
|
17
|
+
"buildFontString",
|
|
18
|
+
"measureBlock",
|
|
19
|
+
"measureRichBlock",
|
|
20
|
+
"initHyphenator",
|
|
21
|
+
"clearMeasurementCache",
|
|
22
|
+
"hyphenateText",
|
|
23
|
+
"setHyphenationLocale",
|
|
24
|
+
"parseMarkdown",
|
|
12
25
|
"DEFAULT_PAGE_CONFIG",
|
|
13
26
|
"PAGE_SIZE_PRESETS",
|
|
14
27
|
"resolvePageConfig",
|
|
28
|
+
"DEFAULT_LAYOUT_CONFIG",
|
|
29
|
+
"DEFAULT_COLUMN_RULE",
|
|
30
|
+
"resolveLayoutConfig",
|
|
31
|
+
"stripLayoutDefaults",
|
|
32
|
+
"DEFAULT_BODY_TEXT_CONFIG",
|
|
33
|
+
"DEFAULT_HYPHENATION_CONFIG",
|
|
34
|
+
"resolveBodyTextConfig",
|
|
35
|
+
"stripBodyTextDefaults",
|
|
36
|
+
"hyphenationEqual",
|
|
37
|
+
"DEFAULT_HEADINGS_CONFIG",
|
|
38
|
+
"resolveHeadingsConfig",
|
|
39
|
+
"stripHeadingsDefaults",
|
|
15
40
|
"dimensionsEqual",
|
|
41
|
+
"colorsEqual",
|
|
16
42
|
"stripPageDefaults",
|
|
17
43
|
"stripConfigDefaults",
|
|
18
44
|
]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"exports.test.js","sourceRoot":"","sources":["../../src/__tests__/exports.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,KAAK,OAAO,MAAM,UAAU,CAAC;AAEpC,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAC/B,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;QACvC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,WAAW,EAAE,CAAC;QAC3C,MAAM,CAAC,OAAO,OAAO,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;QAC3C,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC1C,MAAM,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC;YAC3B,cAAc;YACd,qBAAqB;YACrB,mBAAmB;YACnB,mBAAmB;YACnB,iBAAiB;YACjB,mBAAmB;YACnB,qBAAqB;SACtB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"exports.test.js","sourceRoot":"","sources":["../../src/__tests__/exports.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,KAAK,OAAO,MAAM,UAAU,CAAC;AAEpC,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAC/B,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;QACvC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,WAAW,EAAE,CAAC;QAC3C,MAAM,CAAC,OAAO,OAAO,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;QAC3C,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC1C,MAAM,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC;YAC3B,cAAc;YACd,eAAe;YACf,gBAAgB;YAChB,YAAY;YACZ,oBAAoB;YACpB,eAAe;YACf,iBAAiB;YACjB,cAAc;YACd,kBAAkB;YAClB,gBAAgB;YAChB,uBAAuB;YACvB,eAAe;YACf,sBAAsB;YACtB,eAAe;YACf,qBAAqB;YACrB,mBAAmB;YACnB,mBAAmB;YACnB,uBAAuB;YACvB,qBAAqB;YACrB,qBAAqB;YACrB,qBAAqB;YACrB,0BAA0B;YAC1B,4BAA4B;YAC5B,uBAAuB;YACvB,uBAAuB;YACvB,kBAAkB;YAClB,yBAAyB;YACzB,uBAAuB;YACvB,uBAAuB;YACvB,iBAAiB;YACjB,aAAa;YACb,mBAAmB;YACnB,qBAAqB;SACtB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { VDTDocument, VDTPage } from './vdt';
|
|
2
|
+
export declare function renderPageToCanvas(page: VDTPage, doc: VDTDocument, canvas: HTMLCanvasElement): void;
|
|
3
|
+
export declare function renderPage(page: VDTPage, doc: VDTDocument): HTMLCanvasElement;
|
|
4
|
+
export declare function renderToCanvas(doc: VDTDocument): HTMLCanvasElement[];
|
|
5
|
+
//# sourceMappingURL=canvas-backend.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"canvas-backend.d.ts","sourceRoot":"","sources":["../src/canvas-backend.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,OAAO,EAA6C,MAAM,OAAO,CAAC;AAwK7F,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,OAAO,EACb,GAAG,EAAE,WAAW,EAChB,MAAM,EAAE,iBAAiB,GACxB,IAAI,CA2DN;AAED,wBAAgB,UAAU,CACxB,IAAI,EAAE,OAAO,EACb,GAAG,EAAE,WAAW,GACf,iBAAiB,CAInB;AAMD,wBAAgB,cAAc,CAAC,GAAG,EAAE,WAAW,GAAG,iBAAiB,EAAE,CAEpE"}
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
import { dimensionToPx } from './units';
|
|
2
|
+
// ---------------------------------------------------------------------------
|
|
3
|
+
// Baseline grid overlay
|
|
4
|
+
// ---------------------------------------------------------------------------
|
|
5
|
+
function renderBaselineGrid(ctx, contentArea, baselineIncrement, color, lineWidth) {
|
|
6
|
+
ctx.save();
|
|
7
|
+
ctx.strokeStyle = color;
|
|
8
|
+
ctx.lineWidth = lineWidth;
|
|
9
|
+
// Draw one baseline per line that actually fits in the content area.
|
|
10
|
+
// Must match the placement logic: Math.floor(height / lineHeight) lines.
|
|
11
|
+
const maxLines = Math.floor(contentArea.height / baselineIncrement);
|
|
12
|
+
let y = contentArea.y + baselineIncrement * 0.8;
|
|
13
|
+
const right = contentArea.x + contentArea.width;
|
|
14
|
+
for (let i = 0; i < maxLines; i++) {
|
|
15
|
+
ctx.beginPath();
|
|
16
|
+
ctx.moveTo(contentArea.x, y);
|
|
17
|
+
ctx.lineTo(right, y);
|
|
18
|
+
ctx.stroke();
|
|
19
|
+
y += baselineIncrement;
|
|
20
|
+
}
|
|
21
|
+
ctx.restore();
|
|
22
|
+
}
|
|
23
|
+
// ---------------------------------------------------------------------------
|
|
24
|
+
// Column rule (vertical line between columns)
|
|
25
|
+
// ---------------------------------------------------------------------------
|
|
26
|
+
function renderColumnRule(ctx, columns, color, lineWidth) {
|
|
27
|
+
if (columns.length < 2)
|
|
28
|
+
return;
|
|
29
|
+
ctx.save();
|
|
30
|
+
ctx.strokeStyle = color;
|
|
31
|
+
ctx.lineWidth = lineWidth;
|
|
32
|
+
for (let i = 0; i < columns.length - 1; i++) {
|
|
33
|
+
const left = columns[i].bbox;
|
|
34
|
+
const right = columns[i + 1].bbox;
|
|
35
|
+
const x = (left.x + left.width + right.x) / 2;
|
|
36
|
+
const top = Math.min(left.y, right.y);
|
|
37
|
+
const bottom = Math.max(left.y + left.height, right.y + right.height);
|
|
38
|
+
ctx.beginPath();
|
|
39
|
+
ctx.moveTo(x, top);
|
|
40
|
+
ctx.lineTo(x, bottom);
|
|
41
|
+
ctx.stroke();
|
|
42
|
+
}
|
|
43
|
+
ctx.restore();
|
|
44
|
+
}
|
|
45
|
+
// ---------------------------------------------------------------------------
|
|
46
|
+
// Text rendering
|
|
47
|
+
// ---------------------------------------------------------------------------
|
|
48
|
+
function renderLine(ctx, line, font, boldFont, color, textAlign, columnWidth) {
|
|
49
|
+
ctx.fillStyle = color;
|
|
50
|
+
ctx.textBaseline = 'alphabetic';
|
|
51
|
+
const hasBoldSegments = boldFont && line.segments && line.segments.some((s) => s.bold);
|
|
52
|
+
// Justified rendering with per-segment spacing
|
|
53
|
+
if (textAlign === 'justify' && !line.isLastLine && line.segments && line.segments.length > 0) {
|
|
54
|
+
let wordWidth = 0;
|
|
55
|
+
let spaceCount = 0;
|
|
56
|
+
for (const seg of line.segments) {
|
|
57
|
+
if (seg.kind === 'space')
|
|
58
|
+
spaceCount++;
|
|
59
|
+
else
|
|
60
|
+
wordWidth += seg.width;
|
|
61
|
+
}
|
|
62
|
+
if (spaceCount > 0) {
|
|
63
|
+
const justifiedSpaceWidth = (columnWidth - wordWidth) / spaceCount;
|
|
64
|
+
let x = line.bbox.x;
|
|
65
|
+
for (const seg of line.segments) {
|
|
66
|
+
if (seg.kind === 'space') {
|
|
67
|
+
x += justifiedSpaceWidth;
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
ctx.font = seg.bold && boldFont ? boldFont : font;
|
|
71
|
+
ctx.fillText(seg.text, x, line.baseline);
|
|
72
|
+
x += seg.width;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
return;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
// Ragged (left-aligned) rendering — also used for last lines of justified blocks
|
|
79
|
+
// If there are bold segments, render per-segment to apply correct fonts
|
|
80
|
+
if (hasBoldSegments && line.segments) {
|
|
81
|
+
let x = line.bbox.x;
|
|
82
|
+
for (const seg of line.segments) {
|
|
83
|
+
if (seg.kind === 'space') {
|
|
84
|
+
x += seg.width;
|
|
85
|
+
}
|
|
86
|
+
else {
|
|
87
|
+
ctx.font = seg.bold && boldFont ? boldFont : font;
|
|
88
|
+
ctx.fillText(seg.text, x, line.baseline);
|
|
89
|
+
x += seg.width;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
94
|
+
ctx.font = font;
|
|
95
|
+
ctx.fillText(line.text, line.bbox.x, line.baseline);
|
|
96
|
+
}
|
|
97
|
+
function renderBlock(ctx, block, columnWidth) {
|
|
98
|
+
for (const line of block.lines) {
|
|
99
|
+
renderLine(ctx, line, block.fontString, block.boldFontString, block.color, block.textAlign, columnWidth);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
// ---------------------------------------------------------------------------
|
|
103
|
+
// Page rendering
|
|
104
|
+
// ---------------------------------------------------------------------------
|
|
105
|
+
function computeContentArea(page, doc) {
|
|
106
|
+
const { dpi, margins } = doc.config.page;
|
|
107
|
+
// We can derive content area from page dimensions and margins
|
|
108
|
+
// (same logic as pipeline, but we recalculate from resolved config)
|
|
109
|
+
const pxPerCm = dpi / 2.54;
|
|
110
|
+
const marginTop = margins.top.unit === 'cm' ? margins.top.value * pxPerCm : margins.top.value;
|
|
111
|
+
const marginLeft = margins.left.unit === 'cm' ? margins.left.value * pxPerCm : margins.left.value;
|
|
112
|
+
// Use the first column's bbox to infer content area bounds
|
|
113
|
+
if (page.columns.length > 0) {
|
|
114
|
+
const firstCol = page.columns[0];
|
|
115
|
+
const lastCol = page.columns[page.columns.length - 1];
|
|
116
|
+
return {
|
|
117
|
+
x: firstCol.bbox.x,
|
|
118
|
+
y: firstCol.bbox.y,
|
|
119
|
+
width: (lastCol.bbox.x + lastCol.bbox.width) - firstCol.bbox.x,
|
|
120
|
+
height: firstCol.bbox.height,
|
|
121
|
+
};
|
|
122
|
+
}
|
|
123
|
+
return { x: marginLeft, y: marginTop, width: 0, height: 0 };
|
|
124
|
+
}
|
|
125
|
+
export function renderPageToCanvas(page, doc, canvas) {
|
|
126
|
+
canvas.width = Math.round(page.width);
|
|
127
|
+
canvas.height = Math.round(page.height);
|
|
128
|
+
const ctx = canvas.getContext('2d');
|
|
129
|
+
if (!ctx)
|
|
130
|
+
return;
|
|
131
|
+
// Background
|
|
132
|
+
const bgColor = doc.config.page.backgroundColor.hex;
|
|
133
|
+
if (bgColor && bgColor !== 'transparent') {
|
|
134
|
+
ctx.fillStyle = bgColor;
|
|
135
|
+
ctx.fillRect(0, 0, canvas.width, canvas.height);
|
|
136
|
+
}
|
|
137
|
+
else {
|
|
138
|
+
ctx.fillStyle = '#ffffff';
|
|
139
|
+
ctx.fillRect(0, 0, canvas.width, canvas.height);
|
|
140
|
+
}
|
|
141
|
+
// Baseline grid overlay
|
|
142
|
+
if (doc.config.page.baselineGrid.enabled) {
|
|
143
|
+
const contentArea = computeContentArea(page, doc);
|
|
144
|
+
const isLastPage = page.index === doc.pages.length - 1;
|
|
145
|
+
// On non-last pages, limit the grid to the height actually used by
|
|
146
|
+
// placed blocks so that no "phantom" baselines appear at the bottom
|
|
147
|
+
// when the split / orphan-control algorithm leaves unused space.
|
|
148
|
+
if (!isLastPage && page.columns.length > 0) {
|
|
149
|
+
const maxUsed = Math.max(...page.columns.map((col) => col.bbox.height - col.availableHeight));
|
|
150
|
+
contentArea.height = maxUsed;
|
|
151
|
+
}
|
|
152
|
+
const gridLineWidthPx = dimensionToPx(doc.config.page.baselineGrid.lineWidth, doc.config.page.dpi);
|
|
153
|
+
renderBaselineGrid(ctx, contentArea, doc.baselineGrid, doc.config.page.baselineGrid.color.hex, gridLineWidthPx);
|
|
154
|
+
}
|
|
155
|
+
// Column rule between columns
|
|
156
|
+
if (doc.config.layout.columnRule.enabled && page.columns.length > 1) {
|
|
157
|
+
const crLineWidthPx = dimensionToPx(doc.config.layout.columnRule.lineWidth, doc.config.page.dpi);
|
|
158
|
+
renderColumnRule(ctx, page.columns, doc.config.layout.columnRule.color.hex, crLineWidthPx);
|
|
159
|
+
}
|
|
160
|
+
// Render all blocks (clip to column bounds to prevent overflow)
|
|
161
|
+
for (const col of page.columns) {
|
|
162
|
+
ctx.save();
|
|
163
|
+
ctx.beginPath();
|
|
164
|
+
ctx.rect(col.bbox.x, col.bbox.y, col.bbox.width, col.bbox.height);
|
|
165
|
+
ctx.clip();
|
|
166
|
+
for (const block of col.blocks) {
|
|
167
|
+
renderBlock(ctx, block, col.bbox.width);
|
|
168
|
+
}
|
|
169
|
+
ctx.restore();
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
export function renderPage(page, doc) {
|
|
173
|
+
const canvas = document.createElement('canvas');
|
|
174
|
+
renderPageToCanvas(page, doc, canvas);
|
|
175
|
+
return canvas;
|
|
176
|
+
}
|
|
177
|
+
// ---------------------------------------------------------------------------
|
|
178
|
+
// Public API
|
|
179
|
+
// ---------------------------------------------------------------------------
|
|
180
|
+
export function renderToCanvas(doc) {
|
|
181
|
+
return doc.pages.map((page) => renderPage(page, doc));
|
|
182
|
+
}
|
|
183
|
+
//# sourceMappingURL=canvas-backend.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"canvas-backend.js","sourceRoot":"","sources":["../src/canvas-backend.ts"],"names":[],"mappings":"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"}
|
package/dist/createLayout.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type FC } from 'react';
|
|
2
2
|
import type { PostextContent, PostextConfig } from './types';
|
|
3
|
-
export declare function createLayout(
|
|
3
|
+
export declare function createLayout(content: PostextContent, config?: PostextConfig): FC;
|
|
4
4
|
//# sourceMappingURL=createLayout.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createLayout.d.ts","sourceRoot":"","sources":["../src/createLayout.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"createLayout.d.ts","sourceRoot":"","sources":["../src/createLayout.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,EAAqB,MAAM,OAAO,CAAC;AACnD,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAI7D,wBAAgB,YAAY,CAC1B,OAAO,EAAE,cAAc,EACvB,MAAM,CAAC,EAAE,aAAa,GACrB,EAAE,CA6BJ"}
|
package/dist/createLayout.js
CHANGED
|
@@ -1,5 +1,28 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
import { useEffect, useRef } from 'react';
|
|
2
|
+
import { buildDocument } from './pipeline';
|
|
3
|
+
import { renderToCanvas } from './canvas-backend';
|
|
4
|
+
export function createLayout(content, config) {
|
|
5
|
+
const Layout = () => {
|
|
6
|
+
const containerRef = useRef(null);
|
|
7
|
+
useEffect(() => {
|
|
8
|
+
const container = containerRef.current;
|
|
9
|
+
if (!container)
|
|
10
|
+
return;
|
|
11
|
+
const doc = buildDocument(content, config);
|
|
12
|
+
const pages = renderToCanvas(doc);
|
|
13
|
+
// Clear previous content
|
|
14
|
+
container.innerHTML = '';
|
|
15
|
+
// Display all pages
|
|
16
|
+
for (const canvas of pages) {
|
|
17
|
+
canvas.style.width = '100%';
|
|
18
|
+
canvas.style.height = 'auto';
|
|
19
|
+
canvas.style.display = 'block';
|
|
20
|
+
canvas.style.marginBottom = '16px';
|
|
21
|
+
container.appendChild(canvas);
|
|
22
|
+
}
|
|
23
|
+
}, []);
|
|
24
|
+
return null;
|
|
25
|
+
};
|
|
3
26
|
Layout.displayName = 'PostextLayout';
|
|
4
27
|
return Layout;
|
|
5
28
|
}
|
package/dist/createLayout.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createLayout.js","sourceRoot":"","sources":["../src/createLayout.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"createLayout.js","sourceRoot":"","sources":["../src/createLayout.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAEnD,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,MAAM,UAAU,YAAY,CAC1B,OAAuB,EACvB,MAAsB;IAEtB,MAAM,MAAM,GAAO,GAAG,EAAE;QACtB,MAAM,YAAY,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;QAElD,SAAS,CAAC,GAAG,EAAE;YACb,MAAM,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC;YACvC,IAAI,CAAC,SAAS;gBAAE,OAAO;YAEvB,MAAM,GAAG,GAAG,aAAa,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YAC3C,MAAM,KAAK,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;YAElC,yBAAyB;YACzB,SAAS,CAAC,SAAS,GAAG,EAAE,CAAC;YAEzB,oBAAoB;YACpB,KAAK,MAAM,MAAM,IAAI,KAAK,EAAE,CAAC;gBAC3B,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC;gBAC5B,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;gBAC7B,MAAM,CAAC,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC;gBAC/B,MAAM,CAAC,KAAK,CAAC,YAAY,GAAG,MAAM,CAAC;gBACnC,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YAChC,CAAC;QACH,CAAC,EAAE,EAAE,CAAC,CAAC;QAEP,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;IAEF,MAAM,CAAC,WAAW,GAAG,eAAe,CAAC;IACrC,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
package/dist/defaults.d.ts
CHANGED
|
@@ -1,11 +1,34 @@
|
|
|
1
|
-
import type { PageConfig, PageSizePreset, Dimension, PostextConfig } from './types';
|
|
1
|
+
import type { PageConfig, ResolvedPageConfig, PageSizePreset, Dimension, PostextConfig, LayoutConfig, ResolvedLayoutConfig, BodyTextConfig, ResolvedBodyTextConfig, HeadingsConfig, ResolvedHeadingsConfig, ColorValue, HyphenationConfig } from './types';
|
|
2
2
|
export declare const PAGE_SIZE_PRESETS: Record<Exclude<PageSizePreset, 'custom'>, {
|
|
3
3
|
width: Dimension;
|
|
4
4
|
height: Dimension;
|
|
5
5
|
}>;
|
|
6
|
-
export declare const DEFAULT_PAGE_CONFIG:
|
|
6
|
+
export declare const DEFAULT_PAGE_CONFIG: ResolvedPageConfig;
|
|
7
7
|
export declare function dimensionsEqual(a: Dimension, b: Dimension): boolean;
|
|
8
|
+
export declare function colorsEqual(a: ColorValue, b: ColorValue): boolean;
|
|
8
9
|
export declare function stripPageDefaults(page?: PageConfig): PageConfig | undefined;
|
|
10
|
+
export declare const DEFAULT_COLUMN_RULE: {
|
|
11
|
+
enabled: boolean;
|
|
12
|
+
color: {
|
|
13
|
+
readonly hex: "#cccccc";
|
|
14
|
+
readonly model: "hex";
|
|
15
|
+
};
|
|
16
|
+
lineWidth: {
|
|
17
|
+
readonly value: 0.5;
|
|
18
|
+
readonly unit: "pt";
|
|
19
|
+
};
|
|
20
|
+
};
|
|
21
|
+
export declare const DEFAULT_LAYOUT_CONFIG: ResolvedLayoutConfig;
|
|
22
|
+
export declare function stripLayoutDefaults(layout?: LayoutConfig): LayoutConfig | undefined;
|
|
23
|
+
export declare const DEFAULT_HYPHENATION_CONFIG: ResolvedBodyTextConfig['hyphenation'];
|
|
24
|
+
export declare const DEFAULT_BODY_TEXT_CONFIG: ResolvedBodyTextConfig;
|
|
25
|
+
export declare function hyphenationEqual(a: HyphenationConfig | undefined, b: HyphenationConfig | undefined): boolean;
|
|
26
|
+
export declare function stripBodyTextDefaults(bodyText?: BodyTextConfig): BodyTextConfig | undefined;
|
|
27
|
+
export declare const DEFAULT_HEADINGS_CONFIG: ResolvedHeadingsConfig;
|
|
28
|
+
export declare function stripHeadingsDefaults(headings?: HeadingsConfig): HeadingsConfig | undefined;
|
|
9
29
|
export declare function stripConfigDefaults(config: PostextConfig): PostextConfig;
|
|
10
|
-
export declare function resolvePageConfig(partial?: PageConfig):
|
|
30
|
+
export declare function resolvePageConfig(partial?: PageConfig): ResolvedPageConfig;
|
|
31
|
+
export declare function resolveLayoutConfig(partial?: LayoutConfig): ResolvedLayoutConfig;
|
|
32
|
+
export declare function resolveBodyTextConfig(partial?: BodyTextConfig): ResolvedBodyTextConfig;
|
|
33
|
+
export declare function resolveHeadingsConfig(partial?: HeadingsConfig): ResolvedHeadingsConfig;
|
|
11
34
|
//# sourceMappingURL=defaults.d.ts.map
|
package/dist/defaults.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../src/defaults.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAe,cAAc,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../src/defaults.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,kBAAkB,EAAe,cAAc,EAAE,SAAS,EAAE,aAAa,EAAE,YAAY,EAAE,oBAAoB,EAAE,cAAc,EAAE,sBAAsB,EAAE,cAAc,EAAsB,sBAAsB,EAA8B,UAAU,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAExT,eAAO,MAAM,iBAAiB,EAAE,MAAM,CACpC,OAAO,CAAC,cAAc,EAAE,QAAQ,CAAC,EACjC;IAAE,KAAK,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE,SAAS,CAAA;CAAE,CAMxC,CAAC;AASF,eAAO,MAAM,mBAAmB,EAAE,kBASjC,CAAC;AAEF,wBAAgB,eAAe,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,GAAG,OAAO,CAEnE;AAED,wBAAgB,WAAW,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,GAAG,OAAO,CAEjE;AAED,wBAAgB,iBAAiB,CAAC,IAAI,CAAC,EAAE,UAAU,GAAG,UAAU,GAAG,SAAS,CA2D3E;AAED,eAAO,MAAM,mBAAmB;;;;;;;;;;CAI/B,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,oBAKnC,CAAC;AAEF,wBAAgB,mBAAmB,CAAC,MAAM,CAAC,EAAE,YAAY,GAAG,YAAY,GAAG,SAAS,CAwCnF;AAED,eAAO,MAAM,0BAA0B,EAAE,sBAAsB,CAAC,aAAa,CAG5E,CAAC;AAEF,eAAO,MAAM,wBAAwB,EAAE,sBAStC,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,iBAAiB,GAAG,SAAS,EAAE,CAAC,EAAE,iBAAiB,GAAG,SAAS,GAAG,OAAO,CAK5G;AAED,wBAAgB,qBAAqB,CAAC,QAAQ,CAAC,EAAE,cAAc,GAAG,cAAc,GAAG,SAAS,CAwC3F;AAkBD,eAAO,MAAM,uBAAuB,EAAE,sBASrC,CAAC;AAEF,wBAAgB,qBAAqB,CAAC,QAAQ,CAAC,EAAE,cAAc,GAAG,cAAc,GAAG,SAAS,CA8E3F;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,aAAa,GAAG,aAAa,CA2BxE;AAED,wBAAgB,iBAAiB,CAAC,OAAO,CAAC,EAAE,UAAU,GAAG,kBAAkB,CA0B1E;AAED,wBAAgB,mBAAmB,CAAC,OAAO,CAAC,EAAE,YAAY,GAAG,oBAAoB,CAehF;AAED,wBAAgB,qBAAqB,CAAC,OAAO,CAAC,EAAE,cAAc,GAAG,sBAAsB,CAgBtF;AAED,wBAAgB,qBAAqB,CAAC,OAAO,CAAC,EAAE,cAAc,GAAG,sBAAsB,CA0BtF"}
|