lildocs 0.1.20 → 0.1.22
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/cli.mjs +19239 -1145
- package/dist/core/github-pages.mjs +1 -1
- package/dist/{github-pages-clWLKtga.mjs → github-pages-qzowPgcG.mjs} +17 -10
- package/dist/render/client/.vite/manifest.json +8 -0
- package/dist/render/client/assets/client-BCZ1mVzx.js +5311 -0
- package/dist/render/server/renderer.mjs +714 -0
- package/dist/render/styles.css +11 -2
- package/package.json +13 -16
- package/dist/render/Layout.tsrx +0 -375
- package/dist/render/Search.tsrx +0 -414
- package/dist/render/client.tsrx +0 -52
- package/dist/render/copy-code.ts +0 -56
- package/dist/render/heading-links.ts +0 -85
- package/dist/render/navigation.ts +0 -16
- package/dist/render/paths.ts +0 -47
- package/dist/render/renderPage.tsrx +0 -14
- package/dist/render/section-highlight.ts +0 -63
- package/dist/render/sidebar.ts +0 -93
- package/dist/render/table-viewer.ts +0 -161
- package/dist/render/toc-visibility.ts +0 -78
- package/dist/render/types.ts +0 -9
|
@@ -0,0 +1,714 @@
|
|
|
1
|
+
var BLOCK_OPEN = `<!--[-->`;
|
|
2
|
+
var BLOCK_CLOSE = `<!--]-->`;
|
|
3
|
+
var EMPTY_COMMENT = "<!---->";
|
|
4
|
+
var STREAM_BOUNDARY_ATTR = "data-oct-b";
|
|
5
|
+
var STREAM_SEGMENT_ATTR = "data-oct-s";
|
|
6
|
+
var STREAM_SEED_ATTR = "data-oct-seed";
|
|
7
|
+
var STREAM_SEED_COMMENT = "oct-seed:";
|
|
8
|
+
var POSITIVE_NUMERIC_ATTR_PROPS = /* @__PURE__ */ new Set([
|
|
9
|
+
"size",
|
|
10
|
+
"cols",
|
|
11
|
+
"rows",
|
|
12
|
+
"span"
|
|
13
|
+
]);
|
|
14
|
+
var BOOLEAN_DROPPED_STRING_ATTR_PROPS = /* @__PURE__ */ new Set([
|
|
15
|
+
"href",
|
|
16
|
+
"src",
|
|
17
|
+
"for",
|
|
18
|
+
"action",
|
|
19
|
+
"formaction"
|
|
20
|
+
]);
|
|
21
|
+
function isEnumeratedBooleanAttr(name) {
|
|
22
|
+
switch (name.length) {
|
|
23
|
+
case 10: return name.toLowerCase() === "spellcheck";
|
|
24
|
+
case 9: return name.toLowerCase() === "draggable";
|
|
25
|
+
case 15: return name.toLowerCase() === "contenteditable";
|
|
26
|
+
}
|
|
27
|
+
return false;
|
|
28
|
+
}
|
|
29
|
+
var UNITLESS_STYLE_PROPS = /* @__PURE__ */ new Set();
|
|
30
|
+
for (const base of [
|
|
31
|
+
"animationIterationCount",
|
|
32
|
+
"aspectRatio",
|
|
33
|
+
"borderImageOutset",
|
|
34
|
+
"borderImageSlice",
|
|
35
|
+
"borderImageWidth",
|
|
36
|
+
"boxFlex",
|
|
37
|
+
"boxFlexGroup",
|
|
38
|
+
"boxOrdinalGroup",
|
|
39
|
+
"columnCount",
|
|
40
|
+
"columns",
|
|
41
|
+
"flex",
|
|
42
|
+
"flexGrow",
|
|
43
|
+
"flexPositive",
|
|
44
|
+
"flexShrink",
|
|
45
|
+
"flexNegative",
|
|
46
|
+
"flexOrder",
|
|
47
|
+
"gridArea",
|
|
48
|
+
"gridRow",
|
|
49
|
+
"gridRowEnd",
|
|
50
|
+
"gridRowSpan",
|
|
51
|
+
"gridRowStart",
|
|
52
|
+
"gridColumn",
|
|
53
|
+
"gridColumnEnd",
|
|
54
|
+
"gridColumnSpan",
|
|
55
|
+
"gridColumnStart",
|
|
56
|
+
"fontWeight",
|
|
57
|
+
"lineClamp",
|
|
58
|
+
"lineHeight",
|
|
59
|
+
"opacity",
|
|
60
|
+
"order",
|
|
61
|
+
"orphans",
|
|
62
|
+
"tabSize",
|
|
63
|
+
"widows",
|
|
64
|
+
"zIndex",
|
|
65
|
+
"zoom",
|
|
66
|
+
"fillOpacity",
|
|
67
|
+
"floodOpacity",
|
|
68
|
+
"stopOpacity",
|
|
69
|
+
"strokeDasharray",
|
|
70
|
+
"strokeDashoffset",
|
|
71
|
+
"strokeMiterlimit",
|
|
72
|
+
"strokeOpacity",
|
|
73
|
+
"strokeWidth"
|
|
74
|
+
]) {
|
|
75
|
+
const c = base.toLowerCase();
|
|
76
|
+
UNITLESS_STYLE_PROPS.add(c);
|
|
77
|
+
UNITLESS_STYLE_PROPS.add("webkit" + c);
|
|
78
|
+
UNITLESS_STYLE_PROPS.add("ms" + c);
|
|
79
|
+
UNITLESS_STYLE_PROPS.add("moz" + c);
|
|
80
|
+
UNITLESS_STYLE_PROPS.add("o" + c);
|
|
81
|
+
}
|
|
82
|
+
function isUnitlessStyleProp(name) {
|
|
83
|
+
return UNITLESS_STYLE_PROPS.has(name.replaceAll("-", "").toLowerCase());
|
|
84
|
+
}
|
|
85
|
+
function cssStyleValue(name, value) {
|
|
86
|
+
if (typeof value === "number" && value !== 0 && name.charCodeAt(0) !== 45 && !isUnitlessStyleProp(name)) return value + "px";
|
|
87
|
+
return typeof value === "string" ? value.trim() : "" + value;
|
|
88
|
+
}
|
|
89
|
+
//#endregion
|
|
90
|
+
//#region src/render/octane-css.ts
|
|
91
|
+
function normalizeClass(value) {
|
|
92
|
+
if (typeof value === "string") return value;
|
|
93
|
+
if (typeof value !== "object") return typeof value === "number" && value ? String(value) : "";
|
|
94
|
+
if (value === null) return "";
|
|
95
|
+
let result = "";
|
|
96
|
+
if (Array.isArray(value)) {
|
|
97
|
+
for (const item of value) if (item) {
|
|
98
|
+
const inner = normalizeClass(item);
|
|
99
|
+
if (inner) result = result ? `${result} ${inner}` : inner;
|
|
100
|
+
}
|
|
101
|
+
} else for (const key in value) if (value[key]) result = result ? `${result} ${key}` : key;
|
|
102
|
+
return result;
|
|
103
|
+
}
|
|
104
|
+
var styleNameCache = /* @__PURE__ */ new Map();
|
|
105
|
+
function styleName(name) {
|
|
106
|
+
const cached = styleNameCache.get(name);
|
|
107
|
+
if (cached !== void 0) return cached;
|
|
108
|
+
const result = hyphenateStyleName(name);
|
|
109
|
+
styleNameCache.set(name, result);
|
|
110
|
+
return result;
|
|
111
|
+
}
|
|
112
|
+
function hyphenateStyleName(name) {
|
|
113
|
+
if (name.charCodeAt(0) === 45) return name;
|
|
114
|
+
let hasUpper = false;
|
|
115
|
+
for (let index = 0; index < name.length; index++) {
|
|
116
|
+
const code = name.charCodeAt(index);
|
|
117
|
+
if (code >= 65 && code <= 90) {
|
|
118
|
+
hasUpper = true;
|
|
119
|
+
break;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
if (!hasUpper) return name;
|
|
123
|
+
let result = "";
|
|
124
|
+
for (let index = 0; index < name.length; index++) {
|
|
125
|
+
const code = name.charCodeAt(index);
|
|
126
|
+
result += code >= 65 && code <= 90 ? `-${String.fromCharCode(code + 32)}` : name[index];
|
|
127
|
+
}
|
|
128
|
+
if (result.startsWith("ms-")) result = `-${result}`;
|
|
129
|
+
return result;
|
|
130
|
+
}
|
|
131
|
+
//#endregion
|
|
132
|
+
//#region node_modules/.pnpm/octane@0.1.3/node_modules/octane/dist/runtime.server.js
|
|
133
|
+
var CURRENT_SCOPE = null;
|
|
134
|
+
var ID_COUNTER = 0;
|
|
135
|
+
var CSS = null;
|
|
136
|
+
var MARKERS = true;
|
|
137
|
+
var HEAD = null;
|
|
138
|
+
var SUSPENDED = null;
|
|
139
|
+
var RESOLVED = null;
|
|
140
|
+
var SERIAL = null;
|
|
141
|
+
var FRAME = null;
|
|
142
|
+
var DEFERRED = null;
|
|
143
|
+
var CURRENT_COMP = null;
|
|
144
|
+
var CURRENT_PROPS = null;
|
|
145
|
+
var CURRENT_PARENT_SCOPE = null;
|
|
146
|
+
function ssrScope(parent) {
|
|
147
|
+
return {
|
|
148
|
+
parent,
|
|
149
|
+
$$ctxValues: null
|
|
150
|
+
};
|
|
151
|
+
}
|
|
152
|
+
var ELEMENT_TAG = /* @__PURE__ */ Symbol.for("octane.element");
|
|
153
|
+
var PORTAL_TAG = /* @__PURE__ */ Symbol.for("octane.portal");
|
|
154
|
+
var VOID_ELEMENTS = /* @__PURE__ */ new Set([
|
|
155
|
+
"area",
|
|
156
|
+
"base",
|
|
157
|
+
"br",
|
|
158
|
+
"col",
|
|
159
|
+
"embed",
|
|
160
|
+
"hr",
|
|
161
|
+
"img",
|
|
162
|
+
"input",
|
|
163
|
+
"link",
|
|
164
|
+
"meta",
|
|
165
|
+
"param",
|
|
166
|
+
"source",
|
|
167
|
+
"track",
|
|
168
|
+
"wbr"
|
|
169
|
+
]);
|
|
170
|
+
var HTML_ESCAPE_RE = /[&<>]/g;
|
|
171
|
+
function escapeHtml(v) {
|
|
172
|
+
const s = typeof v === "string" ? v : String(v);
|
|
173
|
+
HTML_ESCAPE_RE.lastIndex = 0;
|
|
174
|
+
if (!HTML_ESCAPE_RE.test(s)) return s;
|
|
175
|
+
return s.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">");
|
|
176
|
+
}
|
|
177
|
+
var ATTR_ESCAPE_RE = /[&"]/g;
|
|
178
|
+
function escapeAttr(v) {
|
|
179
|
+
const s = typeof v === "string" ? v : String(v);
|
|
180
|
+
ATTR_ESCAPE_RE.lastIndex = 0;
|
|
181
|
+
if (!ATTR_ESCAPE_RE.test(s)) return s;
|
|
182
|
+
return s.replace(/&/g, "&").replace(/"/g, """);
|
|
183
|
+
}
|
|
184
|
+
function ssrText(v) {
|
|
185
|
+
if (v == null || v === false) return "";
|
|
186
|
+
return escapeHtml(v);
|
|
187
|
+
}
|
|
188
|
+
function ssrComponentDescriptor(d, scope) {
|
|
189
|
+
return ssrComponent(scope, d.type, {
|
|
190
|
+
...d.props,
|
|
191
|
+
children: d.children ?? d.props?.children
|
|
192
|
+
});
|
|
193
|
+
}
|
|
194
|
+
function ssrChild(v, scope) {
|
|
195
|
+
if (v == null || v === false || v === true) return ssrBlock("");
|
|
196
|
+
if (Array.isArray(v)) {
|
|
197
|
+
let out = "";
|
|
198
|
+
for (let i = 0; i < v.length; i++) out += ssrChildItem(v[i], scope);
|
|
199
|
+
return ssrBlock(out);
|
|
200
|
+
}
|
|
201
|
+
if (typeof v === "function") return ssrComponent(scope, v, {});
|
|
202
|
+
if (typeof v === "object") {
|
|
203
|
+
if (v.$$kind === ELEMENT_TAG) {
|
|
204
|
+
const d = v;
|
|
205
|
+
if (typeof d.type === "string") return ssrBlock(ssrHostElement(d.type, d.props, d.children, scope));
|
|
206
|
+
return ssrComponentDescriptor(d, scope);
|
|
207
|
+
}
|
|
208
|
+
if (v.$$kind === PORTAL_TAG) return ssrBlock(ssrPortal());
|
|
209
|
+
throw new Error("Objects are not valid as a child (found: object with keys {" + Object.keys(v).join(", ") + "}). If you meant to render a collection of children, use an array instead.");
|
|
210
|
+
}
|
|
211
|
+
return ssrBlock(escapeHtml(v));
|
|
212
|
+
}
|
|
213
|
+
function ssrChildItem(v, scope) {
|
|
214
|
+
if (Array.isArray(v)) {
|
|
215
|
+
let out = "";
|
|
216
|
+
for (let i = 0; i < v.length; i++) out += ssrChildItem(v[i], scope);
|
|
217
|
+
return out;
|
|
218
|
+
}
|
|
219
|
+
return ssrChild(v, scope);
|
|
220
|
+
}
|
|
221
|
+
function ssrHostElement(tag, props, children, scope) {
|
|
222
|
+
if (!VALID_TAG_NAME.test(tag)) throw new Error("Invalid tag: " + tag);
|
|
223
|
+
let attrs = "";
|
|
224
|
+
let innerHTML = void 0;
|
|
225
|
+
if (props != null) for (const k in props) {
|
|
226
|
+
const val = props[k];
|
|
227
|
+
if (k === "dangerouslySetInnerHTML") {
|
|
228
|
+
innerHTML = val == null || val.__html == null ? "" : val.__html;
|
|
229
|
+
continue;
|
|
230
|
+
}
|
|
231
|
+
attrs += ssrAttrEntry(k, val, tag);
|
|
232
|
+
}
|
|
233
|
+
const hasChildren = children != null && children !== false && children !== true && children !== "";
|
|
234
|
+
if (VOID_ELEMENTS.has(tag) && !hasChildren && innerHTML === void 0) return "<" + tag + attrs + "/>";
|
|
235
|
+
let inner = "";
|
|
236
|
+
if (innerHTML !== void 0) inner = innerHTML == null ? "" : String(innerHTML);
|
|
237
|
+
else if (hasChildren) inner = serverDescNeedsBlocks(children) ? ssrDeoptBlockChildren(children, scope) : ssrDescriptorContent(children, scope);
|
|
238
|
+
return "<" + tag + attrs + ">" + inner + "</" + tag + ">";
|
|
239
|
+
}
|
|
240
|
+
function ssrDeoptBlockChildren(children, scope) {
|
|
241
|
+
if (Array.isArray(children)) {
|
|
242
|
+
let out = "";
|
|
243
|
+
for (let i = 0; i < children.length; i++) out += ssrBlock(ssrChild(children[i], scope));
|
|
244
|
+
return ssrBlock(out);
|
|
245
|
+
}
|
|
246
|
+
return ssrChild(children, scope);
|
|
247
|
+
}
|
|
248
|
+
function serverDescNeedsBlocks(v) {
|
|
249
|
+
if (v == null || typeof v !== "object") return false;
|
|
250
|
+
if (Array.isArray(v)) {
|
|
251
|
+
for (let i = 0; i < v.length; i++) if (serverDescNeedsBlocks(v[i])) return true;
|
|
252
|
+
return false;
|
|
253
|
+
}
|
|
254
|
+
const d = v;
|
|
255
|
+
if (d.$$kind === ELEMENT_TAG) return typeof d.type === "function" || serverDescNeedsBlocks(d.children);
|
|
256
|
+
return false;
|
|
257
|
+
}
|
|
258
|
+
function ssrDescriptorContent(v, scope) {
|
|
259
|
+
if (v == null || v === false || v === true || v === "") return "";
|
|
260
|
+
if (Array.isArray(v)) {
|
|
261
|
+
let out = "";
|
|
262
|
+
for (let i = 0; i < v.length; i++) out += ssrDescriptorContent(v[i], scope);
|
|
263
|
+
return out;
|
|
264
|
+
}
|
|
265
|
+
if (typeof v === "object" && v.$$kind === ELEMENT_TAG) {
|
|
266
|
+
const d = v;
|
|
267
|
+
if (typeof d.type === "string") return ssrHostElement(d.type, d.props, d.children, scope);
|
|
268
|
+
return ssrComponentDescriptor(d, scope);
|
|
269
|
+
}
|
|
270
|
+
if (typeof v === "function") return ssrComponent(scope, v, {});
|
|
271
|
+
return escapeHtml(v);
|
|
272
|
+
}
|
|
273
|
+
function ssrBlock(content) {
|
|
274
|
+
return MARKERS ? BLOCK_OPEN + content + BLOCK_CLOSE : content;
|
|
275
|
+
}
|
|
276
|
+
function ssrPortal() {
|
|
277
|
+
return EMPTY_COMMENT;
|
|
278
|
+
}
|
|
279
|
+
function ssrAttr(name, v, tag) {
|
|
280
|
+
const isCustomTag = tag !== void 0 && tag.indexOf("-") !== -1;
|
|
281
|
+
if (name === "htmlFor" && !isCustomTag) name = "for";
|
|
282
|
+
if (name === "class") {
|
|
283
|
+
if (v == null || v === false) return "";
|
|
284
|
+
return " class=\"" + escapeAttr(normalizeClass(v)) + "\"";
|
|
285
|
+
}
|
|
286
|
+
if (name.charCodeAt(0) === 97 && name.startsWith("aria-")) {
|
|
287
|
+
if (v == null) return "";
|
|
288
|
+
return " " + name + "=\"" + escapeAttr(String(v)) + "\"";
|
|
289
|
+
}
|
|
290
|
+
if (name === "suppressContentEditableWarning" || name === "suppressHydrationWarning") return "";
|
|
291
|
+
const t = typeof v;
|
|
292
|
+
if (t === "boolean" && isEnumeratedBooleanAttr(name)) return " " + name + "=\"" + v + "\"";
|
|
293
|
+
if (t === "boolean" && name.startsWith("data-")) return " " + name + "=\"" + v + "\"";
|
|
294
|
+
if (t === "function" || t === "symbol") return "";
|
|
295
|
+
if (!isCustomTag) {
|
|
296
|
+
if (name.length > 2 && name.charCodeAt(0) === 111 && name.charCodeAt(1) === 110) return "";
|
|
297
|
+
const lower = name.toLowerCase();
|
|
298
|
+
if (t === "boolean" && BOOLEAN_DROPPED_STRING_ATTR_PROPS.has(lower)) return "";
|
|
299
|
+
if (POSITIVE_NUMERIC_ATTR_PROPS.has(lower) && (t === "boolean" || !(Number(v) >= 1))) return "";
|
|
300
|
+
}
|
|
301
|
+
if (v == null || v === false) return "";
|
|
302
|
+
const s = v === true ? "" : String(v);
|
|
303
|
+
if (s === "" && (name === "src" || name === "href" && tag !== void 0 && tag !== "a" && tag !== "area")) return "";
|
|
304
|
+
if (v === true) return " " + name;
|
|
305
|
+
return " " + name + "=\"" + escapeAttr(s) + "\"";
|
|
306
|
+
}
|
|
307
|
+
function styleObjectToCss(obj) {
|
|
308
|
+
let out = "";
|
|
309
|
+
for (const k in obj) {
|
|
310
|
+
const val = obj[k];
|
|
311
|
+
if (val == null || typeof val === "boolean") continue;
|
|
312
|
+
out += styleName(k) + ":" + cssStyleValue(k, val) + ";";
|
|
313
|
+
}
|
|
314
|
+
return out;
|
|
315
|
+
}
|
|
316
|
+
function ssrStyle(v) {
|
|
317
|
+
if (v == null || v === false || v === "") return "";
|
|
318
|
+
const css = typeof v === "string" ? v : styleObjectToCss(v);
|
|
319
|
+
if (!css) return "";
|
|
320
|
+
return " style=\"" + escapeAttr(css) + "\"";
|
|
321
|
+
}
|
|
322
|
+
var VALID_ATTR_NAME = /^[^\s"'>\/=\u0000-\u001F]+$/;
|
|
323
|
+
var VALID_TAG_NAME = /^[a-zA-Z][a-zA-Z0-9:._-]*$/;
|
|
324
|
+
function ssrAttrEntry(k, v, tag) {
|
|
325
|
+
if (k === "key" || k === "ref" || k === "children") return "";
|
|
326
|
+
if (k === "suppressHydrationWarning" || k === "suppressContentEditableWarning") return "";
|
|
327
|
+
if (k.length > 2 && k[0] === "o" && k[1] === "n" && k[2] >= "A" && k[2] <= "Z") return "";
|
|
328
|
+
if (typeof v === "function" || typeof v === "symbol") return "";
|
|
329
|
+
if (k === "style") return ssrStyle(v);
|
|
330
|
+
if (k === "className" || k === "class") return ssrAttr("class", v, tag);
|
|
331
|
+
if (VALID_ATTR_NAME.test(k)) return ssrAttr(k, v, tag);
|
|
332
|
+
return "";
|
|
333
|
+
}
|
|
334
|
+
function ssrInnerHtml(sources) {
|
|
335
|
+
for (let i = sources.length - 1; i >= 0; i--) {
|
|
336
|
+
const s = sources[i];
|
|
337
|
+
if (s != null) return s.__html == null ? "" : String(s.__html);
|
|
338
|
+
}
|
|
339
|
+
}
|
|
340
|
+
function renderComponentFramed(comp, props, parent, frame) {
|
|
341
|
+
const prevScope = CURRENT_SCOPE;
|
|
342
|
+
const prevFrame = FRAME;
|
|
343
|
+
const prevComp = CURRENT_COMP;
|
|
344
|
+
const prevProps = CURRENT_PROPS;
|
|
345
|
+
const prevParent = CURRENT_PARENT_SCOPE;
|
|
346
|
+
const parentScope = parent ?? prevScope;
|
|
347
|
+
const scope = ssrScope(parentScope);
|
|
348
|
+
CURRENT_SCOPE = scope;
|
|
349
|
+
FRAME = frame;
|
|
350
|
+
CURRENT_COMP = comp;
|
|
351
|
+
CURRENT_PROPS = props;
|
|
352
|
+
CURRENT_PARENT_SCOPE = parentScope;
|
|
353
|
+
try {
|
|
354
|
+
const out = comp(props ?? {}, scope, void 0);
|
|
355
|
+
const inner = typeof out === "string" ? out : out == null ? "" : ssrChild(out, scope);
|
|
356
|
+
return MARKERS ? BLOCK_OPEN + inner + BLOCK_CLOSE : inner;
|
|
357
|
+
} finally {
|
|
358
|
+
CURRENT_SCOPE = prevScope;
|
|
359
|
+
FRAME = prevFrame;
|
|
360
|
+
CURRENT_COMP = prevComp;
|
|
361
|
+
CURRENT_PROPS = prevProps;
|
|
362
|
+
CURRENT_PARENT_SCOPE = prevParent;
|
|
363
|
+
}
|
|
364
|
+
}
|
|
365
|
+
function ssrComponent(parent, comp, props) {
|
|
366
|
+
const pf = FRAME;
|
|
367
|
+
return renderComponentFramed(comp, props, parent, pf === null ? {
|
|
368
|
+
parent: null,
|
|
369
|
+
seg: 0,
|
|
370
|
+
nextChild: 0,
|
|
371
|
+
occ: null,
|
|
372
|
+
path: null,
|
|
373
|
+
deferred: false
|
|
374
|
+
} : {
|
|
375
|
+
parent: pf,
|
|
376
|
+
seg: pf.nextChild++,
|
|
377
|
+
nextChild: 0,
|
|
378
|
+
occ: null,
|
|
379
|
+
path: null,
|
|
380
|
+
deferred: false
|
|
381
|
+
});
|
|
382
|
+
}
|
|
383
|
+
var SSR_SUSPENSE = /* @__PURE__ */ Symbol("octane.ssr.suspense");
|
|
384
|
+
function ssrIsSuspense(err) {
|
|
385
|
+
return err === SSR_SUSPENSE;
|
|
386
|
+
}
|
|
387
|
+
var HEAD_VOID_ELEMENTS = /* @__PURE__ */ new Set([
|
|
388
|
+
"meta",
|
|
389
|
+
"link",
|
|
390
|
+
"base"
|
|
391
|
+
]);
|
|
392
|
+
function ssrHeadEl(key, tag, attrs, text) {
|
|
393
|
+
if (HEAD === null) return;
|
|
394
|
+
let s = (MARKERS ? "<!--" + key + "-->" : "") + "<" + tag;
|
|
395
|
+
if (attrs !== null) for (const k in attrs) {
|
|
396
|
+
const v = attrs[k];
|
|
397
|
+
if (v == null || v === false) continue;
|
|
398
|
+
if (typeof v === "function" || k.length > 2 && k[0] === "o" && k[1] === "n") continue;
|
|
399
|
+
if (v === "" && (k === "src" || k === "href")) continue;
|
|
400
|
+
s += v === true ? " " + k : " " + k + "=\"" + escapeAttr(v) + "\"";
|
|
401
|
+
}
|
|
402
|
+
if (HEAD_VOID_ELEMENTS.has(tag)) s += ">";
|
|
403
|
+
else s += ">" + (text == null ? "" : escapeHtml(text)) + "</" + tag + ">";
|
|
404
|
+
HEAD.html += s;
|
|
405
|
+
}
|
|
406
|
+
function spliceHead(body, head) {
|
|
407
|
+
if (head === "") return body;
|
|
408
|
+
const headClose = body.indexOf("</head>");
|
|
409
|
+
if (headClose !== -1) return body.slice(0, headClose) + head + body.slice(headClose);
|
|
410
|
+
return head + body;
|
|
411
|
+
}
|
|
412
|
+
function saveAmbient() {
|
|
413
|
+
return {
|
|
414
|
+
scope: CURRENT_SCOPE,
|
|
415
|
+
id: ID_COUNTER,
|
|
416
|
+
css: CSS,
|
|
417
|
+
head: HEAD,
|
|
418
|
+
susp: SUSPENDED,
|
|
419
|
+
res: RESOLVED,
|
|
420
|
+
serial: SERIAL,
|
|
421
|
+
frame: FRAME,
|
|
422
|
+
deferred: DEFERRED,
|
|
423
|
+
comp: CURRENT_COMP,
|
|
424
|
+
props: CURRENT_PROPS,
|
|
425
|
+
parentScope: CURRENT_PARENT_SCOPE
|
|
426
|
+
};
|
|
427
|
+
}
|
|
428
|
+
function restoreAmbient(a) {
|
|
429
|
+
CURRENT_SCOPE = a.scope;
|
|
430
|
+
ID_COUNTER = a.id;
|
|
431
|
+
CSS = a.css;
|
|
432
|
+
HEAD = a.head;
|
|
433
|
+
SUSPENDED = a.susp;
|
|
434
|
+
RESOLVED = a.res;
|
|
435
|
+
SERIAL = a.serial;
|
|
436
|
+
FRAME = a.frame;
|
|
437
|
+
DEFERRED = a.deferred;
|
|
438
|
+
CURRENT_COMP = a.comp;
|
|
439
|
+
CURRENT_PROPS = a.props;
|
|
440
|
+
CURRENT_PARENT_SCOPE = a.parentScope;
|
|
441
|
+
}
|
|
442
|
+
function nonceAttrOf(options) {
|
|
443
|
+
return options?.nonce ? " nonce=\"" + escapeAttr(options.nonce) + "\"" : "";
|
|
444
|
+
}
|
|
445
|
+
function runFullFramedPass(component, props, resolved, nonceAttr = "") {
|
|
446
|
+
const saved = saveAmbient();
|
|
447
|
+
ID_COUNTER = 0;
|
|
448
|
+
const cssMap = CSS = /* @__PURE__ */ new Map();
|
|
449
|
+
const headBuf = HEAD = { html: "" };
|
|
450
|
+
const suspended = SUSPENDED = [];
|
|
451
|
+
const serial = SERIAL = [];
|
|
452
|
+
const deferred = DEFERRED = [];
|
|
453
|
+
RESOLVED = resolved;
|
|
454
|
+
const root = ssrScope(null);
|
|
455
|
+
CURRENT_SCOPE = root;
|
|
456
|
+
FRAME = {
|
|
457
|
+
parent: null,
|
|
458
|
+
seg: 0,
|
|
459
|
+
nextChild: 0,
|
|
460
|
+
occ: null,
|
|
461
|
+
path: "",
|
|
462
|
+
deferred: false
|
|
463
|
+
};
|
|
464
|
+
CURRENT_COMP = component;
|
|
465
|
+
CURRENT_PROPS = props;
|
|
466
|
+
CURRENT_PARENT_SCOPE = null;
|
|
467
|
+
let body = "";
|
|
468
|
+
try {
|
|
469
|
+
const out = component(props ?? {}, root, void 0);
|
|
470
|
+
body = typeof out === "string" ? out : out == null ? "" : ssrChild(out, root);
|
|
471
|
+
} catch (err) {
|
|
472
|
+
if (!ssrIsSuspense(err)) throw err;
|
|
473
|
+
} finally {
|
|
474
|
+
restoreAmbient(saved);
|
|
475
|
+
}
|
|
476
|
+
let css = "";
|
|
477
|
+
for (const [hash, sheet] of cssMap) css += "<style data-octane=\"" + hash + "\"" + nonceAttr + ">" + sheet + "</style>";
|
|
478
|
+
return {
|
|
479
|
+
body,
|
|
480
|
+
head: headBuf.html,
|
|
481
|
+
css,
|
|
482
|
+
serial,
|
|
483
|
+
suspended,
|
|
484
|
+
deferred,
|
|
485
|
+
cssEntries: cssMap
|
|
486
|
+
};
|
|
487
|
+
}
|
|
488
|
+
function renderToStaticMarkup(component, props, options) {
|
|
489
|
+
options?.signal?.throwIfAborted();
|
|
490
|
+
const nonceAttr = nonceAttrOf(options);
|
|
491
|
+
const resolved = /* @__PURE__ */ new Map();
|
|
492
|
+
const prevMarkers = MARKERS;
|
|
493
|
+
MARKERS = false;
|
|
494
|
+
let pass;
|
|
495
|
+
try {
|
|
496
|
+
pass = runFullFramedPass(component, props, resolved, nonceAttr);
|
|
497
|
+
} catch (err) {
|
|
498
|
+
options?.onError?.(err);
|
|
499
|
+
throw err;
|
|
500
|
+
} finally {
|
|
501
|
+
MARKERS = prevMarkers;
|
|
502
|
+
}
|
|
503
|
+
return {
|
|
504
|
+
html: spliceHead(pass.body, pass.head),
|
|
505
|
+
css: pass.css
|
|
506
|
+
};
|
|
507
|
+
}
|
|
508
|
+
"" + STREAM_BOUNDARY_ATTR + STREAM_SEGMENT_ATTR + STREAM_SEED_ATTR + STREAM_SEED_COMMENT + STREAM_BOUNDARY_ATTR;
|
|
509
|
+
//#endregion
|
|
510
|
+
//#region src/render/paths.ts
|
|
511
|
+
function routeDir(route) {
|
|
512
|
+
const index = route.lastIndexOf("/");
|
|
513
|
+
return index === -1 ? "." : route.slice(0, index);
|
|
514
|
+
}
|
|
515
|
+
function normalizeRoute(route) {
|
|
516
|
+
const parts = [];
|
|
517
|
+
for (const part of route.split("/")) {
|
|
518
|
+
if (!part || part === ".") continue;
|
|
519
|
+
if (part === "..") parts.pop();
|
|
520
|
+
else parts.push(part);
|
|
521
|
+
}
|
|
522
|
+
return parts.join("/");
|
|
523
|
+
}
|
|
524
|
+
function relativeUrl(fromRoute, toRoute) {
|
|
525
|
+
const fromParts = routeDir(fromRoute) === "." ? [] : routeDir(fromRoute).split("/");
|
|
526
|
+
const toParts = normalizeRoute(toRoute).split("/");
|
|
527
|
+
while (fromParts.length > 0 && toParts.length > 0 && fromParts[0] === toParts[0]) {
|
|
528
|
+
fromParts.shift();
|
|
529
|
+
toParts.shift();
|
|
530
|
+
}
|
|
531
|
+
const relative = [...fromParts.map(() => ".."), ...toParts].join("/");
|
|
532
|
+
return relative.startsWith(".") ? relative : `./${relative}`;
|
|
533
|
+
}
|
|
534
|
+
function rootRelativeUrl(route, target) {
|
|
535
|
+
const dir = routeDir(route);
|
|
536
|
+
const depth = dir === "." ? 0 : dir.split("/").length;
|
|
537
|
+
return `${depth === 0 ? "." : Array.from({ length: depth }, () => "..").join("/")}/${target}`;
|
|
538
|
+
}
|
|
539
|
+
//#endregion
|
|
540
|
+
//#region src/render/Layout.tsrx
|
|
541
|
+
var Layout = function Layout({ page, nav, pageNavigation, searchIndexJson, logo, favicon, repositoryUrl, projectName, navigation, clientScriptPath, clientStylePaths, dev }, __s, __extra) {
|
|
542
|
+
ssrHeadEl("rnh-14rmfi2", "meta", { "charSet": "utf-8" }, null);
|
|
543
|
+
ssrHeadEl("rnh-14rmfks", "meta", {
|
|
544
|
+
"name": "viewport",
|
|
545
|
+
"content": "width=device-width, initial-scale=1"
|
|
546
|
+
}, null);
|
|
547
|
+
ssrHeadEl("rnh-14rmgcf", "title", null, projectName ? `${page.title} • ${projectName}` : page.title);
|
|
548
|
+
ssrHeadEl("rnh-14rmi0r", "link", {
|
|
549
|
+
"rel": "stylesheet",
|
|
550
|
+
"href": rootRelativeUrl(page.route, "assets/tabler-icons.css")
|
|
551
|
+
}, null);
|
|
552
|
+
ssrHeadEl("rnh-14rmiv8", "link", {
|
|
553
|
+
"rel": "stylesheet",
|
|
554
|
+
"href": rootRelativeUrl(page.route, "assets/lildocs.css")
|
|
555
|
+
}, null);
|
|
556
|
+
const transition = navigation?.transition ?? "fade";
|
|
557
|
+
const issueUrl = issueUrlForRepository(repositoryUrl);
|
|
558
|
+
const repositoryLabel = repositoryLabelForUrl(repositoryUrl);
|
|
559
|
+
function __sif$0(__props, __s, __extra) {
|
|
560
|
+
ssrHeadEl("rnh-14rmh9c", "link", {
|
|
561
|
+
"rel": "icon",
|
|
562
|
+
"href": assetSrc(page.route, favicon)
|
|
563
|
+
}, null);
|
|
564
|
+
return "";
|
|
565
|
+
}
|
|
566
|
+
function __sitem$1(stylePath, __s, __extra) {
|
|
567
|
+
ssrHeadEl("rnh-14rmkgy", "link", {
|
|
568
|
+
"rel": "stylesheet",
|
|
569
|
+
"href": assetSrc(page.route, stylePath)
|
|
570
|
+
}, null);
|
|
571
|
+
return "";
|
|
572
|
+
}
|
|
573
|
+
function __sif$2(__props, __s, __extra) {
|
|
574
|
+
return "<img class=\"brandLogo\"" + ssrAttr("src", assetSrc(page.route, logo.image), "img") + " alt=\"\"/>";
|
|
575
|
+
}
|
|
576
|
+
function __sif$3(__props, __s, __extra) {
|
|
577
|
+
return "<span>" + ssrText(logo.text) + "</span>";
|
|
578
|
+
}
|
|
579
|
+
function __sif$4(__props, __s, __extra) {
|
|
580
|
+
return "<a class=\"sidebarRepoLink\"" + ssrAttr("href", repositoryUrl, "a") + " aria-label=\"View repository on GitHub\"><span class=\"repoIcon\" aria-hidden=\"true\"></span><span>" + ssrText(repositoryLabel) + "</span></a>";
|
|
581
|
+
}
|
|
582
|
+
return ssrBlock(favicon ? ssrBlock(__sif$0(void 0, __s)) : "") + ssrBlock((() => {
|
|
583
|
+
const __items = Array.from(clientStylePaths ?? []);
|
|
584
|
+
return __items.length === 0 ? "" : __items.map((__it) => ssrBlock(__sitem$1(__it, __s))).join("");
|
|
585
|
+
})()) + "<div class=\"pageShell\"><aside id=\"lildocs-sidebar\" class=\"sidebar\"><div class=\"sidebarContents\"><div class=\"sidebarHeader\"><a class=\"brand\"" + ssrAttr("href", relativeUrl(page.route, "index.html"), "a") + ">" + ssrBlock(logo.image ? ssrBlock(__sif$2(void 0, __s)) : "") + ssrBlock(logo.text ? ssrBlock(__sif$3(void 0, __s)) : "") + "</a><button id=\"lildocs-sidebar-toggle\" class=\"sidebarToggle\" type=\"button\" aria-label=\"Collapse sidebar\" aria-controls=\"lildocs-sidebar\" aria-expanded=\"false\"><span class=\"sidebarCollapseIcon ti ti-layout-sidebar-left-collapse\" aria-hidden=\"true\"></span><span class=\"sidebarMenuIcon ti ti-menu-2\" aria-hidden=\"true\"></span></button></div><div id=\"lildocs-search-root\" class=\"searchBox\"><span class=\"searchIcon ti ti-search\" aria-hidden=\"true\"></span><input id=\"lildocs-search-input\" type=\"search\" placeholder=\"Search docs\" aria-label=\"Search docs\"/></div><nav id=\"lildocs-sidebar-navigation\" aria-label=\"Documentation navigation\">" + ssrComponent(__s, NavList, {
|
|
586
|
+
"items": nav,
|
|
587
|
+
"currentRoute": page.route,
|
|
588
|
+
"pageRoute": page.route
|
|
589
|
+
}) + "</nav>" + ssrBlock(repositoryUrl && repositoryLabel ? ssrBlock(__sif$4(void 0, __s)) : "") + "</div></aside><div class=\"sidebarFloatingControls\"><button id=\"lildocs-sidebar-expand\" class=\"sidebarToggle\" type=\"button\" aria-label=\"Expand sidebar\" aria-controls=\"lildocs-sidebar\"><span class=\"ti ti-layout-sidebar-left-expand\" aria-hidden=\"true\"></span></button><button id=\"lildocs-floating-search\" class=\"sidebarToggle\" type=\"button\" aria-label=\"Search docs\"><span class=\"ti ti-search\" aria-hidden=\"true\"></span></button></div><div id=\"swup\" class=\"contentGrid\"><main" + ssrAttr("class", `content transition-${transition}`, "main") + "><article>" + ssrComponent(__s, GroupBreadcrumbs, { "route": page.route }) + "<div>" + (ssrInnerHtml([{ __html: page.html ?? "" }]) ?? "") + "</div></article>" + ssrComponent(__s, PageNav, { "pageNavigation": pageNavigation }) + "</main><aside" + ssrAttr("class", `toc transition-${transition}`, "aside") + ">" + ssrComponent(__s, Toc, {
|
|
590
|
+
"headings": page.headings,
|
|
591
|
+
"repositoryUrl": repositoryUrl,
|
|
592
|
+
"repositoryLabel": repositoryLabel
|
|
593
|
+
}) + "</aside></div></div><script>" + (ssrInnerHtml([{ __html: `window.lildocsSearchUrl = ${JSON.stringify(rootRelativeUrl(page.route, "search-index.json"))};${issueUrl ? `window.lildocsIssueUrl = ${JSON.stringify(issueUrl)};` : ""}${dev ? "window.lildocsDev = true;" : ""}` }]) ?? "") + "<\/script><script type=\"application/json\" id=\"lildocs-search-index\">" + (ssrInnerHtml([{ __html: searchIndexJson }]) ?? "") + "<\/script><div id=\"lildocs-overlay-root\"></div><script type=\"module\"" + ssrAttr("src", assetSrc(page.route, clientScriptPath), "script") + "><\/script>";
|
|
594
|
+
};
|
|
595
|
+
function issueUrlForRepository(repositoryUrl) {
|
|
596
|
+
if (!repositoryUrl) return;
|
|
597
|
+
let url;
|
|
598
|
+
try {
|
|
599
|
+
url = new URL(repositoryUrl);
|
|
600
|
+
} catch {
|
|
601
|
+
return;
|
|
602
|
+
}
|
|
603
|
+
if (url.hostname !== "github.com") return;
|
|
604
|
+
const [owner, repo] = url.pathname.split("/").filter(Boolean);
|
|
605
|
+
if (!owner || !repo) return;
|
|
606
|
+
return `https://github.com/${owner}/${repo}/issues/new`;
|
|
607
|
+
}
|
|
608
|
+
function repositoryLabelForUrl(repositoryUrl) {
|
|
609
|
+
if (!repositoryUrl) return;
|
|
610
|
+
try {
|
|
611
|
+
const url = new URL(repositoryUrl);
|
|
612
|
+
if (url.hostname !== "github.com") return;
|
|
613
|
+
const [owner, repo] = url.pathname.split("/").filter(Boolean);
|
|
614
|
+
return owner && repo ? `${owner}/${repo}` : void 0;
|
|
615
|
+
} catch {
|
|
616
|
+
return;
|
|
617
|
+
}
|
|
618
|
+
}
|
|
619
|
+
function assetSrc(pageRoute, image) {
|
|
620
|
+
if (/^(?:[a-z]+:)?\/\//i.test(image) || image.startsWith("data:") || image.startsWith("/")) return image;
|
|
621
|
+
return rootRelativeUrl(pageRoute, image);
|
|
622
|
+
}
|
|
623
|
+
var GroupBreadcrumbs = function GroupBreadcrumbs({ route }, __s, __extra) {
|
|
624
|
+
const dir = route.split("/").slice(0, -1);
|
|
625
|
+
if (dir.length === 0) return null;
|
|
626
|
+
return "<p class=\"groupBreadcrumbs\">" + ssrText(dir.map(titleFromDir).join(" / ")) + "</p>";
|
|
627
|
+
};
|
|
628
|
+
function titleFromDir(dir) {
|
|
629
|
+
return dir.replace(/[-_]+/g, " ").replace(/\S+/g, (word) => `${word[0]?.toLocaleUpperCase() ?? ""}${word.slice(1)}`);
|
|
630
|
+
}
|
|
631
|
+
var PageNav = function PageNav({ pageNavigation }, __s, __extra) {
|
|
632
|
+
if (!pageNavigation?.next) return null;
|
|
633
|
+
return "<nav class=\"pageNav\" aria-label=\"Page navigation\"><p>Next: <a rel=\"next\"" + ssrAttr("href", pageNavigation.next.href, "a") + ">" + ssrText(pageNavigation.next.title) + "</a></p></nav>";
|
|
634
|
+
};
|
|
635
|
+
var NavList = function NavList({ items, currentRoute, pageRoute }, __s, __extra) {
|
|
636
|
+
function __sitem$5(item, __s, __extra) {
|
|
637
|
+
const isReferenceGroup = item.route === "reference/index.html";
|
|
638
|
+
function __sif$6(__props, __s, __extra) {
|
|
639
|
+
return "<span class=\"navFolder\">" + ssrText(item.title) + "</span>" + ssrComponent(__s, NavList, {
|
|
640
|
+
"items": flattenNavPages(item.children),
|
|
641
|
+
"currentRoute": currentRoute,
|
|
642
|
+
"pageRoute": pageRoute
|
|
643
|
+
});
|
|
644
|
+
}
|
|
645
|
+
function __selse$7(__props, __s, __extra) {
|
|
646
|
+
function __sif$8(__props, __s, __extra) {
|
|
647
|
+
return "<details class=\"navDisclosure\"" + ssrAttr("open", isActiveBranch(item, currentRoute), "details") + "><summary" + ssrAttr("class", item.route === currentRoute ? "active" : void 0, "summary") + ">" + ssrText(item.title) + "</summary>" + ssrComponent(__s, NavList, {
|
|
648
|
+
"items": item.children,
|
|
649
|
+
"currentRoute": currentRoute,
|
|
650
|
+
"pageRoute": pageRoute
|
|
651
|
+
}) + "</details>";
|
|
652
|
+
}
|
|
653
|
+
function __selse$9(__props, __s, __extra) {
|
|
654
|
+
function __sif$10(__props, __s, __extra) {
|
|
655
|
+
return "<span class=\"navFolder\">" + ssrText(item.title) + "</span>";
|
|
656
|
+
}
|
|
657
|
+
function __selse$11(__props, __s, __extra) {
|
|
658
|
+
return "<a" + ssrAttr("class", item.route === currentRoute ? "active" : void 0, "a") + ssrAttr("href", relativeUrl(pageRoute, item.route), "a") + ">" + ssrText(item.title) + "</a>";
|
|
659
|
+
}
|
|
660
|
+
return ssrBlock(item.children.length > 0 ? ssrBlock(__sif$10(void 0, __s)) : ssrBlock(__selse$11(void 0, __s)));
|
|
661
|
+
}
|
|
662
|
+
return ssrBlock(item.children.length > 0 && item.hasPage ? ssrBlock(__sif$8(void 0, __s)) : ssrBlock(__selse$9(void 0, __s)));
|
|
663
|
+
}
|
|
664
|
+
function __sif$12(__props, __s, __extra) {
|
|
665
|
+
return ssrComponent(__s, NavList, {
|
|
666
|
+
"items": item.children,
|
|
667
|
+
"currentRoute": currentRoute,
|
|
668
|
+
"pageRoute": pageRoute
|
|
669
|
+
});
|
|
670
|
+
}
|
|
671
|
+
return "<li" + ssrAttr("class", item.children.length > 0 ? "navGroup" : void 0, "li") + ">" + ssrBlock(isReferenceGroup ? ssrBlock(__sif$6(void 0, __s)) : ssrBlock(__selse$7(void 0, __s))) + ssrBlock(item.children.length > 0 && !item.hasPage && !isReferenceGroup ? ssrBlock(__sif$12(void 0, __s)) : "") + "</li>";
|
|
672
|
+
}
|
|
673
|
+
return "<ul class=\"navList\">" + ssrBlock((() => {
|
|
674
|
+
const __items = Array.from(items ?? []);
|
|
675
|
+
return __items.length === 0 ? "" : __items.map((__it) => ssrBlock(__sitem$5(__it, __s))).join("");
|
|
676
|
+
})()) + "</ul>";
|
|
677
|
+
};
|
|
678
|
+
function flattenNavPages(items) {
|
|
679
|
+
return items.flatMap((item) => [...item.hasPage ? [{
|
|
680
|
+
...item,
|
|
681
|
+
children: []
|
|
682
|
+
}] : [], ...flattenNavPages(item.children)]);
|
|
683
|
+
}
|
|
684
|
+
function isActiveBranch(item, currentRoute) {
|
|
685
|
+
return item.route === currentRoute || item.children.some((child) => isActiveBranch(child, currentRoute));
|
|
686
|
+
}
|
|
687
|
+
var Toc = function Toc({ headings, repositoryUrl, repositoryLabel }, __s, __extra) {
|
|
688
|
+
const tocHeadings = headings.filter((heading) => heading.depth > 1 && heading.depth < 4);
|
|
689
|
+
if (tocHeadings.length === 0 && !repositoryLabel) return null;
|
|
690
|
+
function __sif$13(__props, __s, __extra) {
|
|
691
|
+
function __sitem$14(heading, __s, __extra) {
|
|
692
|
+
return "<li" + ssrAttr("class", `tocDepth${heading.depth}`, "li") + "><a" + ssrAttr("href", `#${heading.id}`, "a") + ">" + ssrText(heading.text) + "</a></li>";
|
|
693
|
+
}
|
|
694
|
+
return "<p class=\"tocTitle\"><span class=\"ti ti-align-left\" aria-hidden=\"true\"></span>\n On this page\n </p><div class=\"tocLinks\" data-toc-links><span class=\"tocRail\" aria-hidden=\"true\"></span><span class=\"tocVisibility\" data-toc-visibility aria-hidden=\"true\"></span><ul>" + ssrBlock((() => {
|
|
695
|
+
const __items = Array.from(tocHeadings ?? []);
|
|
696
|
+
return __items.length === 0 ? "" : __items.map((__it) => ssrBlock(__sitem$14(__it, __s))).join("");
|
|
697
|
+
})()) + "</ul></div>";
|
|
698
|
+
}
|
|
699
|
+
function __sif$15(__props, __s, __extra) {
|
|
700
|
+
return "<a class=\"tocRepoLink\"" + ssrAttr("href", repositoryUrl, "a") + " aria-label=\"View repository on GitHub\"><span class=\"repoIcon\" aria-hidden=\"true\"></span><span>" + ssrText(repositoryLabel) + "</span></a>";
|
|
701
|
+
}
|
|
702
|
+
return "<nav aria-label=\"Table of contents\">" + ssrBlock(tocHeadings.length > 0 ? ssrBlock(__sif$13(void 0, __s)) : "") + ssrBlock(repositoryUrl && repositoryLabel ? ssrBlock(__sif$15(void 0, __s)) : "") + "</nav>";
|
|
703
|
+
};
|
|
704
|
+
//#endregion
|
|
705
|
+
//#region src/render/renderPage.tsrx
|
|
706
|
+
function renderPage(props) {
|
|
707
|
+
const { html, css } = renderToStaticMarkup(Layout, props);
|
|
708
|
+
const bodyStart = html.indexOf("<div class=\"pageShell\">");
|
|
709
|
+
const head = bodyStart >= 0 ? html.slice(0, bodyStart) : "";
|
|
710
|
+
const body = bodyStart >= 0 ? html.slice(bodyStart) : html;
|
|
711
|
+
return `<!doctype html><html lang="en"><head>${head}<style>${props.css}</style>${css}</head><body>${body}</body></html>`;
|
|
712
|
+
}
|
|
713
|
+
//#endregion
|
|
714
|
+
export { renderPage };
|