@edgedev/template-engine 0.1.4 → 0.1.6
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 +0 -25
- package/dist/index.d.ts +2 -20
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +78 -137
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/src/index.ts +103 -194
package/README.md
CHANGED
|
@@ -35,13 +35,11 @@ const theme = {
|
|
|
35
35
|
const { blocks, css } = await pageRender(
|
|
36
36
|
[
|
|
37
37
|
{
|
|
38
|
-
id: 'hero-block',
|
|
39
38
|
name: 'hero',
|
|
40
39
|
content: '<section class="bg-brand text-white">{{{#text {"field":"headline"} }}}</section>',
|
|
41
40
|
values: { headline: 'Launch in days, not months.' },
|
|
42
41
|
},
|
|
43
42
|
{
|
|
44
|
-
id: 'listing-block',
|
|
45
43
|
name: 'listing',
|
|
46
44
|
content: `
|
|
47
45
|
<ul>
|
|
@@ -79,29 +77,6 @@ const { blocks, css } = await pageRender(
|
|
|
79
77
|
- `extraHtml` is optional helper markup that should also contribute to UnoCSS generation (e.g. layout shells).
|
|
80
78
|
- The returned `css` string is ready to inline or serve as critical CSS. Rendered blocks remain accessible individually if you need to target specific components.
|
|
81
79
|
|
|
82
|
-
### Optional page structure
|
|
83
|
-
|
|
84
|
-
Pass an optional `structure` array as the fifth argument to `pageRender`/`pageRenderPlaceHolder` when you want to lay out blocks in rows/columns instead of the default one-after-another order. Each `PageRenderBlock` should include an `id` and the structure rows reference those ids:
|
|
85
|
-
|
|
86
|
-
```ts
|
|
87
|
-
const structure = [
|
|
88
|
-
{
|
|
89
|
-
width: 'full', // or max-w-*, etc.
|
|
90
|
-
background: 'brand', // uses Tailwind class (bg-brand) by default
|
|
91
|
-
gap: '4',
|
|
92
|
-
mobileOrder: 'reverse', // default is normal
|
|
93
|
-
columns: [
|
|
94
|
-
{ span: 4, blocks: ['hero-block'] },
|
|
95
|
-
{ span: 2, blocks: ['listing-block'] },
|
|
96
|
-
],
|
|
97
|
-
},
|
|
98
|
-
]
|
|
99
|
-
|
|
100
|
-
const { html, css, blocks } = await pageRender(pageBlocks, theme, extraHtml, hydrateOptions, structure)
|
|
101
|
-
```
|
|
102
|
-
|
|
103
|
-
If `structure` is omitted or empty, blocks render in the original order. The `css` output includes any Tailwind classes used by the structured layout (width, background, gap, alignment, spans, etc.).
|
|
104
|
-
|
|
105
80
|
The renderer supports:
|
|
106
81
|
|
|
107
82
|
- Root-level and nested `#array` / `#subarray` blocks with aliases
|
package/dist/index.d.ts
CHANGED
|
@@ -8,39 +8,21 @@ export { normalizeTheme, buildCssVarsBlock, } from './unoSsr.js';
|
|
|
8
8
|
export { unoCssFromHtml } from './unoSsr.js';
|
|
9
9
|
export declare const renderTemplate: (content: string, values?: TemplateValues, meta?: TemplateMeta) => string;
|
|
10
10
|
export interface PageRenderBlock {
|
|
11
|
-
id?: string | null;
|
|
12
11
|
name?: string | null;
|
|
13
12
|
content: string;
|
|
14
13
|
values?: TemplateValues | null;
|
|
15
14
|
meta?: TemplateMeta | null;
|
|
16
15
|
}
|
|
17
16
|
export interface PageRenderResultBlock {
|
|
18
|
-
id?: string;
|
|
19
17
|
name?: string;
|
|
20
18
|
html: string;
|
|
21
19
|
}
|
|
22
20
|
export interface PageRenderResult {
|
|
23
21
|
blocks: PageRenderResultBlock[];
|
|
24
22
|
css: string;
|
|
25
|
-
html: string;
|
|
26
23
|
}
|
|
27
24
|
export type PageRenderHydrateOptions = Pick<HydrateValuesOptions, 'uniqueKey' | 'clientOptions'>;
|
|
28
|
-
export
|
|
29
|
-
|
|
30
|
-
blocks?: string[] | null;
|
|
31
|
-
span?: number | null;
|
|
32
|
-
}
|
|
33
|
-
export interface PageStructureRow {
|
|
34
|
-
id?: string | null;
|
|
35
|
-
width?: string | null;
|
|
36
|
-
background?: string | null;
|
|
37
|
-
verticalAlign?: string | null;
|
|
38
|
-
mobileOrder?: string | null;
|
|
39
|
-
gap?: string | number | null;
|
|
40
|
-
columns?: PageStructureColumn[] | null;
|
|
41
|
-
}
|
|
42
|
-
export type PageStructure = PageStructureRow[];
|
|
43
|
-
export declare const pageRender: (blocks: PageRenderBlock[], theme: Record<string, unknown> | null | undefined, extraHtml?: string | null | undefined, hydrateOptions?: PageRenderHydrateOptions | null, structure?: PageStructure | null) => Promise<PageRenderResult>;
|
|
44
|
-
export declare const pageRenderPlaceHolder: (blocks: PageRenderBlock[], theme: Record<string, unknown> | null | undefined, extraHtml?: string | null | undefined, structure?: PageStructure | null) => Promise<PageRenderResult>;
|
|
25
|
+
export declare const pageRender: (blocks: PageRenderBlock[], theme: Record<string, unknown> | null | undefined, extraHtml?: string | null | undefined, hydrateOptions?: PageRenderHydrateOptions | null) => Promise<PageRenderResult>;
|
|
26
|
+
export declare const pageRenderPlaceHolder: (blocks: PageRenderBlock[], theme: Record<string, unknown> | null | undefined, extraHtml?: string | null | undefined) => Promise<PageRenderResult>;
|
|
45
27
|
export default renderTemplate;
|
|
46
28
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,aAAa,EAAE,KAAK,oBAAoB,EAAE,MAAM,oBAAoB,CAAA;AAE7E,OAAO,KAAK,EAAwB,YAAY,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAEpF,OAAO,EAAE,aAAa,EAAE,CAAA;AACxB,YAAY,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAA;AAC9D,YAAY,EACV,WAAW,EACX,gBAAgB,EAChB,SAAS,EACT,SAAS,EACT,YAAY,EACZ,cAAc,EACd,oBAAoB,EACpB,WAAW,EACX,UAAU,EACV,eAAe,GAChB,MAAM,YAAY,CAAA;AAEnB,OAAO,EACL,mBAAmB,EACnB,KAAK,aAAa,EAClB,KAAK,oBAAoB,EACzB,KAAK,kBAAkB,EACvB,KAAK,eAAe,EACpB,KAAK,aAAa,GACnB,MAAM,oBAAoB,CAAA;AAE3B,OAAO,EACL,cAAc,EACd,iBAAiB,GAClB,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAwG5C,eAAO,MAAM,cAAc,GACzB,SAAS,MAAM,EACf,SAAQ,cAAmB,EAC3B,OAAM,YAAiB,KACtB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,aAAa,EAAE,KAAK,oBAAoB,EAAE,MAAM,oBAAoB,CAAA;AAE7E,OAAO,KAAK,EAAwB,YAAY,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAEpF,OAAO,EAAE,aAAa,EAAE,CAAA;AACxB,YAAY,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAA;AAC9D,YAAY,EACV,WAAW,EACX,gBAAgB,EAChB,SAAS,EACT,SAAS,EACT,YAAY,EACZ,cAAc,EACd,oBAAoB,EACpB,WAAW,EACX,UAAU,EACV,eAAe,GAChB,MAAM,YAAY,CAAA;AAEnB,OAAO,EACL,mBAAmB,EACnB,KAAK,aAAa,EAClB,KAAK,oBAAoB,EACzB,KAAK,kBAAkB,EACvB,KAAK,eAAe,EACpB,KAAK,aAAa,GACnB,MAAM,oBAAoB,CAAA;AAE3B,OAAO,EACL,cAAc,EACd,iBAAiB,GAClB,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAwG5C,eAAO,MAAM,cAAc,GACzB,SAAS,MAAM,EACf,SAAQ,cAAmB,EAC3B,OAAM,YAAiB,KACtB,MAuQF,CAAA;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,cAAc,GAAG,IAAI,CAAA;IAC9B,IAAI,CAAC,EAAE,YAAY,GAAG,IAAI,CAAA;CAC3B;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,qBAAqB,EAAE,CAAA;IAC/B,GAAG,EAAE,MAAM,CAAA;CACZ;AAED,MAAM,MAAM,wBAAwB,GAAG,IAAI,CAAC,oBAAoB,EAAE,WAAW,GAAG,eAAe,CAAC,CAAA;AA8ChG,eAAO,MAAM,UAAU,GACrB,QAAQ,eAAe,EAAE,EACzB,OAAO,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,GAAG,SAAS,EACjD,YAAW,MAAM,GAAG,IAAI,GAAG,SAAc,EACzC,iBAAiB,wBAAwB,GAAG,IAAI,KAC/C,OAAO,CAAC,gBAAgB,CA+C1B,CAAA;AAED,eAAO,MAAM,qBAAqB,GAChC,QAAQ,eAAe,EAAE,EACzB,OAAO,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,GAAG,SAAS,EACjD,YAAW,MAAM,GAAG,IAAI,GAAG,SAAc,KACxC,OAAO,CAAC,gBAAgB,CAuC1B,CAAA;AAED,eAAe,cAAc,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
// ALSO HAVE HELPER FUNCTIONS THIS USES AND WE CAN USE ELSEWHERE TO DO GET KV DATA AND QUERY KV DATA BASED ON OUR INDEX STRUCTURE
|
|
5
5
|
// ALSO TAKE A LOOK AT OUR BLOCKS WE ARE GETTING... ALSO MAKE SURE THAT THE META WE PASS IN AS A VAR IS AN OVERRIDE OF THE TEMPLATE META...
|
|
6
6
|
// MAKE SURE THE META IN THE TEMPLATE IS BEING USED. MAKE SURE SAME
|
|
7
|
-
import {
|
|
7
|
+
import { parseConfig } from './templateConfig.js';
|
|
8
8
|
import { hydrateValues } from './hydrateValues.js';
|
|
9
9
|
import { unoCssFromHtml } from './unoSsr.js';
|
|
10
10
|
export { hydrateValues };
|
|
@@ -98,13 +98,33 @@ const aliasRegex = (alias) => {
|
|
|
98
98
|
export const renderTemplate = (content, values = {}, meta = {}) => {
|
|
99
99
|
if (!content || typeof content !== 'string')
|
|
100
100
|
return '';
|
|
101
|
-
const
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
101
|
+
const renderArrayBlocks = (template, scopedValues, schemaCtx) => {
|
|
102
|
+
const tokenRe = /\{\{\{\s*#array\s*({[\s\S]*?})\s*\}\}\}|\{\{\{\s*\/array\s*\}\}\}/g;
|
|
103
|
+
const findNextBlock = (input) => {
|
|
104
|
+
tokenRe.lastIndex = 0;
|
|
105
|
+
const stack = [];
|
|
106
|
+
let match;
|
|
107
|
+
while ((match = tokenRe.exec(input))) {
|
|
108
|
+
if (match[1]) {
|
|
109
|
+
stack.push({ index: match.index, len: match[0].length, json: match[1] });
|
|
110
|
+
continue;
|
|
111
|
+
}
|
|
112
|
+
if (!stack.length)
|
|
113
|
+
continue;
|
|
114
|
+
const start = stack.pop();
|
|
115
|
+
if (stack.length === 0) {
|
|
116
|
+
return {
|
|
117
|
+
start: start.index,
|
|
118
|
+
startLen: start.len,
|
|
119
|
+
json: start.json,
|
|
120
|
+
end: match.index,
|
|
121
|
+
endLen: match[0].length,
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
return null;
|
|
126
|
+
};
|
|
127
|
+
const renderArrayBlock = (json, innerTpl) => {
|
|
108
128
|
const cfg = parseConfig(json || '{}') ?? {};
|
|
109
129
|
const fieldRaw = typeof cfg.field === 'string' ? cfg.field.trim() : '';
|
|
110
130
|
let list;
|
|
@@ -121,6 +141,8 @@ export const renderTemplate = (content, values = {}, meta = {}) => {
|
|
|
121
141
|
else if (Array.isArray(cfg.value)) {
|
|
122
142
|
list = cfg.value;
|
|
123
143
|
}
|
|
144
|
+
if (!Array.isArray(list) && Array.isArray(cfg.value))
|
|
145
|
+
list = cfg.value;
|
|
124
146
|
if (!Array.isArray(list)) {
|
|
125
147
|
const fallback = getCommonList(scopedValues);
|
|
126
148
|
if (Array.isArray(fallback))
|
|
@@ -128,13 +150,31 @@ export const renderTemplate = (content, values = {}, meta = {}) => {
|
|
|
128
150
|
}
|
|
129
151
|
let normalized = coerceList(list);
|
|
130
152
|
normalized = sliceWithLimit(normalized, cfg.limit);
|
|
131
|
-
const
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
return normalized.map(entry => renderSection(innerTpl, entry,
|
|
136
|
-
}
|
|
137
|
-
|
|
153
|
+
const alias = typeof cfg.as === 'string' && cfg.as.trim() ? cfg.as.trim() : undefined;
|
|
154
|
+
const schemaContext = fieldRaw && meta[fieldRaw]?.schema
|
|
155
|
+
? meta[fieldRaw]?.schema
|
|
156
|
+
: (typeof cfg.schema === 'object' ? cfg.schema : schemaCtx);
|
|
157
|
+
return normalized.map(entry => renderSection(innerTpl, entry, alias, schemaContext)).join('');
|
|
158
|
+
};
|
|
159
|
+
const process = (input) => {
|
|
160
|
+
const block = findNextBlock(input);
|
|
161
|
+
if (!block)
|
|
162
|
+
return input;
|
|
163
|
+
const before = input.slice(0, block.start);
|
|
164
|
+
const innerTpl = input.slice(block.start + block.startLen, block.end);
|
|
165
|
+
const after = input.slice(block.end + block.endLen);
|
|
166
|
+
const rendered = renderArrayBlock(block.json, innerTpl);
|
|
167
|
+
return process(before + rendered + after);
|
|
168
|
+
};
|
|
169
|
+
return process(template);
|
|
170
|
+
};
|
|
171
|
+
const renderSection = (template, data, alias, schemaCtx) => {
|
|
172
|
+
if (!template)
|
|
173
|
+
return '';
|
|
174
|
+
const scopedValues = typeof data === 'object' && data !== null
|
|
175
|
+
? data
|
|
176
|
+
: {};
|
|
177
|
+
let expanded = template.replace(SUBARRAY_BLOCK_RE, (_match, tagAlias, json, innerTpl) => {
|
|
138
178
|
const cfg = parseConfig(json || '{}') ?? {};
|
|
139
179
|
const fieldRaw = typeof cfg.field === 'string' ? cfg.field.trim() : '';
|
|
140
180
|
let list;
|
|
@@ -158,10 +198,13 @@ export const renderTemplate = (content, values = {}, meta = {}) => {
|
|
|
158
198
|
}
|
|
159
199
|
let normalized = coerceList(list);
|
|
160
200
|
normalized = sliceWithLimit(normalized, cfg.limit);
|
|
161
|
-
const childAlias = typeof cfg.as === 'string' && cfg.as.trim()
|
|
201
|
+
const childAlias = typeof cfg.as === 'string' && cfg.as.trim()
|
|
202
|
+
? cfg.as.trim()
|
|
203
|
+
: (tagAlias?.trim() || undefined);
|
|
162
204
|
const childSchema = typeof cfg.schema === 'object' ? cfg.schema : schemaCtx;
|
|
163
205
|
return normalized.map(entry => renderSection(innerTpl, entry, childAlias, childSchema)).join('');
|
|
164
206
|
});
|
|
207
|
+
expanded = renderArrayBlocks(expanded, scopedValues, schemaCtx);
|
|
165
208
|
if (alias && typeof alias === 'string') {
|
|
166
209
|
expanded = expanded.replace(aliasRegex(alias), (_match, path) => {
|
|
167
210
|
const value = getByPath(scopedValues, path);
|
|
@@ -244,22 +287,7 @@ export const renderTemplate = (content, values = {}, meta = {}) => {
|
|
|
244
287
|
return String(value);
|
|
245
288
|
return String(value);
|
|
246
289
|
});
|
|
247
|
-
output = output
|
|
248
|
-
const cfg = parseConfig(json) ?? {};
|
|
249
|
-
const field = typeof cfg.field === 'string' ? cfg.field : undefined;
|
|
250
|
-
if (field?.startsWith('item.'))
|
|
251
|
-
return full;
|
|
252
|
-
let list = field ? values[field] : undefined;
|
|
253
|
-
if (!Array.isArray(list) && Array.isArray(cfg.value))
|
|
254
|
-
list = cfg.value;
|
|
255
|
-
let normalized = coerceList(list);
|
|
256
|
-
normalized = sliceWithLimit(normalized, cfg.limit);
|
|
257
|
-
const alias = typeof cfg.as === 'string' && cfg.as.trim() ? cfg.as.trim() : undefined;
|
|
258
|
-
const schemaContext = field && meta[field]?.schema
|
|
259
|
-
? meta[field]?.schema
|
|
260
|
-
: (typeof cfg.schema === 'object' ? cfg.schema : undefined);
|
|
261
|
-
return normalized.map(entry => renderSection(innerTpl, entry, alias, schemaContext)).join('');
|
|
262
|
-
});
|
|
290
|
+
output = renderSection(output, values);
|
|
263
291
|
output = output.replace(PLACEHOLDER_RE, (_match, json) => {
|
|
264
292
|
const cfg = parseConfig(json) ?? {};
|
|
265
293
|
const field = typeof cfg.field === 'string' ? cfg.field : undefined;
|
|
@@ -310,101 +338,14 @@ const buildHydrateOptions = (input) => {
|
|
|
310
338
|
clientOptions: safeClientOptions,
|
|
311
339
|
};
|
|
312
340
|
};
|
|
313
|
-
const
|
|
314
|
-
if (value == null)
|
|
315
|
-
return fallback;
|
|
316
|
-
const str = typeof value === 'number' ? String(value) : (typeof value === 'string' ? value.trim() : '');
|
|
317
|
-
return /^[A-Za-z0-9._/-]+$/.test(str) ? str : fallback;
|
|
318
|
-
};
|
|
319
|
-
const normalizeBackgroundClass = (value) => {
|
|
320
|
-
const token = normalizeClassToken(value, 'transparent');
|
|
321
|
-
if (!token || token === 'transparent')
|
|
322
|
-
return 'bg-transparent';
|
|
323
|
-
return token.startsWith('bg-') ? token : `bg-${token}`;
|
|
324
|
-
};
|
|
325
|
-
const normalizeWidthClass = (value) => {
|
|
326
|
-
const token = normalizeClassToken(value, 'full');
|
|
327
|
-
if (!token || token === 'full')
|
|
328
|
-
return 'w-full';
|
|
329
|
-
if (token.startsWith('max-w-'))
|
|
330
|
-
return `${token} w-full mx-auto`;
|
|
331
|
-
return token;
|
|
332
|
-
};
|
|
333
|
-
const normalizeGapValue = (value) => {
|
|
334
|
-
return normalizeClassToken(value, '4');
|
|
335
|
-
};
|
|
336
|
-
const normalizeAlignClass = (value) => {
|
|
337
|
-
const token = normalizeClassToken(value, 'start');
|
|
338
|
-
if (token === 'center')
|
|
339
|
-
return 'items-center';
|
|
340
|
-
if (token === 'end')
|
|
341
|
-
return 'items-end';
|
|
342
|
-
return 'items-start';
|
|
343
|
-
};
|
|
344
|
-
const normalizeMobileOrderClass = (value) => {
|
|
345
|
-
return value === 'reverse'
|
|
346
|
-
? 'flex flex-col-reverse md:grid md:grid-cols-6'
|
|
347
|
-
: 'flex flex-col md:grid md:grid-cols-6';
|
|
348
|
-
};
|
|
349
|
-
const normalizeColumnSpanClass = (value) => {
|
|
350
|
-
const n = Number(value);
|
|
351
|
-
const clamped = Number.isFinite(n) ? Math.min(Math.max(Math.round(n), 1), 6) : 6;
|
|
352
|
-
return `md:col-span-${clamped}`;
|
|
353
|
-
};
|
|
354
|
-
const buildStructuredLayout = (structure, renderedBlocks) => {
|
|
355
|
-
if (!Array.isArray(structure) || structure.length === 0)
|
|
356
|
-
return null;
|
|
357
|
-
const blockLookup = new Map();
|
|
358
|
-
for (const block of renderedBlocks) {
|
|
359
|
-
if (block?.id)
|
|
360
|
-
blockLookup.set(block.id, block.html);
|
|
361
|
-
}
|
|
362
|
-
const sections = [];
|
|
363
|
-
for (const row of structure) {
|
|
364
|
-
const columns = Array.isArray(row?.columns) ? row.columns : [];
|
|
365
|
-
if (!columns.length)
|
|
366
|
-
continue;
|
|
367
|
-
const widthClass = normalizeWidthClass(row?.width);
|
|
368
|
-
const backgroundClass = normalizeBackgroundClass(row?.background);
|
|
369
|
-
const alignClass = normalizeAlignClass(row?.verticalAlign);
|
|
370
|
-
const gapValue = normalizeGapValue(row?.gap);
|
|
371
|
-
const gapClass = `gap-${gapValue}`;
|
|
372
|
-
const stackClass = `space-y-${gapValue}`;
|
|
373
|
-
const orderClass = normalizeMobileOrderClass(row?.mobileOrder);
|
|
374
|
-
const columnHtml = columns
|
|
375
|
-
.map((col) => {
|
|
376
|
-
const blockIds = Array.isArray(col?.blocks) ? col.blocks : [];
|
|
377
|
-
const inner = blockIds
|
|
378
|
-
.map(blockId => (blockId ? (blockLookup.get(blockId) ?? '') : ''))
|
|
379
|
-
.filter(Boolean)
|
|
380
|
-
.join('');
|
|
381
|
-
if (!inner)
|
|
382
|
-
return '';
|
|
383
|
-
const spanClass = normalizeColumnSpanClass(col?.span);
|
|
384
|
-
return `<div class="w-full ${spanClass} ${stackClass}">${inner}</div>`;
|
|
385
|
-
})
|
|
386
|
-
.filter(Boolean)
|
|
387
|
-
.join('');
|
|
388
|
-
if (!columnHtml)
|
|
389
|
-
continue;
|
|
390
|
-
const section = `<section class="w-full ${backgroundClass}"><div class="${[widthClass, orderClass, gapClass, alignClass].filter(Boolean).join(' ')}">${columnHtml}</div></section>`;
|
|
391
|
-
sections.push(section);
|
|
392
|
-
}
|
|
393
|
-
return sections.length ? sections.join('') : null;
|
|
394
|
-
};
|
|
395
|
-
const buildPageHtml = (renderedBlocks, structure) => {
|
|
396
|
-
const defaultHtml = renderedBlocks.map(block => block.html).filter(Boolean).join('\n');
|
|
397
|
-
const structured = buildStructuredLayout(structure, renderedBlocks);
|
|
398
|
-
return structured || defaultHtml;
|
|
399
|
-
};
|
|
400
|
-
export const pageRender = async (blocks, theme, extraHtml = '', hydrateOptions, structure) => {
|
|
341
|
+
export const pageRender = async (blocks, theme, extraHtml = '', hydrateOptions) => {
|
|
401
342
|
const renderedBlocks = [];
|
|
343
|
+
const htmlFragments = [];
|
|
402
344
|
const hydrationConfig = buildHydrateOptions(hydrateOptions);
|
|
403
345
|
for (const block of blocks) {
|
|
404
346
|
if (!block?.content) {
|
|
405
347
|
const blockName = typeof block?.name === 'string' ? block.name : undefined;
|
|
406
|
-
|
|
407
|
-
renderedBlocks.push({ id: blockId, name: blockName, html: '' });
|
|
348
|
+
renderedBlocks.push({ name: blockName, html: '' });
|
|
408
349
|
continue;
|
|
409
350
|
}
|
|
410
351
|
const meta = coerceTemplateMeta(block.meta);
|
|
@@ -420,27 +361,27 @@ export const pageRender = async (blocks, theme, extraHtml = '', hydrateOptions,
|
|
|
420
361
|
content = content.replace(/\{\{\s*loaded\s*\}\}/g, '');
|
|
421
362
|
const html = renderTemplate(content, resolvedValues ?? undefined, meta);
|
|
422
363
|
const blockName = typeof block.name === 'string' ? block.name : undefined;
|
|
423
|
-
|
|
424
|
-
|
|
364
|
+
renderedBlocks.push({ name: blockName, html });
|
|
365
|
+
if (html)
|
|
366
|
+
htmlFragments.push(html);
|
|
425
367
|
}
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
const combinedHtml =
|
|
368
|
+
if (extraHtml && typeof extraHtml === 'string')
|
|
369
|
+
htmlFragments.push(extraHtml);
|
|
370
|
+
const combinedHtml = htmlFragments.join('\n');
|
|
429
371
|
const safeTheme = theme && typeof theme === 'object' ? theme : {};
|
|
430
372
|
const { css } = await unoCssFromHtml(combinedHtml, safeTheme);
|
|
431
373
|
return {
|
|
432
374
|
blocks: renderedBlocks,
|
|
433
375
|
css,
|
|
434
|
-
html: pageHtml,
|
|
435
376
|
};
|
|
436
377
|
};
|
|
437
|
-
export const pageRenderPlaceHolder = async (blocks, theme, extraHtml = ''
|
|
378
|
+
export const pageRenderPlaceHolder = async (blocks, theme, extraHtml = '') => {
|
|
438
379
|
const renderedBlocks = [];
|
|
380
|
+
const htmlFragments = [];
|
|
439
381
|
for (const block of blocks) {
|
|
440
382
|
if (!block?.content) {
|
|
441
383
|
const blockName = typeof block?.name === 'string' ? block.name : undefined;
|
|
442
|
-
|
|
443
|
-
renderedBlocks.push({ id: blockId, name: blockName, html: '' });
|
|
384
|
+
renderedBlocks.push({ name: blockName, html: '' });
|
|
444
385
|
continue;
|
|
445
386
|
}
|
|
446
387
|
const meta = coerceTemplateMeta(block.meta);
|
|
@@ -449,12 +390,13 @@ export const pageRenderPlaceHolder = async (blocks, theme, extraHtml = '', struc
|
|
|
449
390
|
content = content.replace(/\{\{\s*loaded\s*\}\}/g, 'hidden');
|
|
450
391
|
const html = renderTemplate(content, initialValues ?? undefined, meta);
|
|
451
392
|
const blockName = typeof block.name === 'string' ? block.name : undefined;
|
|
452
|
-
|
|
453
|
-
|
|
393
|
+
renderedBlocks.push({ name: blockName, html });
|
|
394
|
+
if (html)
|
|
395
|
+
htmlFragments.push(html);
|
|
454
396
|
}
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
const combinedHtml =
|
|
397
|
+
if (extraHtml && typeof extraHtml === 'string')
|
|
398
|
+
htmlFragments.push(extraHtml);
|
|
399
|
+
const combinedHtml = htmlFragments.join('\n');
|
|
458
400
|
console.log('generating css...', combinedHtml.length);
|
|
459
401
|
const safeTheme = theme && typeof theme === 'object' ? theme : {};
|
|
460
402
|
const { css } = await unoCssFromHtml(combinedHtml, safeTheme);
|
|
@@ -462,7 +404,6 @@ export const pageRenderPlaceHolder = async (blocks, theme, extraHtml = '', struc
|
|
|
462
404
|
return {
|
|
463
405
|
blocks: renderedBlocks,
|
|
464
406
|
css,
|
|
465
|
-
html: pageHtml,
|
|
466
407
|
};
|
|
467
408
|
};
|
|
468
409
|
export default renderTemplate;
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/index.ts
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
// ALSO TAKE A LOOK AT OUR BLOCKS WE ARE GETTING... ALSO MAKE SURE THAT THE META WE PASS IN AS A VAR IS AN OVERRIDE OF THE TEMPLATE META...
|
|
6
6
|
// MAKE SURE THE META IN THE TEMPLATE IS BEING USED. MAKE SURE SAME
|
|
7
7
|
|
|
8
|
-
import {
|
|
8
|
+
import { parseConfig } from './templateConfig.js'
|
|
9
9
|
import { hydrateValues, type HydrateValuesOptions } from './hydrateValues.js'
|
|
10
10
|
import { unoCssFromHtml } from './unoSsr.js'
|
|
11
11
|
import type { MetaEntry, SchemaMap, TemplateMeta, TemplateValues } from './types.js'
|
|
@@ -149,20 +149,50 @@ export const renderTemplate = (
|
|
|
149
149
|
): string => {
|
|
150
150
|
if (!content || typeof content !== 'string')
|
|
151
151
|
return ''
|
|
152
|
-
|
|
152
|
+
|
|
153
|
+
const renderArrayBlocks = (
|
|
153
154
|
template: string,
|
|
154
|
-
|
|
155
|
-
alias?: string,
|
|
155
|
+
scopedValues: Record<string, unknown>,
|
|
156
156
|
schemaCtx?: SchemaMap,
|
|
157
157
|
): string => {
|
|
158
|
-
|
|
159
|
-
|
|
158
|
+
type BlockMatch = {
|
|
159
|
+
start: number
|
|
160
|
+
startLen: number
|
|
161
|
+
json: string
|
|
162
|
+
end: number
|
|
163
|
+
endLen: number
|
|
164
|
+
}
|
|
160
165
|
|
|
161
|
-
const
|
|
162
|
-
? (data as Record<string, unknown>)
|
|
163
|
-
: {}
|
|
166
|
+
const tokenRe = /\{\{\{\s*#array\s*({[\s\S]*?})\s*\}\}\}|\{\{\{\s*\/array\s*\}\}\}/g
|
|
164
167
|
|
|
165
|
-
|
|
168
|
+
const findNextBlock = (input: string): BlockMatch | null => {
|
|
169
|
+
tokenRe.lastIndex = 0
|
|
170
|
+
const stack: Array<{ index: number; len: number; json: string }> = []
|
|
171
|
+
let match: RegExpExecArray | null
|
|
172
|
+
while ((match = tokenRe.exec(input))) {
|
|
173
|
+
if (match[1]) {
|
|
174
|
+
stack.push({ index: match.index, len: match[0].length, json: match[1] })
|
|
175
|
+
continue
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
if (!stack.length)
|
|
179
|
+
continue
|
|
180
|
+
|
|
181
|
+
const start = stack.pop()!
|
|
182
|
+
if (stack.length === 0) {
|
|
183
|
+
return {
|
|
184
|
+
start: start.index,
|
|
185
|
+
startLen: start.len,
|
|
186
|
+
json: start.json,
|
|
187
|
+
end: match.index,
|
|
188
|
+
endLen: match[0].length,
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
return null
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
const renderArrayBlock = (json: string, innerTpl: string): string => {
|
|
166
196
|
const cfg = parseConfig(json || '{}') ?? {}
|
|
167
197
|
const fieldRaw = typeof cfg.field === 'string' ? cfg.field.trim() : ''
|
|
168
198
|
let list: unknown
|
|
@@ -181,6 +211,9 @@ export const renderTemplate = (
|
|
|
181
211
|
list = cfg.value
|
|
182
212
|
}
|
|
183
213
|
|
|
214
|
+
if (!Array.isArray(list) && Array.isArray(cfg.value))
|
|
215
|
+
list = cfg.value
|
|
216
|
+
|
|
184
217
|
if (!Array.isArray(list)) {
|
|
185
218
|
const fallback = getCommonList(scopedValues)
|
|
186
219
|
if (Array.isArray(fallback))
|
|
@@ -190,15 +223,43 @@ export const renderTemplate = (
|
|
|
190
223
|
let normalized = coerceList(list)
|
|
191
224
|
normalized = sliceWithLimit(normalized, cfg.limit)
|
|
192
225
|
|
|
193
|
-
const
|
|
194
|
-
|
|
195
|
-
|
|
226
|
+
const alias = typeof cfg.as === 'string' && cfg.as.trim() ? cfg.as.trim() : undefined
|
|
227
|
+
const schemaContext = fieldRaw && meta[fieldRaw]?.schema
|
|
228
|
+
? meta[fieldRaw]?.schema
|
|
229
|
+
: (typeof cfg.schema === 'object' ? (cfg.schema as SchemaMap) : schemaCtx)
|
|
196
230
|
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
231
|
+
return normalized.map(entry => renderSection(innerTpl, entry, alias, schemaContext)).join('')
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
const process = (input: string): string => {
|
|
235
|
+
const block = findNextBlock(input)
|
|
236
|
+
if (!block)
|
|
237
|
+
return input
|
|
238
|
+
|
|
239
|
+
const before = input.slice(0, block.start)
|
|
240
|
+
const innerTpl = input.slice(block.start + block.startLen, block.end)
|
|
241
|
+
const after = input.slice(block.end + block.endLen)
|
|
242
|
+
|
|
243
|
+
const rendered = renderArrayBlock(block.json, innerTpl)
|
|
244
|
+
return process(before + rendered + after)
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
return process(template)
|
|
248
|
+
}
|
|
249
|
+
const renderSection = (
|
|
250
|
+
template: string,
|
|
251
|
+
data: unknown,
|
|
252
|
+
alias?: string,
|
|
253
|
+
schemaCtx?: SchemaMap,
|
|
254
|
+
): string => {
|
|
255
|
+
if (!template)
|
|
256
|
+
return ''
|
|
257
|
+
|
|
258
|
+
const scopedValues = typeof data === 'object' && data !== null
|
|
259
|
+
? (data as Record<string, unknown>)
|
|
260
|
+
: {}
|
|
200
261
|
|
|
201
|
-
expanded =
|
|
262
|
+
let expanded = template.replace(SUBARRAY_BLOCK_RE, (_match, tagAlias, json, innerTpl) => {
|
|
202
263
|
const cfg = parseConfig(json || '{}') ?? {}
|
|
203
264
|
const fieldRaw = typeof cfg.field === 'string' ? cfg.field.trim() : ''
|
|
204
265
|
let list: unknown
|
|
@@ -226,11 +287,16 @@ export const renderTemplate = (
|
|
|
226
287
|
let normalized = coerceList(list)
|
|
227
288
|
normalized = sliceWithLimit(normalized, cfg.limit)
|
|
228
289
|
|
|
229
|
-
const childAlias = typeof cfg.as === 'string' && cfg.as.trim()
|
|
290
|
+
const childAlias = typeof cfg.as === 'string' && cfg.as.trim()
|
|
291
|
+
? cfg.as.trim()
|
|
292
|
+
: (tagAlias?.trim() || undefined)
|
|
293
|
+
|
|
230
294
|
const childSchema = typeof cfg.schema === 'object' ? (cfg.schema as SchemaMap) : schemaCtx
|
|
231
295
|
return normalized.map(entry => renderSection(innerTpl, entry, childAlias, childSchema)).join('')
|
|
232
296
|
})
|
|
233
297
|
|
|
298
|
+
expanded = renderArrayBlocks(expanded, scopedValues, schemaCtx)
|
|
299
|
+
|
|
234
300
|
if (alias && typeof alias === 'string') {
|
|
235
301
|
expanded = expanded.replace(aliasRegex(alias), (_match, path) => {
|
|
236
302
|
const value = getByPath(scopedValues, path)
|
|
@@ -325,27 +391,7 @@ export const renderTemplate = (
|
|
|
325
391
|
return String(value)
|
|
326
392
|
})
|
|
327
393
|
|
|
328
|
-
output = output
|
|
329
|
-
const cfg = parseConfig(json) ?? {}
|
|
330
|
-
const field = typeof cfg.field === 'string' ? cfg.field : undefined
|
|
331
|
-
|
|
332
|
-
if (field?.startsWith('item.'))
|
|
333
|
-
return full
|
|
334
|
-
|
|
335
|
-
let list: unknown = field ? values[field] : undefined
|
|
336
|
-
if (!Array.isArray(list) && Array.isArray(cfg.value))
|
|
337
|
-
list = cfg.value
|
|
338
|
-
|
|
339
|
-
let normalized = coerceList(list)
|
|
340
|
-
normalized = sliceWithLimit(normalized, cfg.limit)
|
|
341
|
-
|
|
342
|
-
const alias = typeof cfg.as === 'string' && cfg.as.trim() ? cfg.as.trim() : undefined
|
|
343
|
-
const schemaContext = field && meta[field]?.schema
|
|
344
|
-
? meta[field]?.schema
|
|
345
|
-
: (typeof cfg.schema === 'object' ? (cfg.schema as SchemaMap) : undefined)
|
|
346
|
-
|
|
347
|
-
return normalized.map(entry => renderSection(innerTpl, entry, alias, schemaContext)).join('')
|
|
348
|
-
})
|
|
394
|
+
output = renderSection(output, values)
|
|
349
395
|
|
|
350
396
|
output = output.replace(PLACEHOLDER_RE, (_match, json) => {
|
|
351
397
|
const cfg = parseConfig(json) ?? {}
|
|
@@ -366,7 +412,6 @@ export const renderTemplate = (
|
|
|
366
412
|
}
|
|
367
413
|
|
|
368
414
|
export interface PageRenderBlock {
|
|
369
|
-
id?: string | null
|
|
370
415
|
name?: string | null
|
|
371
416
|
content: string
|
|
372
417
|
values?: TemplateValues | null
|
|
@@ -374,7 +419,6 @@ export interface PageRenderBlock {
|
|
|
374
419
|
}
|
|
375
420
|
|
|
376
421
|
export interface PageRenderResultBlock {
|
|
377
|
-
id?: string
|
|
378
422
|
name?: string
|
|
379
423
|
html: string
|
|
380
424
|
}
|
|
@@ -382,29 +426,10 @@ export interface PageRenderResultBlock {
|
|
|
382
426
|
export interface PageRenderResult {
|
|
383
427
|
blocks: PageRenderResultBlock[]
|
|
384
428
|
css: string
|
|
385
|
-
html: string
|
|
386
429
|
}
|
|
387
430
|
|
|
388
431
|
export type PageRenderHydrateOptions = Pick<HydrateValuesOptions, 'uniqueKey' | 'clientOptions'>
|
|
389
432
|
|
|
390
|
-
export interface PageStructureColumn {
|
|
391
|
-
id?: string | null
|
|
392
|
-
blocks?: string[] | null
|
|
393
|
-
span?: number | null
|
|
394
|
-
}
|
|
395
|
-
|
|
396
|
-
export interface PageStructureRow {
|
|
397
|
-
id?: string | null
|
|
398
|
-
width?: string | null
|
|
399
|
-
background?: string | null
|
|
400
|
-
verticalAlign?: string | null
|
|
401
|
-
mobileOrder?: string | null
|
|
402
|
-
gap?: string | number | null
|
|
403
|
-
columns?: PageStructureColumn[] | null
|
|
404
|
-
}
|
|
405
|
-
|
|
406
|
-
export type PageStructure = PageStructureRow[]
|
|
407
|
-
|
|
408
433
|
const isPlainObject = (value: unknown): value is Record<string, unknown> => {
|
|
409
434
|
return !!value && typeof value === 'object' && !Array.isArray(value)
|
|
410
435
|
}
|
|
@@ -449,135 +474,20 @@ const buildHydrateOptions = (
|
|
|
449
474
|
}
|
|
450
475
|
}
|
|
451
476
|
|
|
452
|
-
const normalizeClassToken = (value: unknown, fallback: string): string => {
|
|
453
|
-
if (value == null)
|
|
454
|
-
return fallback
|
|
455
|
-
const str = typeof value === 'number' ? String(value) : (typeof value === 'string' ? value.trim() : '')
|
|
456
|
-
return /^[A-Za-z0-9._/-]+$/.test(str) ? str : fallback
|
|
457
|
-
}
|
|
458
|
-
|
|
459
|
-
const normalizeBackgroundClass = (value: unknown): string => {
|
|
460
|
-
const token = normalizeClassToken(value, 'transparent')
|
|
461
|
-
if (!token || token === 'transparent')
|
|
462
|
-
return 'bg-transparent'
|
|
463
|
-
return token.startsWith('bg-') ? token : `bg-${token}`
|
|
464
|
-
}
|
|
465
|
-
|
|
466
|
-
const normalizeWidthClass = (value: unknown): string => {
|
|
467
|
-
const token = normalizeClassToken(value, 'full')
|
|
468
|
-
if (!token || token === 'full')
|
|
469
|
-
return 'w-full'
|
|
470
|
-
if (token.startsWith('max-w-'))
|
|
471
|
-
return `${token} w-full mx-auto`
|
|
472
|
-
return token
|
|
473
|
-
}
|
|
474
|
-
|
|
475
|
-
const normalizeGapValue = (value: unknown): string => {
|
|
476
|
-
return normalizeClassToken(value, '4')
|
|
477
|
-
}
|
|
478
|
-
|
|
479
|
-
const normalizeAlignClass = (value: unknown): string => {
|
|
480
|
-
const token = normalizeClassToken(value, 'start')
|
|
481
|
-
if (token === 'center')
|
|
482
|
-
return 'items-center'
|
|
483
|
-
if (token === 'end')
|
|
484
|
-
return 'items-end'
|
|
485
|
-
return 'items-start'
|
|
486
|
-
}
|
|
487
|
-
|
|
488
|
-
const normalizeMobileOrderClass = (value: unknown): string => {
|
|
489
|
-
return value === 'reverse'
|
|
490
|
-
? 'flex flex-col-reverse md:grid md:grid-cols-6'
|
|
491
|
-
: 'flex flex-col md:grid md:grid-cols-6'
|
|
492
|
-
}
|
|
493
|
-
|
|
494
|
-
const normalizeColumnSpanClass = (value: unknown): string => {
|
|
495
|
-
const n = Number(value)
|
|
496
|
-
const clamped = Number.isFinite(n) ? Math.min(Math.max(Math.round(n), 1), 6) : 6
|
|
497
|
-
return `md:col-span-${clamped}`
|
|
498
|
-
}
|
|
499
|
-
|
|
500
|
-
type RenderedBlockWithId = PageRenderResultBlock & { id?: string }
|
|
501
|
-
|
|
502
|
-
const buildStructuredLayout = (
|
|
503
|
-
structure: PageStructure | null | undefined,
|
|
504
|
-
renderedBlocks: RenderedBlockWithId[],
|
|
505
|
-
): string | null => {
|
|
506
|
-
if (!Array.isArray(structure) || structure.length === 0)
|
|
507
|
-
return null
|
|
508
|
-
|
|
509
|
-
const blockLookup = new Map<string, string>()
|
|
510
|
-
for (const block of renderedBlocks) {
|
|
511
|
-
if (block?.id)
|
|
512
|
-
blockLookup.set(block.id, block.html)
|
|
513
|
-
}
|
|
514
|
-
|
|
515
|
-
const sections: string[] = []
|
|
516
|
-
|
|
517
|
-
for (const row of structure) {
|
|
518
|
-
const columns = Array.isArray(row?.columns) ? row.columns : []
|
|
519
|
-
if (!columns.length)
|
|
520
|
-
continue
|
|
521
|
-
|
|
522
|
-
const widthClass = normalizeWidthClass(row?.width)
|
|
523
|
-
const backgroundClass = normalizeBackgroundClass(row?.background)
|
|
524
|
-
const alignClass = normalizeAlignClass(row?.verticalAlign)
|
|
525
|
-
const gapValue = normalizeGapValue(row?.gap)
|
|
526
|
-
const gapClass = `gap-${gapValue}`
|
|
527
|
-
const stackClass = `space-y-${gapValue}`
|
|
528
|
-
const orderClass = normalizeMobileOrderClass(row?.mobileOrder)
|
|
529
|
-
|
|
530
|
-
const columnHtml = columns
|
|
531
|
-
.map((col) => {
|
|
532
|
-
const blockIds = Array.isArray(col?.blocks) ? col.blocks : []
|
|
533
|
-
const inner = blockIds
|
|
534
|
-
.map(blockId => (blockId ? (blockLookup.get(blockId) ?? '') : ''))
|
|
535
|
-
.filter(Boolean)
|
|
536
|
-
.join('')
|
|
537
|
-
|
|
538
|
-
if (!inner)
|
|
539
|
-
return ''
|
|
540
|
-
|
|
541
|
-
const spanClass = normalizeColumnSpanClass(col?.span)
|
|
542
|
-
return `<div class="w-full ${spanClass} ${stackClass}">${inner}</div>`
|
|
543
|
-
})
|
|
544
|
-
.filter(Boolean)
|
|
545
|
-
.join('')
|
|
546
|
-
|
|
547
|
-
if (!columnHtml)
|
|
548
|
-
continue
|
|
549
|
-
|
|
550
|
-
const section = `<section class="w-full ${backgroundClass}"><div class="${[widthClass, orderClass, gapClass, alignClass].filter(Boolean).join(' ')}">${columnHtml}</div></section>`
|
|
551
|
-
sections.push(section)
|
|
552
|
-
}
|
|
553
|
-
|
|
554
|
-
return sections.length ? sections.join('') : null
|
|
555
|
-
}
|
|
556
|
-
|
|
557
|
-
const buildPageHtml = (
|
|
558
|
-
renderedBlocks: RenderedBlockWithId[],
|
|
559
|
-
structure?: PageStructure | null,
|
|
560
|
-
): string => {
|
|
561
|
-
const defaultHtml = renderedBlocks.map(block => block.html).filter(Boolean).join('\n')
|
|
562
|
-
const structured = buildStructuredLayout(structure, renderedBlocks)
|
|
563
|
-
return structured || defaultHtml
|
|
564
|
-
}
|
|
565
|
-
|
|
566
477
|
export const pageRender = async (
|
|
567
478
|
blocks: PageRenderBlock[],
|
|
568
479
|
theme: Record<string, unknown> | null | undefined,
|
|
569
480
|
extraHtml: string | null | undefined = '',
|
|
570
481
|
hydrateOptions?: PageRenderHydrateOptions | null,
|
|
571
|
-
structure?: PageStructure | null,
|
|
572
482
|
): Promise<PageRenderResult> => {
|
|
573
|
-
const renderedBlocks:
|
|
483
|
+
const renderedBlocks: PageRenderResultBlock[] = []
|
|
484
|
+
const htmlFragments: string[] = []
|
|
574
485
|
const hydrationConfig = buildHydrateOptions(hydrateOptions)
|
|
575
486
|
|
|
576
487
|
for (const block of blocks) {
|
|
577
488
|
if (!block?.content) {
|
|
578
489
|
const blockName = typeof block?.name === 'string' ? block.name : undefined
|
|
579
|
-
|
|
580
|
-
renderedBlocks.push({ id: blockId, name: blockName, html: '' })
|
|
490
|
+
renderedBlocks.push({ name: blockName, html: '' })
|
|
581
491
|
continue
|
|
582
492
|
}
|
|
583
493
|
|
|
@@ -600,21 +510,21 @@ export const pageRender = async (
|
|
|
600
510
|
)
|
|
601
511
|
|
|
602
512
|
const blockName = typeof block.name === 'string' ? block.name : undefined
|
|
603
|
-
|
|
604
|
-
|
|
513
|
+
renderedBlocks.push({ name: blockName, html })
|
|
514
|
+
if (html)
|
|
515
|
+
htmlFragments.push(html)
|
|
605
516
|
}
|
|
606
517
|
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
const combinedHtml = [pageHtml, extra].filter(Boolean).join('\n')
|
|
518
|
+
if (extraHtml && typeof extraHtml === 'string')
|
|
519
|
+
htmlFragments.push(extraHtml)
|
|
610
520
|
|
|
521
|
+
const combinedHtml = htmlFragments.join('\n')
|
|
611
522
|
const safeTheme = theme && typeof theme === 'object' ? theme : {}
|
|
612
523
|
const { css } = await unoCssFromHtml(combinedHtml, safeTheme)
|
|
613
524
|
|
|
614
525
|
return {
|
|
615
526
|
blocks: renderedBlocks,
|
|
616
527
|
css,
|
|
617
|
-
html: pageHtml,
|
|
618
528
|
}
|
|
619
529
|
}
|
|
620
530
|
|
|
@@ -622,14 +532,13 @@ export const pageRenderPlaceHolder = async (
|
|
|
622
532
|
blocks: PageRenderBlock[],
|
|
623
533
|
theme: Record<string, unknown> | null | undefined,
|
|
624
534
|
extraHtml: string | null | undefined = '',
|
|
625
|
-
structure?: PageStructure | null,
|
|
626
535
|
): Promise<PageRenderResult> => {
|
|
627
|
-
const renderedBlocks:
|
|
536
|
+
const renderedBlocks: PageRenderResultBlock[] = []
|
|
537
|
+
const htmlFragments: string[] = []
|
|
628
538
|
for (const block of blocks) {
|
|
629
539
|
if (!block?.content) {
|
|
630
540
|
const blockName = typeof block?.name === 'string' ? block.name : undefined
|
|
631
|
-
|
|
632
|
-
renderedBlocks.push({ id: blockId, name: blockName, html: '' })
|
|
541
|
+
renderedBlocks.push({ name: blockName, html: '' })
|
|
633
542
|
continue
|
|
634
543
|
}
|
|
635
544
|
|
|
@@ -645,14 +554,15 @@ export const pageRenderPlaceHolder = async (
|
|
|
645
554
|
)
|
|
646
555
|
|
|
647
556
|
const blockName = typeof block.name === 'string' ? block.name : undefined
|
|
648
|
-
|
|
649
|
-
|
|
557
|
+
renderedBlocks.push({ name: blockName, html })
|
|
558
|
+
if (html)
|
|
559
|
+
htmlFragments.push(html)
|
|
650
560
|
}
|
|
651
561
|
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
const combinedHtml = [pageHtml, extra].filter(Boolean).join('\n')
|
|
562
|
+
if (extraHtml && typeof extraHtml === 'string')
|
|
563
|
+
htmlFragments.push(extraHtml)
|
|
655
564
|
|
|
565
|
+
const combinedHtml = htmlFragments.join('\n')
|
|
656
566
|
console.log('generating css...', combinedHtml.length)
|
|
657
567
|
const safeTheme = theme && typeof theme === 'object' ? theme : {}
|
|
658
568
|
const { css } = await unoCssFromHtml(combinedHtml, safeTheme)
|
|
@@ -660,7 +570,6 @@ export const pageRenderPlaceHolder = async (
|
|
|
660
570
|
return {
|
|
661
571
|
blocks: renderedBlocks,
|
|
662
572
|
css,
|
|
663
|
-
html: pageHtml,
|
|
664
573
|
}
|
|
665
574
|
}
|
|
666
575
|
|