typerighter 0.57.0 → 0.57.1
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/app-D-dbbyVD.js +7830 -0
- package/dist/{cli-tCqB1T4m.js → cli-aIilXlJS.js} +5 -5
- package/dist/cli.js +1 -1
- package/dist/client/app/index.d.ts +9 -4
- package/dist/client/app/index.d.ts.map +1 -1
- package/dist/client/theme-default/composables/useCopyCode.d.ts +2 -0
- package/dist/client/theme-default/composables/useCopyCode.d.ts.map +1 -0
- package/dist/client/theme-default/composables/useHotkey.d.ts +13 -0
- package/dist/client/theme-default/composables/useHotkey.d.ts.map +1 -0
- package/dist/client/theme-default/index.d.ts +25 -0
- package/dist/client/theme-default/index.d.ts.map +1 -0
- package/dist/client/theme-default/utils/keys.d.ts +58 -0
- package/dist/client/theme-default/utils/keys.d.ts.map +1 -0
- package/dist/client/theme-default.js +3 -3892
- package/dist/client.js +3 -3
- package/dist/index.js +2 -2
- package/dist/{init-BVj3BWS6.js → init-Bvm3vDph.js} +1 -1
- package/dist/node/lib/codegen/app-entry.d.ts.map +1 -1
- package/dist/{page-BreMA8X5.js → page-BbSO0VG8.js} +2 -3
- package/dist/prerenderWorker.js +1 -1
- package/dist/typerighter.css +1 -1
- package/dist/useSidebarConfig-0kMemgUS.js +94 -0
- package/dist/{vite-DKLVYuLb.js → vite-ltcrEmat.js} +376 -436
- package/dist/vite.js +1 -1
- package/package.json +3 -3
- package/dist/app-C7F5xTZI.js +0 -3929
- package/dist/useSidebarConfig-DUcdHn0W.js +0 -33
- package/dist/useTheme-BF8TNao6.js +0 -65
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { n as
|
|
3
|
-
import { t as
|
|
4
|
-
import { a as
|
|
1
|
+
import { B as e, D as t, F as n, H as r, I as i, O as a, R as o, T as s, U as c, Z as l, _ as u, b as d, c as f, d as p, et as m, g as h, h as g, i as _, nt as v, p as y, q as b, rt as x, v as S, x as ee, y as C, z as w } from "./shared-dB08amQA.js";
|
|
2
|
+
import { n as T, t as E } from "./page-BbSO0VG8.js";
|
|
3
|
+
import { t as D } from "./temml-CjI4drVW.js";
|
|
4
|
+
import { a as O, i as te, n as ne, r as re } from "./context-CPrHBM3S.js";
|
|
5
5
|
import { t as ie } from "./es-B_QJMowB.js";
|
|
6
|
-
import
|
|
7
|
-
import
|
|
6
|
+
import k, { resolve as A } from "node:path";
|
|
7
|
+
import j from "picocolors";
|
|
8
8
|
import ae from "@tailwindcss/vite";
|
|
9
9
|
import oe from "@vitejs/plugin-vue";
|
|
10
|
-
import { build as se, normalizePath as
|
|
11
|
-
import
|
|
10
|
+
import { build as se, normalizePath as M } from "vite";
|
|
11
|
+
import N, { readdir as ce } from "node:fs/promises";
|
|
12
12
|
import { fileURLToPath as le } from "node:url";
|
|
13
13
|
import ue from "node:os";
|
|
14
14
|
import { Worker as de } from "node:worker_threads";
|
|
15
|
-
import
|
|
15
|
+
import P, { createReadStream as fe, existsSync as pe, globSync as me, readFileSync as he, statSync as ge } from "node:fs";
|
|
16
16
|
import { createRequire as _e } from "node:module";
|
|
17
17
|
import { createChecker as ve, createCheckerByJson as ye } from "vue-component-meta";
|
|
18
18
|
import { createHighlighter as be, guessEmbeddedLanguages as xe, isSpecialLang as Se } from "shiki";
|
|
@@ -62,13 +62,13 @@ var Ce = class {
|
|
|
62
62
|
}
|
|
63
63
|
};
|
|
64
64
|
// src/node/build/seo/sitemap.ts
|
|
65
|
-
function we(e, t,
|
|
66
|
-
let a =
|
|
65
|
+
function we(e, t, r, i) {
|
|
66
|
+
let a = r ?? "";
|
|
67
67
|
return `<?xml version="1.0" encoding="UTF-8"?>
|
|
68
68
|
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
|
|
69
69
|
${e.map((e) => {
|
|
70
|
-
let
|
|
71
|
-
return ` <url><loc>${
|
|
70
|
+
let r = f(a + t + n(e)), o = i?.get(e);
|
|
71
|
+
return ` <url><loc>${r}</loc>${o === void 0 ? "" : `<lastmod>${_(o * 1e3)}</lastmod>`}</url>`;
|
|
72
72
|
}).join("\n")}
|
|
73
73
|
</urlset>
|
|
74
74
|
`;
|
|
@@ -81,13 +81,13 @@ Sitemap: ${e}${t}sitemap.xml
|
|
|
81
81
|
`;
|
|
82
82
|
}
|
|
83
83
|
// src/node/build/seo/feed.ts
|
|
84
|
-
function Ee(e, t, n,
|
|
84
|
+
function Ee(e, t, n, i, a, o) {
|
|
85
85
|
let s = [...e].filter((e) => e.fileMetadata.mtimeSecs > 0).sort((e, t) => t.fileMetadata.mtimeSecs - e.fileMetadata.mtimeSecs).slice(0, 50).map((e) => {
|
|
86
|
-
let
|
|
86
|
+
let i = r(e.filepath), a = `${n}${t}${i}`, o = (/* @__PURE__ */ new Date(e.fileMetadata.mtimeSecs * 1e3)).toUTCString(), s = f(e.label ?? i), c = e.excerpt === void 0 ? "" : `<![CDATA[${e.excerpt}]]>`;
|
|
87
87
|
return ` <item>
|
|
88
88
|
<title>${s}</title>
|
|
89
|
-
<link>${
|
|
90
|
-
<guid>${
|
|
89
|
+
<link>${f(a)}</link>
|
|
90
|
+
<guid>${f(a)}</guid>
|
|
91
91
|
<pubDate>${o}</pubDate>
|
|
92
92
|
<description>${c}</description>
|
|
93
93
|
</item>`;
|
|
@@ -95,11 +95,11 @@ function Ee(e, t, n, r, a, o) {
|
|
|
95
95
|
return `<?xml version="1.0" encoding="UTF-8"?>
|
|
96
96
|
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
|
|
97
97
|
<channel>
|
|
98
|
-
<title>${
|
|
99
|
-
<link>${
|
|
100
|
-
<description>${
|
|
98
|
+
<title>${f(i)}</title>
|
|
99
|
+
<link>${f(n + t)}</link>
|
|
100
|
+
<description>${f(a)}</description>
|
|
101
101
|
<language>${o}</language>
|
|
102
|
-
<atom:link href="${
|
|
102
|
+
<atom:link href="${f(n + t)}feed.xml" rel="self" type="application/rss+xml"/>
|
|
103
103
|
${s}
|
|
104
104
|
</channel>
|
|
105
105
|
</rss>
|
|
@@ -107,7 +107,7 @@ ${s}
|
|
|
107
107
|
}
|
|
108
108
|
// src/node/build/fonts.ts
|
|
109
109
|
function De(e) {
|
|
110
|
-
let t =
|
|
110
|
+
let t = k.basename(e);
|
|
111
111
|
return t.endsWith(".woff2") && t.includes("-latin-") && !t.includes("-latin-ext-");
|
|
112
112
|
}
|
|
113
113
|
// src/node/build/prerender.ts
|
|
@@ -118,7 +118,7 @@ async function ke(e) {
|
|
|
118
118
|
}
|
|
119
119
|
async function Ae(e, t, n) {
|
|
120
120
|
let r = new Ce({
|
|
121
|
-
filename:
|
|
121
|
+
filename: k.resolve(le(import.meta.url), "../prerenderWorker.js"),
|
|
122
122
|
workerData: {
|
|
123
123
|
ssrEntryPath: e.ssrEntryPath,
|
|
124
124
|
base: e.base,
|
|
@@ -132,21 +132,21 @@ async function Ae(e, t, n) {
|
|
|
132
132
|
}), i = 0, a = e.pageRoutes.length;
|
|
133
133
|
try {
|
|
134
134
|
await Promise.all(e.pageRoutes.map(async (t) => {
|
|
135
|
-
let n = await r.run(t), o =
|
|
136
|
-
await
|
|
135
|
+
let n = await r.run(t), o = k.join(e.outDir, n.fileName);
|
|
136
|
+
await N.mkdir(k.dirname(o), { recursive: !0 }), await N.writeFile(o, n.html), i++, e.progress?.update(i, a);
|
|
137
137
|
}));
|
|
138
138
|
} finally {
|
|
139
139
|
await r.destroy();
|
|
140
140
|
}
|
|
141
141
|
}
|
|
142
|
-
async function je(e, t,
|
|
142
|
+
async function je(e, t, r) {
|
|
143
143
|
let i = await (await import(e.ssrEntryPath)).createRenderer(), a = e.pageRoutes.length, o = 0;
|
|
144
144
|
for (let s of e.pageRoutes) {
|
|
145
|
-
let c = await i(s), l =
|
|
145
|
+
let c = await i(s), l = E(c.pageData, s, {
|
|
146
146
|
base: e.base,
|
|
147
147
|
origin: e.origin,
|
|
148
148
|
author: e.author
|
|
149
|
-
}), u =
|
|
149
|
+
}), u = T({
|
|
150
150
|
title: l.title,
|
|
151
151
|
description: l.description,
|
|
152
152
|
siteTitle: e.siteTitle,
|
|
@@ -159,14 +159,14 @@ async function je(e, t, n) {
|
|
|
159
159
|
ogType: l.ogType,
|
|
160
160
|
ogImagePath: l.ogImagePath,
|
|
161
161
|
jsonLdBlocks: l.jsonLdBlocks,
|
|
162
|
-
headExtra:
|
|
162
|
+
headExtra: r,
|
|
163
163
|
appContent: c.html
|
|
164
|
-
}), d = l.isHomepage ? "index.html" : `${
|
|
165
|
-
await
|
|
164
|
+
}), d = l.isHomepage ? "index.html" : `${n(s)}.html`, f = k.join(e.outDir, d);
|
|
165
|
+
await N.mkdir(k.dirname(f), { recursive: !0 }), await N.writeFile(f, u), o++, e.progress?.update(o, a);
|
|
166
166
|
}
|
|
167
167
|
}
|
|
168
168
|
async function Me(e) {
|
|
169
|
-
let t =
|
|
169
|
+
let t = k.join(e, ".vite", "manifest.json"), n = await N.readFile(t, "utf-8"), r = JSON.parse(n), i = "", a = [], o = [];
|
|
170
170
|
for (let e of Object.values(r)) e.isEntry ? (i = e.file, e.css && a.push(...e.css)) : De(e.file) && o.push(e.file);
|
|
171
171
|
return {
|
|
172
172
|
clientEntry: i,
|
|
@@ -175,90 +175,56 @@ async function Me(e) {
|
|
|
175
175
|
};
|
|
176
176
|
}
|
|
177
177
|
// src/node/lib/codegen/app-entry.ts
|
|
178
|
-
function Ne(
|
|
179
|
-
let { rootDir:
|
|
180
|
-
title:
|
|
181
|
-
description:
|
|
182
|
-
basePath:
|
|
183
|
-
origin:
|
|
184
|
-
lang:
|
|
185
|
-
repo:
|
|
186
|
-
author:
|
|
187
|
-
license:
|
|
188
|
-
rootDir:
|
|
189
|
-
nav:
|
|
178
|
+
function Ne(e, t) {
|
|
179
|
+
let { rootDir: n = ".", mountPath: r = "", userComponents: i = [] } = e, a = [r, n === "." ? "" : n].filter(Boolean).join("/"), o = i.map((e) => `import ${e.name} from ${JSON.stringify(e.absolutePath)};`).join("\n"), s = i.map((e) => `app.component(${JSON.stringify(e.name)}, ${e.name});`).join("\n"), c = JSON.stringify({
|
|
180
|
+
title: e.siteTitle,
|
|
181
|
+
description: e.siteDescription,
|
|
182
|
+
basePath: e.basePath ?? "/",
|
|
183
|
+
origin: e.origin,
|
|
184
|
+
lang: e.lang,
|
|
185
|
+
repo: e.repo,
|
|
186
|
+
author: e.author,
|
|
187
|
+
license: e.license,
|
|
188
|
+
rootDir: n === "." ? void 0 : n,
|
|
189
|
+
nav: e.nav
|
|
190
190
|
});
|
|
191
191
|
return `
|
|
192
|
-
${[
|
|
192
|
+
${[o, "import 'typerighter/style.css';"].filter(Boolean).join("\n")}
|
|
193
193
|
import 'typerighter/fonts.css';
|
|
194
194
|
import('typerighter/math.css');
|
|
195
195
|
import { createTypedownApp } from 'typerighter/client';
|
|
196
|
-
import {
|
|
197
|
-
import {
|
|
198
|
-
import
|
|
199
|
-
import
|
|
200
|
-
import
|
|
201
|
-
import initialSiteData from '${n.siteData}';
|
|
202
|
-
let pages = initialPages;
|
|
203
|
-
let siteData = initialSiteData;
|
|
204
|
-
const contentExts = ${JSON.stringify(e)};
|
|
205
|
-
|
|
206
|
-
function findPage(base) {
|
|
207
|
-
for (const ext of contentExts) {
|
|
208
|
-
const key = base + ext;
|
|
209
|
-
if (pages[key]) return pages[key];
|
|
210
|
-
}
|
|
211
|
-
}
|
|
212
|
-
|
|
213
|
-
async function loadPageModule(pagePath) {
|
|
214
|
-
const loader = findPage(path.join('/', '${o}', pagePath));
|
|
215
|
-
if (loader) return loader();
|
|
216
|
-
|
|
217
|
-
if (isIndexUrl(pagePath)) {
|
|
218
|
-
const dirPath = getDirectoryFromPageUrl(pagePath);
|
|
219
|
-
const dir = siteData.directoryListings[dirPath];
|
|
220
|
-
if (dir) return {
|
|
221
|
-
default: { name: 'DirectoryIndex', render() { return h(TdDirectoryIndex); } },
|
|
222
|
-
pageData: { frontmatter: {}, headings: [], title: dir.title },
|
|
223
|
-
};
|
|
224
|
-
}
|
|
196
|
+
import { path } from 'typerighter/shared';
|
|
197
|
+
import { shallowRef } from 'vue';
|
|
198
|
+
import theme from '${t.theme}';
|
|
199
|
+
import { pages as initialPages } from '${t.pages}';
|
|
200
|
+
import initialSiteData from '${t.siteData}';
|
|
225
201
|
|
|
226
|
-
|
|
227
|
-
}
|
|
228
|
-
|
|
229
|
-
const { app, router, searchIndex: searchIndexRef } = await createTypedownApp(loadPageModule, theme, ${l}, initialSiteData);
|
|
230
|
-
${c}
|
|
202
|
+
const siteData = shallowRef({ ...initialSiteData, pages: initialPages });
|
|
203
|
+
const { app, router, searchIndex: searchIndexRef } = await createTypedownApp({ ...${c}, theme }, siteData);
|
|
204
|
+
${s}
|
|
231
205
|
app.mount('#app');
|
|
232
206
|
|
|
233
207
|
// Load search index in the background after the app is mounted
|
|
234
|
-
import('${
|
|
208
|
+
import('${t.searchIndex}').then((m) => { searchIndexRef.value = m.default; });
|
|
235
209
|
|
|
236
210
|
// Accept HMR so modules update without a full page reload
|
|
237
211
|
if (import.meta.hot) {
|
|
238
|
-
import.meta.hot.accept('${
|
|
239
|
-
if (
|
|
240
|
-
const base = path.join('/', '${o}', router.route.path);
|
|
241
|
-
const hadPage = !!findPage(base);
|
|
242
|
-
pages = m.pages;
|
|
243
|
-
const hasPage = !!findPage(base);
|
|
244
|
-
// Current page was removed (deleted or renamed away)
|
|
245
|
-
if (hadPage && !hasPage) router.go(getParentUrl(router.route.path));
|
|
246
|
-
// A real page appeared where a directory index was shown
|
|
247
|
-
if (!hadPage && hasPage) router.go(router.route.path);
|
|
212
|
+
import.meta.hot.accept('${t.pages}', (m) => {
|
|
213
|
+
if (m) siteData.value = { ...siteData.value, pages: m.pages };
|
|
248
214
|
});
|
|
249
215
|
|
|
250
|
-
import.meta.hot.accept('${
|
|
216
|
+
import.meta.hot.accept('${t.searchIndex}', (m) => {
|
|
251
217
|
if (m) searchIndexRef.value = m.default;
|
|
252
218
|
});
|
|
253
219
|
|
|
254
|
-
import.meta.hot.accept('${
|
|
255
|
-
if (m) siteData = m.default;
|
|
220
|
+
import.meta.hot.accept('${t.siteData}', (m) => {
|
|
221
|
+
if (m) siteData.value = { ...m.default, pages: siteData.value.pages };
|
|
256
222
|
});
|
|
257
223
|
|
|
258
224
|
// Update route.data directly when content changes - Vue SFC setup only re-runs on script block changes
|
|
259
|
-
import.meta.hot.on('${
|
|
260
|
-
const eventBase = path.join('/', '${
|
|
261
|
-
const routeBase = path.join('/', '${
|
|
225
|
+
import.meta.hot.on('${t.pageDataEvent}', ({ filepath, pageData }) => {
|
|
226
|
+
const eventBase = path.join('/', '${a}', path.stripExtension(filepath));
|
|
227
|
+
const routeBase = path.join('/', '${a}', router.route.path);
|
|
262
228
|
if (eventBase === routeBase) {
|
|
263
229
|
router.route.data = pageData;
|
|
264
230
|
}
|
|
@@ -267,11 +233,11 @@ if (import.meta.hot) {
|
|
|
267
233
|
`;
|
|
268
234
|
}
|
|
269
235
|
// src/node/lib/codegen/theme.ts
|
|
270
|
-
var
|
|
236
|
+
var F = "typerighter/client/theme-default";
|
|
271
237
|
function Pe(e, t) {
|
|
272
|
-
let n = e?.notFound ? `import CustomNotFound from ${JSON.stringify(t ?
|
|
238
|
+
let n = e?.notFound ? `import CustomNotFound from ${JSON.stringify(t ? k.resolve(t, e.notFound) : e.notFound)};` : "", r = e?.notFound ? ", NotFound: CustomNotFound" : "";
|
|
273
239
|
if (e?.component) {
|
|
274
|
-
let i = t ?
|
|
240
|
+
let i = t ? k.resolve(t, e.component) : e.component;
|
|
275
241
|
return [
|
|
276
242
|
`import CustomLayout from ${JSON.stringify(i)};`,
|
|
277
243
|
n,
|
|
@@ -280,24 +246,24 @@ function Pe(e, t) {
|
|
|
280
246
|
}
|
|
281
247
|
let i = Object.entries(e?.slots ?? {});
|
|
282
248
|
if (0 < i.length) {
|
|
283
|
-
let e = i.map(([e, t]) => `${JSON.stringify(
|
|
249
|
+
let e = i.map(([e, t]) => `${JSON.stringify(b(e))}: () => h(resolveComponent(${JSON.stringify(t)}))`).join(", ");
|
|
284
250
|
return [
|
|
285
|
-
`import DefaultTheme from ${JSON.stringify(
|
|
251
|
+
`import DefaultTheme from ${JSON.stringify(F)};`,
|
|
286
252
|
"import { h, resolveComponent } from 'vue';",
|
|
287
253
|
n,
|
|
288
254
|
`export default { Layout: { render() { return h(DefaultTheme.Layout, null, { ${e} }); } }${r} };`
|
|
289
255
|
].filter(Boolean).join("\n");
|
|
290
256
|
}
|
|
291
257
|
return n ? [
|
|
292
|
-
`import DefaultTheme from ${JSON.stringify(
|
|
258
|
+
`import DefaultTheme from ${JSON.stringify(F)};`,
|
|
293
259
|
n,
|
|
294
260
|
`export default { ...DefaultTheme${r} };`
|
|
295
|
-
].join("\n") : `export { default } from ${JSON.stringify(
|
|
261
|
+
].join("\n") : `export { default } from ${JSON.stringify(F)};`;
|
|
296
262
|
}
|
|
297
263
|
// src/node/lib/components.ts
|
|
298
264
|
function Fe(e) {
|
|
299
|
-
let t =
|
|
300
|
-
if (
|
|
265
|
+
let t = k.join(e, "tsconfig.json");
|
|
266
|
+
if (P.existsSync(t)) return ve(t);
|
|
301
267
|
let n = Ie(e);
|
|
302
268
|
return ye(e, { compilerOptions: {
|
|
303
269
|
strict: !1,
|
|
@@ -306,10 +272,10 @@ function Fe(e) {
|
|
|
306
272
|
...n && { paths: n }
|
|
307
273
|
} });
|
|
308
274
|
}
|
|
309
|
-
async function
|
|
275
|
+
async function I(e, t) {
|
|
310
276
|
let n = [];
|
|
311
277
|
for (let r of e) if (r.kind === "dir") {
|
|
312
|
-
let e =
|
|
278
|
+
let e = k.resolve(t, r.path), i;
|
|
313
279
|
try {
|
|
314
280
|
i = await ce(e, { withFileTypes: !0 });
|
|
315
281
|
} catch {
|
|
@@ -317,39 +283,39 @@ async function L(e, t) {
|
|
|
317
283
|
}
|
|
318
284
|
for (let t of i) if (t.isFile() && t.name.endsWith(".vue")) n.push({
|
|
319
285
|
name: t.name.slice(0, -4),
|
|
320
|
-
absolutePath:
|
|
286
|
+
absolutePath: k.join(e, t.name)
|
|
321
287
|
});
|
|
322
288
|
else if (t.isDirectory()) {
|
|
323
|
-
let r =
|
|
324
|
-
|
|
289
|
+
let r = k.join(e, t.name, "index.vue");
|
|
290
|
+
P.existsSync(r) && n.push({
|
|
325
291
|
name: t.name,
|
|
326
292
|
absolutePath: r
|
|
327
293
|
});
|
|
328
294
|
}
|
|
329
295
|
} else n.push({
|
|
330
296
|
name: r.name,
|
|
331
|
-
absolutePath:
|
|
297
|
+
absolutePath: k.resolve(t, r.source)
|
|
332
298
|
});
|
|
333
299
|
return n;
|
|
334
300
|
}
|
|
335
301
|
function Ie(e) {
|
|
336
302
|
try {
|
|
337
|
-
let t = _e(
|
|
303
|
+
let t = _e(k.join(e, "package.json")), n = k.dirname(t.resolve("vue/package.json"));
|
|
338
304
|
return {
|
|
339
305
|
vue: [n],
|
|
340
|
-
"vue/*": [
|
|
306
|
+
"vue/*": [k.join(n, "*")]
|
|
341
307
|
};
|
|
342
308
|
} catch {
|
|
343
309
|
return;
|
|
344
310
|
}
|
|
345
311
|
}
|
|
346
312
|
// src/node/lib/progress.ts
|
|
347
|
-
var
|
|
313
|
+
var L = [
|
|
348
314
|
"◐",
|
|
349
315
|
"◓",
|
|
350
316
|
"◑",
|
|
351
317
|
"◒"
|
|
352
|
-
],
|
|
318
|
+
], R = class {
|
|
353
319
|
logger;
|
|
354
320
|
label;
|
|
355
321
|
start;
|
|
@@ -357,8 +323,8 @@ var R = [
|
|
|
357
323
|
constructor(e, t) {
|
|
358
324
|
if (this.logger = e, this.label = t, this.start = performance.now(), process.stdout.isTTY) {
|
|
359
325
|
let e = 0;
|
|
360
|
-
process.stdout.write(
|
|
361
|
-
e = (e + 1) %
|
|
326
|
+
process.stdout.write(j.cyan(`${L[0]} ${t}`)), this.spinnerInterval = setInterval(() => {
|
|
327
|
+
e = (e + 1) % L.length, process.stdout.write(`\r${j.cyan(`${L[e]} ${this.label}`)}`);
|
|
362
328
|
}, 120).unref();
|
|
363
329
|
} else this.logger.start(t);
|
|
364
330
|
}
|
|
@@ -370,19 +336,19 @@ var R = [
|
|
|
370
336
|
done(e) {
|
|
371
337
|
this.stopSpinner(), process.stdout.isTTY && process.stdout.write("\r\x1B[K");
|
|
372
338
|
let t = Math.round(performance.now() - this.start);
|
|
373
|
-
this.logger.success(`${e} (${
|
|
339
|
+
this.logger.success(`${e} (${Le(t)})`);
|
|
374
340
|
}
|
|
375
341
|
stopSpinner() {
|
|
376
342
|
this.spinnerInterval &&= (clearInterval(this.spinnerInterval), void 0);
|
|
377
343
|
}
|
|
378
344
|
};
|
|
379
|
-
function
|
|
345
|
+
function Le(e) {
|
|
380
346
|
return e < 1e3 ? `${Math.round(e)}ms` : `${(e / 1e3).toFixed(1)}s`;
|
|
381
347
|
}
|
|
382
348
|
// src/node/build/index.ts
|
|
383
|
-
async function
|
|
384
|
-
let { root: n, logger:
|
|
385
|
-
await
|
|
349
|
+
async function Re(e, t = {}) {
|
|
350
|
+
let { root: n, logger: i } = e, a = k.resolve(n, t.outDir ?? "dist"), o = k.join(a, ".client"), s = k.join(a, ".server");
|
|
351
|
+
await N.rm(a, {
|
|
386
352
|
recursive: !0,
|
|
387
353
|
force: !0
|
|
388
354
|
});
|
|
@@ -390,10 +356,10 @@ async function ze(e, t = {}) {
|
|
|
390
356
|
c.getConfig(),
|
|
391
357
|
c.listFiles(),
|
|
392
358
|
c.listSidebar()
|
|
393
|
-
]), f = l.origin ?? void 0, p = l.author ?? void 0, m = l.license ?? void 0, h = l.repo ?? void 0,
|
|
359
|
+
]), f = l.origin ?? void 0, p = l.author ?? void 0, m = l.license ?? void 0, h = l.repo ?? void 0, _ = t.base ?? l.basePath ?? "/", v = ee(_), y = d.map((e) => ({
|
|
394
360
|
...e,
|
|
395
361
|
header: {}
|
|
396
|
-
})), b =
|
|
362
|
+
})), b = g(y), x = JSON.stringify({
|
|
397
363
|
title: l.siteTitle,
|
|
398
364
|
description: l.siteDescription,
|
|
399
365
|
basePath: v,
|
|
@@ -407,11 +373,11 @@ async function ze(e, t = {}) {
|
|
|
407
373
|
}), S = JSON.stringify({
|
|
408
374
|
ready: !0,
|
|
409
375
|
contentTree: b
|
|
410
|
-
}), C =
|
|
411
|
-
await
|
|
412
|
-
let
|
|
376
|
+
}), C = k.join(n, "node_modules", ".typerighter");
|
|
377
|
+
await N.mkdir(C, { recursive: !0 });
|
|
378
|
+
let w = k.join(C, "client-entry.js"), T = k.join(C, "ssr-entry.js"), E = k.join(C, "theme.js"), D = await I(l.components, n), O = Pe(l.layout ?? void 0, n);
|
|
413
379
|
await Promise.all([
|
|
414
|
-
|
|
380
|
+
N.writeFile(w, Ne({
|
|
415
381
|
rootDir: l.rootDir,
|
|
416
382
|
basePath: v,
|
|
417
383
|
origin: f,
|
|
@@ -422,7 +388,7 @@ async function ze(e, t = {}) {
|
|
|
422
388
|
author: p,
|
|
423
389
|
license: m,
|
|
424
390
|
nav: l.nav,
|
|
425
|
-
userComponents:
|
|
391
|
+
userComponents: D
|
|
426
392
|
}, {
|
|
427
393
|
theme: J,
|
|
428
394
|
pages: W,
|
|
@@ -430,17 +396,17 @@ async function ze(e, t = {}) {
|
|
|
430
396
|
searchIndex: q,
|
|
431
397
|
pageDataEvent: Y
|
|
432
398
|
})),
|
|
433
|
-
|
|
399
|
+
N.writeFile(T, ze({
|
|
434
400
|
rootDir: l.rootDir,
|
|
435
401
|
siteConfig: x,
|
|
436
402
|
siteData: S,
|
|
437
|
-
themeModulePath:
|
|
438
|
-
userComponents:
|
|
403
|
+
themeModulePath: E,
|
|
404
|
+
userComponents: D
|
|
439
405
|
})),
|
|
440
|
-
|
|
406
|
+
N.writeFile(E, O)
|
|
441
407
|
]);
|
|
442
408
|
try {
|
|
443
|
-
let c =
|
|
409
|
+
let c = _n({ context: e }), m = e.createViteLogger(), h = new R(i, "Building client bundle...");
|
|
444
410
|
await se({
|
|
445
411
|
...t.viteConfig,
|
|
446
412
|
root: n,
|
|
@@ -455,13 +421,13 @@ async function ze(e, t = {}) {
|
|
|
455
421
|
emptyOutDir: !0,
|
|
456
422
|
rollupOptions: {
|
|
457
423
|
...t.viteConfig?.build?.rollupOptions,
|
|
458
|
-
input:
|
|
424
|
+
input: w
|
|
459
425
|
}
|
|
460
426
|
}
|
|
461
427
|
});
|
|
462
|
-
let g = await
|
|
428
|
+
let g = await N.readdir(k.join(o, "assets")).catch(() => []);
|
|
463
429
|
h.done(`Client bundle (${g.length} chunks)`);
|
|
464
|
-
let _ = new
|
|
430
|
+
let _ = new R(i, "Building SSR bundle...");
|
|
465
431
|
await se({
|
|
466
432
|
...t.viteConfig,
|
|
467
433
|
root: n,
|
|
@@ -472,18 +438,18 @@ async function ze(e, t = {}) {
|
|
|
472
438
|
build: {
|
|
473
439
|
...t.viteConfig?.build,
|
|
474
440
|
outDir: s,
|
|
475
|
-
ssr:
|
|
441
|
+
ssr: T,
|
|
476
442
|
emptyOutDir: !0
|
|
477
443
|
}
|
|
478
444
|
}), _.done("SSR bundle");
|
|
479
445
|
let y = u.map((e) => {
|
|
480
|
-
let t =
|
|
446
|
+
let t = r(e);
|
|
481
447
|
return t === "index" ? "/" : `/${t}`;
|
|
482
448
|
});
|
|
483
|
-
y.push("/"),
|
|
484
|
-
let x = new
|
|
449
|
+
y.push("/"), Ve(b.entries, y);
|
|
450
|
+
let x = new R(i, "Pre-rendering pages...");
|
|
485
451
|
await ke({
|
|
486
|
-
ssrEntryPath:
|
|
452
|
+
ssrEntryPath: k.join(s, "ssr-entry.js"),
|
|
487
453
|
clientOutDir: o,
|
|
488
454
|
outDir: a,
|
|
489
455
|
base: v,
|
|
@@ -496,77 +462,51 @@ async function ze(e, t = {}) {
|
|
|
496
462
|
}), x.done(`Pre-rendered ${y.length} pages`);
|
|
497
463
|
let S = /* @__PURE__ */ new Map();
|
|
498
464
|
for (let e of d) {
|
|
499
|
-
let t =
|
|
465
|
+
let t = r(e.filepath), n = t === "index" ? "/" : `/${t}`;
|
|
500
466
|
S.set(n, e.fileMetadata.mtimeSecs);
|
|
501
467
|
}
|
|
502
|
-
let
|
|
503
|
-
f !== void 0 && (
|
|
504
|
-
let
|
|
505
|
-
await
|
|
506
|
-
let
|
|
507
|
-
await
|
|
468
|
+
let ee = we(y, v, f, S), C = [N.writeFile(k.join(a, "sitemap.xml"), ee)];
|
|
469
|
+
f !== void 0 && (C.push(N.writeFile(k.join(a, "robots.txt"), Te(f, v))), C.push(N.writeFile(k.join(a, "feed.xml"), Ee(d, v, f, l.siteTitle, l.siteDescription, l.lang)))), await Promise.all(C);
|
|
470
|
+
let E = k.join(o, "assets"), D = k.join(a, "assets");
|
|
471
|
+
await N.cp(E, D, { recursive: !0 }).catch(() => {}), await Be(k.join(n, l.rootDir), a);
|
|
472
|
+
let O = k.join(n, l.publicDir);
|
|
473
|
+
await N.cp(O, a, { recursive: !0 }).catch(() => {});
|
|
508
474
|
} finally {
|
|
509
475
|
await Promise.all([
|
|
510
|
-
|
|
476
|
+
N.rm(C, {
|
|
511
477
|
recursive: !0,
|
|
512
478
|
force: !0
|
|
513
479
|
}),
|
|
514
|
-
|
|
480
|
+
N.rm(o, {
|
|
515
481
|
recursive: !0,
|
|
516
482
|
force: !0
|
|
517
483
|
}),
|
|
518
|
-
|
|
484
|
+
N.rm(s, {
|
|
519
485
|
recursive: !0,
|
|
520
486
|
force: !0
|
|
521
487
|
})
|
|
522
488
|
]);
|
|
523
489
|
}
|
|
524
|
-
|
|
490
|
+
i.log(`\nBuild complete. Output: ${a}`);
|
|
525
491
|
}
|
|
526
|
-
function
|
|
527
|
-
let
|
|
528
|
-
...
|
|
529
|
-
directoryListings:
|
|
530
|
-
}),
|
|
492
|
+
function ze(e) {
|
|
493
|
+
let t = `/${e.rootDir}/${m}`, n = JSON.parse(e.siteConfig), r = JSON.parse(e.siteData), i = r.contentTree ?? { entries: [] }, a = h(i.entries ?? [], n.title ?? ""), o = JSON.stringify({
|
|
494
|
+
...r,
|
|
495
|
+
directoryListings: a
|
|
496
|
+
}), s = e.userComponents ?? [], c = s.map((e) => `import ${e.name} from ${JSON.stringify(e.absolutePath)};`).join("\n"), l = s.map((e) => `app.component(${JSON.stringify(e.name)}, ${e.name});`).join("\n");
|
|
531
497
|
return `
|
|
532
|
-
${[
|
|
533
|
-
import { TdDirectoryIndex, TdGlossaryIndex } from 'typerighter/client/theme-default';
|
|
534
|
-
import { isIndexUrl, getDirectoryFromPageUrl } from 'typerighter/shared';
|
|
498
|
+
${[c, "import { createTypedownApp } from 'typerighter/client';"].filter(Boolean).join("\n")}
|
|
535
499
|
import { renderToString } from 'vue/server-renderer';
|
|
536
|
-
import {
|
|
537
|
-
import theme from ${JSON.stringify(
|
|
538
|
-
|
|
539
|
-
const pages = import.meta.glob('${n}', { eager: true });
|
|
540
|
-
const contentExts = ${JSON.stringify(e)};
|
|
541
|
-
const siteData = ${s};
|
|
542
|
-
|
|
543
|
-
function findPage(base) {
|
|
544
|
-
for (const ext of contentExts) {
|
|
545
|
-
const key = base + ext;
|
|
546
|
-
if (pages[key]) return pages[key];
|
|
547
|
-
}
|
|
548
|
-
}
|
|
500
|
+
import { shallowRef } from 'vue';
|
|
501
|
+
import theme from ${JSON.stringify(e.themeModulePath)};
|
|
549
502
|
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
if (page) return Promise.resolve(page);
|
|
554
|
-
|
|
555
|
-
if (isIndexUrl(pagePath)) {
|
|
556
|
-
const dirPath = getDirectoryFromPageUrl(pagePath);
|
|
557
|
-
const dir = siteData.directoryListings[dirPath];
|
|
558
|
-
if (dir) return Promise.resolve({
|
|
559
|
-
default: { name: 'DirectoryIndex', render() { return h(TdDirectoryIndex); } },
|
|
560
|
-
pageData: { frontmatter: {}, headings: [], title: dir.title },
|
|
561
|
-
});
|
|
562
|
-
}
|
|
563
|
-
|
|
564
|
-
return Promise.resolve(undefined);
|
|
565
|
-
}
|
|
503
|
+
const rawPages = import.meta.glob('${t}', { eager: true });
|
|
504
|
+
const pages = Object.fromEntries(Object.entries(rawPages).map(([k, v]) => [k, () => Promise.resolve(v)]));
|
|
505
|
+
const siteData = shallowRef({ ...${o}, pages });
|
|
566
506
|
|
|
567
507
|
export async function createRenderer() {
|
|
568
|
-
const { app, router } = await createTypedownApp(
|
|
569
|
-
${
|
|
508
|
+
const { app, router } = await createTypedownApp({ ...${e.siteConfig}, theme }, siteData);
|
|
509
|
+
${l}
|
|
570
510
|
return async function render(url) {
|
|
571
511
|
await router.go(url, { replace: true });
|
|
572
512
|
const html = await renderToString(app);
|
|
@@ -575,31 +515,31 @@ export async function createRenderer() {
|
|
|
575
515
|
}
|
|
576
516
|
`;
|
|
577
517
|
}
|
|
578
|
-
async function
|
|
579
|
-
let n = (await
|
|
518
|
+
async function Be(e, t) {
|
|
519
|
+
let n = (await N.readdir(e, {
|
|
580
520
|
recursive: !0,
|
|
581
521
|
withFileTypes: !0
|
|
582
|
-
})).filter((e) => e.isFile() && !
|
|
583
|
-
let r =
|
|
584
|
-
return
|
|
522
|
+
})).filter((e) => e.isFile() && !w(e.name)).map(async (n) => {
|
|
523
|
+
let r = k.join(n.parentPath, n.name), i = k.relative(e, r), a = k.join(t, i);
|
|
524
|
+
return N.mkdir(k.dirname(a), { recursive: !0 }).then(() => N.copyFile(r, a));
|
|
585
525
|
});
|
|
586
526
|
await Promise.all(n);
|
|
587
527
|
}
|
|
588
|
-
function
|
|
528
|
+
function Ve(e, t, n = "") {
|
|
589
529
|
for (let r of e) {
|
|
590
530
|
if (r.kind !== "dir") continue;
|
|
591
531
|
let e = `${n}/${r.node.name}`;
|
|
592
|
-
|
|
532
|
+
u(r.node) || t.push(s(e)), Ve(r.node.entries, t, e);
|
|
593
533
|
}
|
|
594
534
|
}
|
|
595
535
|
// ../../node_modules/.pnpm/@shikijs+transformers@4.4.3/node_modules/@shikijs/transformers/dist/index.mjs
|
|
596
|
-
var
|
|
536
|
+
var He = /(\s+\/\/)/, Ue = /(?:\/\/|["'#]|;{1,2}|%{1,2}|--)(\s*)$/, We = /(?:\/\/|#|;{1,2}|%{1,2}|--)(\s*)$/, Ge = [
|
|
597
537
|
[/^(<!--)(.+)(-->)$/, !1],
|
|
598
538
|
[/^(\/\*)(.+)(\*\/)$/, !1],
|
|
599
539
|
[/^(\/\/|["'#]|;{1,2}|%{1,2}|--)(.*)$/, !0],
|
|
600
540
|
[/^(\*)(.+)$/, !0]
|
|
601
541
|
];
|
|
602
|
-
function
|
|
542
|
+
function Ke(e, t, n) {
|
|
603
543
|
let r = [];
|
|
604
544
|
for (let i of e) {
|
|
605
545
|
if (n === "v3") {
|
|
@@ -609,7 +549,7 @@ function qe(e, t, n) {
|
|
|
609
549
|
if (n.type !== "text") return e;
|
|
610
550
|
let r = t === i.children.length - 1;
|
|
611
551
|
if (!z(n.value, r)) return e;
|
|
612
|
-
let a = n.value.split(
|
|
552
|
+
let a = n.value.split(He);
|
|
613
553
|
if (a.length <= 1) return e;
|
|
614
554
|
let o = [a[0]];
|
|
615
555
|
for (let e = 1; e < a.length; e += 2) o.push(a[e] + (a[e + 1] || ""));
|
|
@@ -653,7 +593,7 @@ function qe(e, t, n) {
|
|
|
653
593
|
}
|
|
654
594
|
if (c) {
|
|
655
595
|
if (t && !s && n !== 0) {
|
|
656
|
-
let t =
|
|
596
|
+
let t = qe(e[n - 1], "{") && qe(e[n + 1], "}");
|
|
657
597
|
r.push({
|
|
658
598
|
info: c,
|
|
659
599
|
line: i,
|
|
@@ -675,7 +615,7 @@ function qe(e, t, n) {
|
|
|
675
615
|
}
|
|
676
616
|
return r;
|
|
677
617
|
}
|
|
678
|
-
function
|
|
618
|
+
function qe(e, t) {
|
|
679
619
|
if (e.type !== "element") return !1;
|
|
680
620
|
let n = e.children[0];
|
|
681
621
|
return n.type === "text" && n.value.trim() === t;
|
|
@@ -684,7 +624,7 @@ function z(e, t) {
|
|
|
684
624
|
let n = e.trimStart(), r = e.length - n.length;
|
|
685
625
|
n = n.trimEnd();
|
|
686
626
|
let i = e.length - n.length - r;
|
|
687
|
-
for (let [e, a] of
|
|
627
|
+
for (let [e, a] of Ge) {
|
|
688
628
|
if (a && !t) continue;
|
|
689
629
|
let o = e.exec(n);
|
|
690
630
|
if (o) return [
|
|
@@ -694,22 +634,22 @@ function z(e, t) {
|
|
|
694
634
|
];
|
|
695
635
|
}
|
|
696
636
|
}
|
|
697
|
-
function
|
|
698
|
-
let t = e.match(
|
|
637
|
+
function Je(e) {
|
|
638
|
+
let t = e.match(Ue);
|
|
699
639
|
return t && t[1].trim().length === 0 ? e.slice(0, t.index) : e;
|
|
700
640
|
}
|
|
701
|
-
function
|
|
702
|
-
let t = e.match(
|
|
641
|
+
function Ye(e) {
|
|
642
|
+
let t = e.match(We);
|
|
703
643
|
return t && t[1].trim().length === 0 ? e.slice(0, t.index).trimEnd() : e;
|
|
704
644
|
}
|
|
705
|
-
function
|
|
645
|
+
function Xe(e, t, n, r) {
|
|
706
646
|
return r ??= "v3", {
|
|
707
647
|
name: e,
|
|
708
648
|
code(e) {
|
|
709
649
|
let i = e.children.filter((e) => e.type === "element"), a = [];
|
|
710
650
|
e.data ??= {};
|
|
711
651
|
let o = e.data;
|
|
712
|
-
o._shiki_notation ??=
|
|
652
|
+
o._shiki_notation ??= Ke(i, ["jsx", "tsx"].includes(this.options.lang), r);
|
|
713
653
|
let s = o._shiki_notation;
|
|
714
654
|
for (let e of s) {
|
|
715
655
|
if (e.info[1].length === 0) continue;
|
|
@@ -717,7 +657,7 @@ function Ze(e, t, n, r) {
|
|
|
717
657
|
e.isLineCommentOnly && r !== "v1" && o++;
|
|
718
658
|
let s = !1;
|
|
719
659
|
if (e.info[1] = e.info[1].replace(t, (...t) => n.call(this, t, e.line, e.token, i, o) ? (s = !0, "") : t[0]), !s) continue;
|
|
720
|
-
r === "v1" ? e.info[1] =
|
|
660
|
+
r === "v1" ? e.info[1] = Je(e.info[1]) : r === "v3" && (e.info[1] = Ye(e.info[1]));
|
|
721
661
|
let c = e.info[1].trim().length === 0;
|
|
722
662
|
if (c && (e.info[1] = ""), c && e.isLineCommentOnly) a.push(e.line);
|
|
723
663
|
else if (c && e.isJsxStyle) e.line.children.splice(e.line.children.indexOf(e.token) - 1, 3);
|
|
@@ -742,42 +682,42 @@ function Ze(e, t, n, r) {
|
|
|
742
682
|
}
|
|
743
683
|
};
|
|
744
684
|
}
|
|
745
|
-
var
|
|
746
|
-
function
|
|
685
|
+
var Ze = /\{([\d,-]+)\}/;
|
|
686
|
+
function Qe(e) {
|
|
747
687
|
if (!e) return null;
|
|
748
|
-
let t = e.match(
|
|
688
|
+
let t = e.match(Ze);
|
|
749
689
|
return t ? t[1].split(",").flatMap((e) => {
|
|
750
690
|
let t = e.split("-").map((e) => Number.parseInt(e, 10));
|
|
751
691
|
return t.length === 1 ? [t[0]] : Array.from({ length: t[1] - t[0] + 1 }, (e, n) => t[0] + n);
|
|
752
692
|
}) : null;
|
|
753
693
|
}
|
|
754
|
-
var
|
|
755
|
-
function
|
|
694
|
+
var $e = Symbol("highlighted-lines");
|
|
695
|
+
function et(e = {}) {
|
|
756
696
|
let { className: t = "highlighted", zeroIndexed: n = !1 } = e;
|
|
757
697
|
return {
|
|
758
698
|
name: "@shikijs/transformers:meta-highlight",
|
|
759
699
|
line(e, r) {
|
|
760
700
|
if (!this.options.meta?.__raw) return;
|
|
761
701
|
let i = this.meta;
|
|
762
|
-
i[
|
|
763
|
-
let a = i[
|
|
702
|
+
i[$e] ??= Qe(this.options.meta.__raw);
|
|
703
|
+
let a = i[$e] ?? [], o = n ? r - 1 : r;
|
|
764
704
|
return a.includes(o) && this.addClassToHast(e, t), e;
|
|
765
705
|
}
|
|
766
706
|
};
|
|
767
707
|
}
|
|
768
|
-
var
|
|
769
|
-
function
|
|
770
|
-
return e.replace(
|
|
708
|
+
var tt = /[.*+?^${}()|[\]\\]/g;
|
|
709
|
+
function nt(e) {
|
|
710
|
+
return e.replace(tt, "\\$&");
|
|
771
711
|
}
|
|
772
712
|
function B(e = {}, t = "@shikijs/transformers:notation-map") {
|
|
773
713
|
let { classMap: n = {}, classActivePre: r = void 0, classActiveCode: i = void 0 } = e;
|
|
774
|
-
return
|
|
714
|
+
return Xe(t, RegExp(`#?\\s*\\[!code (${Object.keys(n).map(nt).join("|")})(:\\d+)?\\]`, "gi"), function([e, t, a = ":1"], o, s, c, l) {
|
|
775
715
|
let u = Number.parseInt(a.slice(1), 10);
|
|
776
716
|
for (let e = l; e < Math.min(l + u, c.length); e++) this.addClassToHast(c[e], n[t]);
|
|
777
717
|
return r && this.addClassToHast(this.pre, r), i && this.addClassToHast(this.code, i), !0;
|
|
778
718
|
}, e.matchAlgorithm);
|
|
779
719
|
}
|
|
780
|
-
function
|
|
720
|
+
function rt(e = {}) {
|
|
781
721
|
let { classLineAdd: t = "diff add", classLineRemove: n = "diff remove", classActivePre: r = "has-diff", classActiveCode: i } = e;
|
|
782
722
|
return B({
|
|
783
723
|
classMap: {
|
|
@@ -789,7 +729,7 @@ function it(e = {}) {
|
|
|
789
729
|
matchAlgorithm: e.matchAlgorithm
|
|
790
730
|
}, "@shikijs/transformers:notation-diff");
|
|
791
731
|
}
|
|
792
|
-
function
|
|
732
|
+
function it(e = {}) {
|
|
793
733
|
let { classMap: t = {
|
|
794
734
|
error: ["highlighted", "error"],
|
|
795
735
|
warning: ["highlighted", "warning"],
|
|
@@ -802,7 +742,7 @@ function at(e = {}) {
|
|
|
802
742
|
matchAlgorithm: e.matchAlgorithm
|
|
803
743
|
}, "@shikijs/transformers:notation-error-level");
|
|
804
744
|
}
|
|
805
|
-
function
|
|
745
|
+
function at(e = {}) {
|
|
806
746
|
let { classActiveLine: t = "focused", classActivePre: n = "has-focused", classActiveCode: r } = e;
|
|
807
747
|
return B({
|
|
808
748
|
classMap: { focus: t },
|
|
@@ -811,7 +751,7 @@ function ot(e = {}) {
|
|
|
811
751
|
matchAlgorithm: e.matchAlgorithm
|
|
812
752
|
}, "@shikijs/transformers:notation-focus");
|
|
813
753
|
}
|
|
814
|
-
function
|
|
754
|
+
function ot(e = {}) {
|
|
815
755
|
let { classActiveLine: t = "highlighted", classActivePre: n = "has-highlighted", classActiveCode: r } = e;
|
|
816
756
|
return B({
|
|
817
757
|
classMap: {
|
|
@@ -824,41 +764,41 @@ function st(e = {}) {
|
|
|
824
764
|
}, "@shikijs/transformers:notation-highlight");
|
|
825
765
|
}
|
|
826
766
|
// src/node/lib/render/highlight/language.ts
|
|
827
|
-
var
|
|
767
|
+
var st = [
|
|
828
768
|
"shellscript",
|
|
829
769
|
"shell",
|
|
830
770
|
"bash",
|
|
831
771
|
"sh",
|
|
832
772
|
"zsh"
|
|
833
773
|
];
|
|
834
|
-
function
|
|
835
|
-
return
|
|
774
|
+
function ct(e) {
|
|
775
|
+
return st.includes(e);
|
|
836
776
|
}
|
|
837
|
-
var
|
|
838
|
-
function
|
|
839
|
-
return
|
|
777
|
+
var lt = /^[a-zA-Z0-9-_]+/;
|
|
778
|
+
function ut(e) {
|
|
779
|
+
return lt.exec(e)?.[0] || "";
|
|
840
780
|
}
|
|
841
781
|
// src/node/lib/render/highlight/index.ts
|
|
842
|
-
var
|
|
782
|
+
var dt = new FinalizationRegistry((e) => {
|
|
843
783
|
e();
|
|
844
784
|
}), V = {
|
|
845
785
|
light: "github-light",
|
|
846
786
|
dark: "github-dark"
|
|
847
787
|
};
|
|
848
|
-
async function
|
|
788
|
+
async function ft() {
|
|
849
789
|
let e = await be({
|
|
850
790
|
themes: [V.light, V.dark],
|
|
851
791
|
langs: []
|
|
852
792
|
}), t = [
|
|
853
|
-
|
|
854
|
-
|
|
855
|
-
|
|
793
|
+
et(),
|
|
794
|
+
rt(),
|
|
795
|
+
at({
|
|
856
796
|
classActiveLine: "has-focus",
|
|
857
797
|
classActivePre: "has-focused-lines"
|
|
858
798
|
}),
|
|
859
|
-
|
|
860
|
-
|
|
861
|
-
|
|
799
|
+
ot(),
|
|
800
|
+
it(),
|
|
801
|
+
pt(),
|
|
862
802
|
{
|
|
863
803
|
name: "typedown:add-dir",
|
|
864
804
|
pre(e) {
|
|
@@ -867,7 +807,7 @@ async function pt() {
|
|
|
867
807
|
}
|
|
868
808
|
], n = new Set(e.getLoadedLanguages());
|
|
869
809
|
async function r(r, i, a, o) {
|
|
870
|
-
let s =
|
|
810
|
+
let s = ut(i);
|
|
871
811
|
if (s) {
|
|
872
812
|
let e = i;
|
|
873
813
|
i = s.toLowerCase(), a = e.slice(i.length).replace(/(?<!=)\{/g, " {") + " " + a, a = a.trim().replace(/\s+/g, " ");
|
|
@@ -876,7 +816,7 @@ async function pt() {
|
|
|
876
816
|
try {
|
|
877
817
|
!Se(i) && !n.has(i) && (await e.loadLanguage(i), n.add(i));
|
|
878
818
|
} catch {
|
|
879
|
-
|
|
819
|
+
O.warn(`\nThe language '${i}' is not loaded, falling back to 'txt' for syntax highlighting.`), i = "txt";
|
|
880
820
|
}
|
|
881
821
|
r = r.trimEnd();
|
|
882
822
|
let c = xe(r, i, e);
|
|
@@ -900,7 +840,7 @@ async function pt() {
|
|
|
900
840
|
});
|
|
901
841
|
}
|
|
902
842
|
},
|
|
903
|
-
...o === void 0 ? [] : [
|
|
843
|
+
...o === void 0 ? [] : [mt(o)]
|
|
904
844
|
],
|
|
905
845
|
meta: { __raw: a },
|
|
906
846
|
themes: V,
|
|
@@ -928,13 +868,13 @@ async function pt() {
|
|
|
928
868
|
}
|
|
929
869
|
});
|
|
930
870
|
}
|
|
931
|
-
return
|
|
871
|
+
return dt.register(r, () => e.dispose()), r;
|
|
932
872
|
}
|
|
933
|
-
function
|
|
873
|
+
function pt() {
|
|
934
874
|
return {
|
|
935
875
|
name: "typedown:disable-shell-symbol-select",
|
|
936
876
|
tokens(e) {
|
|
937
|
-
if (
|
|
877
|
+
if (ct(this.options.lang)) for (let t of e) {
|
|
938
878
|
if (t.length < 2) continue;
|
|
939
879
|
let e = t[0].content.trim();
|
|
940
880
|
(e === "$" || e === ">") && t[1].content[0] === " " && (t[0].content = e + " ", t[0].htmlStyle ??= {}, t[0].htmlStyle["user-select"] = "none", t[0].htmlStyle["-webkit-user-select"] = "none", t[1].content = t[1].content.slice(1));
|
|
@@ -942,7 +882,7 @@ function mt() {
|
|
|
942
882
|
}
|
|
943
883
|
};
|
|
944
884
|
}
|
|
945
|
-
function
|
|
885
|
+
function mt(e) {
|
|
946
886
|
return {
|
|
947
887
|
name: "typedown:line-numbers",
|
|
948
888
|
code(t) {
|
|
@@ -974,23 +914,23 @@ function ht(e) {
|
|
|
974
914
|
};
|
|
975
915
|
}
|
|
976
916
|
// src/node/lib/render/postprocess.ts
|
|
977
|
-
var
|
|
978
|
-
async function
|
|
979
|
-
return e = await
|
|
917
|
+
var ht;
|
|
918
|
+
async function gt(e) {
|
|
919
|
+
return e = await yt(e), e = Tt(e), e;
|
|
980
920
|
}
|
|
981
|
-
function
|
|
982
|
-
return
|
|
921
|
+
function _t() {
|
|
922
|
+
return ht ||= ft(), ht;
|
|
983
923
|
}
|
|
984
|
-
var
|
|
924
|
+
var vt = /<pre class="td-code-placeholder"([^>]*)><code>([\s\S]*?)<\/code><\/pre>/g;
|
|
985
925
|
function H(e, t) {
|
|
986
926
|
return e.match(RegExp(`${t}="([^"]*)"`))?.[1];
|
|
987
927
|
}
|
|
988
|
-
async function
|
|
989
|
-
let t = await
|
|
928
|
+
async function yt(e) {
|
|
929
|
+
let t = await _t(), n = [...e.matchAll(vt)];
|
|
990
930
|
if (n.length === 0) return e;
|
|
991
931
|
let r = await Promise.all(n.map(async (e) => {
|
|
992
|
-
let n = e[1], r = H(n, "data-lang") ?? "", i = H(n, "data-meta") ?? "", a = H(n, "data-title"), o = H(n, "data-line-numbers"), s =
|
|
993
|
-
return
|
|
932
|
+
let n = e[1], r = H(n, "data-lang") ?? "", i = H(n, "data-meta") ?? "", a = H(n, "data-title"), o = H(n, "data-line-numbers"), s = p(e[2]);
|
|
933
|
+
return St(await t(s, r, i, o === void 0 ? void 0 : parseInt(o) || 1), r, {
|
|
994
934
|
title: a,
|
|
995
935
|
lineNumbers: o
|
|
996
936
|
});
|
|
@@ -1001,7 +941,7 @@ async function bt(e) {
|
|
|
1001
941
|
}
|
|
1002
942
|
return i;
|
|
1003
943
|
}
|
|
1004
|
-
var
|
|
944
|
+
var bt = {
|
|
1005
945
|
typescript: "TypeScript",
|
|
1006
946
|
javascript: "JavaScript",
|
|
1007
947
|
tsx: "TSX",
|
|
@@ -1049,38 +989,38 @@ var xt = {
|
|
|
1049
989
|
scala: "Scala",
|
|
1050
990
|
txt: "Text"
|
|
1051
991
|
};
|
|
1052
|
-
function
|
|
1053
|
-
return
|
|
992
|
+
function xt(e) {
|
|
993
|
+
return bt[e.toLowerCase()] ?? e;
|
|
1054
994
|
}
|
|
1055
|
-
function
|
|
995
|
+
function St(e, t, n) {
|
|
1056
996
|
t ||= "txt";
|
|
1057
|
-
let r =
|
|
997
|
+
let r = xt(t), i = ["td-code-block", "language-" + t];
|
|
1058
998
|
n.title && i.push("has-title"), n.lineNumbers !== void 0 && i.push("line-numbers-mode");
|
|
1059
999
|
let a = `<figure class="${i.join(" ")}">`;
|
|
1060
|
-
return a += "<figcaption class=\"td-code-header\">", a += "<span class=\"td-code-left\">", a += `<span class="td-code-lang">${
|
|
1000
|
+
return a += "<figcaption class=\"td-code-header\">", a += "<span class=\"td-code-left\">", a += `<span class="td-code-lang">${f(r)}</span>`, n.title && (a += `<span class="td-code-label">${f(n.title)}</span>`), a += "</span>", a += "<span class=\"td-code-actions\">", a += "<button type=\"button\" aria-label=\"Copy code\" data-copied=\"Copied\" class=\"td-code-copy\">", a += "<svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><rect x=\"9\" y=\"9\" width=\"13\" height=\"13\" rx=\"2\"></rect><path d=\"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1\"></path></svg>", a += "<span class=\"td-code-copy-text\">Copy</span>", a += "</button>", a += "</span>", a += "</figcaption>", a += e, a += "</figure>", a;
|
|
1061
1001
|
}
|
|
1062
|
-
var
|
|
1063
|
-
function
|
|
1064
|
-
return e = e.replace(
|
|
1002
|
+
var Ct = /<span class="td-math-inline">([\s\S]*?)<\/span>/g, wt = /<div class="td-math-block">([\s\S]*?)<\/div>/g;
|
|
1003
|
+
function Tt(e) {
|
|
1004
|
+
return e = e.replace(Ct, (e, t) => Ot(t, !1)), e = e.replace(wt, (e, t) => Ot(t, !0)), e;
|
|
1065
1005
|
}
|
|
1066
|
-
var
|
|
1067
|
-
function
|
|
1006
|
+
var Et = /`([^`]+)`|\$([^$]+)\$/g;
|
|
1007
|
+
function Dt(e) {
|
|
1068
1008
|
let t = 0, n = "";
|
|
1069
|
-
for (let r of e.matchAll(
|
|
1070
|
-
if (n +=
|
|
1009
|
+
for (let r of e.matchAll(Et)) {
|
|
1010
|
+
if (n += f(e.slice(t, r.index)), r[1] !== void 0) n += `<code>${f(r[1])}</code>`;
|
|
1071
1011
|
else if (r[2] !== void 0) try {
|
|
1072
|
-
n +=
|
|
1012
|
+
n += D.renderToString(r[2], { throwOnError: !1 });
|
|
1073
1013
|
} catch {
|
|
1074
|
-
n +=
|
|
1014
|
+
n += f(r[0]);
|
|
1075
1015
|
}
|
|
1076
1016
|
t = r.index + r[0].length;
|
|
1077
1017
|
}
|
|
1078
|
-
return n +=
|
|
1018
|
+
return n += f(e.slice(t)), n;
|
|
1079
1019
|
}
|
|
1080
|
-
function
|
|
1020
|
+
function Ot(e, t) {
|
|
1081
1021
|
let n = t ? "div" : "span";
|
|
1082
1022
|
try {
|
|
1083
|
-
return
|
|
1023
|
+
return D.renderToString(p(e), {
|
|
1084
1024
|
throwOnError: !1,
|
|
1085
1025
|
displayMode: t
|
|
1086
1026
|
});
|
|
@@ -1090,24 +1030,24 @@ function kt(e, t) {
|
|
|
1090
1030
|
}
|
|
1091
1031
|
// src/node/lib/render/vue.ts
|
|
1092
1032
|
async function U(e, t, n) {
|
|
1093
|
-
let r = t.title || t.label || (
|
|
1033
|
+
let r = t.title || t.label || (d(n) ? S(n, (await e.getConfig()).siteTitle) : C(n));
|
|
1094
1034
|
return {
|
|
1095
1035
|
schema: t.schema,
|
|
1096
1036
|
schemaLabel: t.schemaLabel,
|
|
1097
1037
|
label: t.label,
|
|
1098
1038
|
icon: t.icon,
|
|
1099
1039
|
frontmatter: t.header ?? {},
|
|
1100
|
-
headings:
|
|
1040
|
+
headings: At(t.headings),
|
|
1101
1041
|
title: r,
|
|
1102
|
-
titleHtml:
|
|
1042
|
+
titleHtml: Dt(r),
|
|
1103
1043
|
filepath: n,
|
|
1104
1044
|
fileMetadata: t.fileMetadata,
|
|
1105
1045
|
seoMetadata: t.seoMetadata,
|
|
1106
1046
|
excerpt: t.excerpt
|
|
1107
1047
|
};
|
|
1108
1048
|
}
|
|
1109
|
-
async function
|
|
1110
|
-
let r = await
|
|
1049
|
+
async function kt(e, t, n) {
|
|
1050
|
+
let r = await gt(t.content), i = await U(e, t, n), a = JSON.stringify(`@typedown/pages?resource=${encodeURIComponent(n)}`);
|
|
1111
1051
|
return {
|
|
1112
1052
|
vueSrc: [
|
|
1113
1053
|
"<script>",
|
|
@@ -1119,12 +1059,12 @@ async function At(e, t, n) {
|
|
|
1119
1059
|
`import { pageData } from ${a}`,
|
|
1120
1060
|
"useRouter().route.data = pageData",
|
|
1121
1061
|
"<\/script>",
|
|
1122
|
-
`<template><div class="typedown-content">\n${
|
|
1062
|
+
`<template><div class="typedown-content">\n${jt(r)}\n</div></template>`
|
|
1123
1063
|
].join("\n"),
|
|
1124
1064
|
pageData: i
|
|
1125
1065
|
};
|
|
1126
1066
|
}
|
|
1127
|
-
function
|
|
1067
|
+
function At(e) {
|
|
1128
1068
|
let t = [], n = [];
|
|
1129
1069
|
for (let r of e) {
|
|
1130
1070
|
let e = {
|
|
@@ -1140,13 +1080,13 @@ function jt(e) {
|
|
|
1140
1080
|
}
|
|
1141
1081
|
return t;
|
|
1142
1082
|
}
|
|
1143
|
-
function
|
|
1083
|
+
function jt(e) {
|
|
1144
1084
|
return e.replaceAll("{{", "{{").replaceAll("}}", "}}");
|
|
1145
1085
|
}
|
|
1146
1086
|
// src/node/plugin/vite/constants.ts
|
|
1147
|
-
var
|
|
1087
|
+
var Mt = "@typedown/app", Nt = "\0@typedown/app", W = "@typedown/pages", Pt = "\0" + W;
|
|
1148
1088
|
W + "";
|
|
1149
|
-
var G = "\0@typedown/pages?resource=", K = "@typedown/site-data",
|
|
1089
|
+
var G = "\0@typedown/pages?resource=", K = "@typedown/site-data", Ft = "\0@typedown/site-data", q = "@typedown/search-index", It = "\0@typedown/search-index", J = "@typedown/theme", Lt = "\0@typedown/theme", Y = "typedown:page-data";
|
|
1150
1090
|
// src/node/plugin/vite/virtual/utils.ts
|
|
1151
1091
|
function X(e, t) {
|
|
1152
1092
|
let n = e.moduleGraph.getModuleById(t);
|
|
@@ -1164,13 +1104,13 @@ function X(e, t) {
|
|
|
1164
1104
|
}
|
|
1165
1105
|
}
|
|
1166
1106
|
// src/node/plugin/vite/virtual/app.ts
|
|
1167
|
-
var
|
|
1107
|
+
var Rt = class {
|
|
1168
1108
|
mountPath;
|
|
1169
1109
|
constructor(e = "") {
|
|
1170
1110
|
this.mountPath = e;
|
|
1171
1111
|
}
|
|
1172
1112
|
async load(e) {
|
|
1173
|
-
let t = await (await e.getTdContext()).getConfig(), n = await
|
|
1113
|
+
let t = await (await e.getTdContext()).getConfig(), n = await I(t.components, e.root);
|
|
1174
1114
|
return Ne({
|
|
1175
1115
|
rootDir: t.rootDir,
|
|
1176
1116
|
mountPath: this.mountPath,
|
|
@@ -1193,9 +1133,9 @@ var zt = class {
|
|
|
1193
1133
|
});
|
|
1194
1134
|
}
|
|
1195
1135
|
invalidate(e) {
|
|
1196
|
-
X(e,
|
|
1136
|
+
X(e, Nt);
|
|
1197
1137
|
}
|
|
1198
|
-
},
|
|
1138
|
+
}, zt = class {
|
|
1199
1139
|
mountPath;
|
|
1200
1140
|
constructor(e = "") {
|
|
1201
1141
|
this.mountPath = e;
|
|
@@ -1233,21 +1173,21 @@ var zt = class {
|
|
|
1233
1173
|
});
|
|
1234
1174
|
}
|
|
1235
1175
|
invalidate(e) {
|
|
1236
|
-
X(e,
|
|
1176
|
+
X(e, Pt);
|
|
1237
1177
|
}
|
|
1238
|
-
},
|
|
1178
|
+
}, Bt = class {
|
|
1239
1179
|
async load(e) {
|
|
1240
1180
|
return Pe((await (await e.getTdContext()).getConfig()).layout ?? void 0, e.root);
|
|
1241
1181
|
}
|
|
1242
1182
|
invalidate(e) {
|
|
1243
|
-
X(e,
|
|
1183
|
+
X(e, Lt);
|
|
1244
1184
|
}
|
|
1245
|
-
},
|
|
1185
|
+
}, Vt = "\0@typedown/site-data", Ht = {
|
|
1246
1186
|
ready: !1,
|
|
1247
1187
|
contentTree: { entries: [] },
|
|
1248
1188
|
schemas: {},
|
|
1249
1189
|
directoryListings: {}
|
|
1250
|
-
},
|
|
1190
|
+
}, Ut = class {
|
|
1251
1191
|
data;
|
|
1252
1192
|
scan(e) {
|
|
1253
1193
|
let t = me("**/*.td", {
|
|
@@ -1255,40 +1195,40 @@ var zt = class {
|
|
|
1255
1195
|
exclude: (e) => e.startsWith("_")
|
|
1256
1196
|
}).map((e) => ({
|
|
1257
1197
|
filepath: e,
|
|
1258
|
-
label:
|
|
1198
|
+
label: C(e),
|
|
1259
1199
|
header: {}
|
|
1260
|
-
})), n =
|
|
1200
|
+
})), n = g(t);
|
|
1261
1201
|
this.data = {
|
|
1262
1202
|
contentTree: n,
|
|
1263
1203
|
schemas: {},
|
|
1264
|
-
directoryListings:
|
|
1204
|
+
directoryListings: h(n.entries, "")
|
|
1265
1205
|
};
|
|
1266
1206
|
}
|
|
1267
1207
|
load(e) {
|
|
1268
1208
|
let t = this.data ? {
|
|
1269
1209
|
ready: !0,
|
|
1270
1210
|
...this.data
|
|
1271
|
-
} :
|
|
1211
|
+
} : Ht;
|
|
1272
1212
|
return `export default ${JSON.stringify(t)}`;
|
|
1273
1213
|
}
|
|
1274
1214
|
clear() {
|
|
1275
1215
|
this.data = void 0;
|
|
1276
1216
|
}
|
|
1277
|
-
fetch =
|
|
1278
|
-
|
|
1217
|
+
fetch = y((e, t) => {
|
|
1218
|
+
Wt(e).then((e) => {
|
|
1279
1219
|
this.data = e, t && this.invalidate(t);
|
|
1280
1220
|
}).catch((e) => {
|
|
1281
1221
|
console.error("[typedown] Failed to fetch site data:", e instanceof Error ? e.message : e);
|
|
1282
1222
|
});
|
|
1283
1223
|
}, 200);
|
|
1284
1224
|
async fetchSync(e) {
|
|
1285
|
-
this.data = await
|
|
1225
|
+
this.data = await Wt(e);
|
|
1286
1226
|
}
|
|
1287
1227
|
invalidate(e) {
|
|
1288
|
-
X(e,
|
|
1228
|
+
X(e, Vt);
|
|
1289
1229
|
}
|
|
1290
1230
|
};
|
|
1291
|
-
async function
|
|
1231
|
+
async function Wt(e) {
|
|
1292
1232
|
let [t, n, r] = await Promise.all([
|
|
1293
1233
|
e.getConfig(),
|
|
1294
1234
|
e.listSidebar(),
|
|
@@ -1296,20 +1236,20 @@ async function Gt(e) {
|
|
|
1296
1236
|
]), i = await Promise.all(r.map(async (t) => [t, (await e.getSchema(t)).properties])), a = Object.fromEntries(i), o = n.map((e) => ({
|
|
1297
1237
|
...e,
|
|
1298
1238
|
header: {}
|
|
1299
|
-
})), s =
|
|
1239
|
+
})), s = g(o);
|
|
1300
1240
|
return {
|
|
1301
1241
|
contentTree: s,
|
|
1302
1242
|
schemas: a,
|
|
1303
|
-
directoryListings:
|
|
1243
|
+
directoryListings: h(s.entries, t.siteTitle)
|
|
1304
1244
|
};
|
|
1305
1245
|
}
|
|
1306
1246
|
// src/node/lib/search-indexer/index.ts
|
|
1307
|
-
var
|
|
1247
|
+
var Gt = class {
|
|
1308
1248
|
index;
|
|
1309
1249
|
constructor() {
|
|
1310
1250
|
this.index = new ie({
|
|
1311
|
-
fields:
|
|
1312
|
-
storeFields:
|
|
1251
|
+
fields: v,
|
|
1252
|
+
storeFields: x
|
|
1313
1253
|
});
|
|
1314
1254
|
}
|
|
1315
1255
|
addAll(e) {
|
|
@@ -1327,20 +1267,20 @@ var Kt = class {
|
|
|
1327
1267
|
}
|
|
1328
1268
|
};
|
|
1329
1269
|
// src/node/lib/search-indexer/scan.ts
|
|
1330
|
-
function
|
|
1331
|
-
let n =
|
|
1270
|
+
function Kt(e, t) {
|
|
1271
|
+
let n = Xt(e), r = [];
|
|
1332
1272
|
for (let t of n) {
|
|
1333
|
-
let n =
|
|
1273
|
+
let n = Yt(e, t);
|
|
1334
1274
|
n && r.push(n);
|
|
1335
1275
|
}
|
|
1336
1276
|
t.addAll(r);
|
|
1337
1277
|
}
|
|
1338
|
-
function
|
|
1339
|
-
let i =
|
|
1340
|
-
i ? r.addPage(i) : r.discardPage(n
|
|
1278
|
+
function qt(e, n, r) {
|
|
1279
|
+
let i = Yt(e, A(e, n));
|
|
1280
|
+
i ? r.addPage(i) : r.discardPage(t(n));
|
|
1341
1281
|
}
|
|
1342
|
-
function
|
|
1343
|
-
let n =
|
|
1282
|
+
function Jt(e, t) {
|
|
1283
|
+
let n = C(e);
|
|
1344
1284
|
if (!t.startsWith("---")) return {
|
|
1345
1285
|
title: n,
|
|
1346
1286
|
body: t
|
|
@@ -1356,54 +1296,54 @@ function Yt(e, t) {
|
|
|
1356
1296
|
body: a
|
|
1357
1297
|
};
|
|
1358
1298
|
}
|
|
1359
|
-
function
|
|
1299
|
+
function Yt(e, n) {
|
|
1360
1300
|
let r;
|
|
1361
1301
|
try {
|
|
1362
|
-
r = he(
|
|
1302
|
+
r = he(n, "utf-8");
|
|
1363
1303
|
} catch {
|
|
1364
1304
|
return;
|
|
1365
1305
|
}
|
|
1366
1306
|
if (!r.trim()) return;
|
|
1367
|
-
let i =
|
|
1307
|
+
let i = n.slice(e.length + 1), { title: a, body: o } = Jt(i, r);
|
|
1368
1308
|
return {
|
|
1369
|
-
id:
|
|
1309
|
+
id: t(i),
|
|
1370
1310
|
title: a,
|
|
1371
1311
|
text: `${a}\n${o}`
|
|
1372
1312
|
};
|
|
1373
1313
|
}
|
|
1374
|
-
function
|
|
1314
|
+
function Xt(e) {
|
|
1375
1315
|
return me("**/*.td", {
|
|
1376
1316
|
cwd: e,
|
|
1377
1317
|
exclude: (e) => e.startsWith("_")
|
|
1378
|
-
}).map((t) =>
|
|
1318
|
+
}).map((t) => A(e, t));
|
|
1379
1319
|
}
|
|
1380
1320
|
// src/node/plugin/vite/virtual/search-index.ts
|
|
1381
|
-
var
|
|
1382
|
-
indexer = new
|
|
1321
|
+
var Zt = "\0@typedown/search-index", Qt = class {
|
|
1322
|
+
indexer = new Gt();
|
|
1383
1323
|
load(e) {
|
|
1384
1324
|
return `export default ${JSON.stringify(this.indexer.serialize())}`;
|
|
1385
1325
|
}
|
|
1386
1326
|
index(e) {
|
|
1387
|
-
|
|
1327
|
+
Kt(e, this.indexer);
|
|
1388
1328
|
}
|
|
1389
1329
|
reindex(e, t) {
|
|
1390
|
-
|
|
1330
|
+
qt(e, t, this.indexer);
|
|
1391
1331
|
}
|
|
1392
1332
|
invalidate(e) {
|
|
1393
|
-
X(e,
|
|
1333
|
+
X(e, Zt);
|
|
1394
1334
|
}
|
|
1395
|
-
},
|
|
1396
|
-
function
|
|
1335
|
+
}, $t = _e(import.meta.url);
|
|
1336
|
+
function en() {
|
|
1397
1337
|
return [{
|
|
1398
1338
|
find: "vue/server-renderer",
|
|
1399
|
-
replacement:
|
|
1339
|
+
replacement: $t.resolve("vue/server-renderer")
|
|
1400
1340
|
}, {
|
|
1401
1341
|
find: "vue",
|
|
1402
|
-
replacement:
|
|
1342
|
+
replacement: $t.resolve("vue/dist/vue.runtime.esm-bundler.js")
|
|
1403
1343
|
}];
|
|
1404
1344
|
}
|
|
1405
1345
|
// src/node/plugin/vite/middleware/vault-assets.ts
|
|
1406
|
-
var
|
|
1346
|
+
var tn = {
|
|
1407
1347
|
jpg: "image/jpeg",
|
|
1408
1348
|
jpeg: "image/jpeg",
|
|
1409
1349
|
png: "image/png",
|
|
@@ -1421,58 +1361,58 @@ var nn = {
|
|
|
1421
1361
|
woff: "font/woff",
|
|
1422
1362
|
ttf: "font/ttf"
|
|
1423
1363
|
};
|
|
1424
|
-
function
|
|
1425
|
-
return (n, r,
|
|
1426
|
-
if (!n.url || n.method !== "GET" || r.writableEnded) return
|
|
1427
|
-
let c =
|
|
1428
|
-
if (c.startsWith("/@") || c.startsWith("/node_modules")) return
|
|
1429
|
-
let l =
|
|
1364
|
+
function nn(e, t) {
|
|
1365
|
+
return (n, r, s) => {
|
|
1366
|
+
if (!n.url || n.method !== "GET" || r.writableEnded) return s();
|
|
1367
|
+
let c = a(n.url);
|
|
1368
|
+
if (c.startsWith("/@") || c.startsWith("/node_modules")) return s();
|
|
1369
|
+
let l = i(t.basePath), u = (l && c.startsWith(l) ? c.slice(l.length) : c).replace(/^\//, ""), d = A(e.config.root, t.rootDirectory, u);
|
|
1430
1370
|
if (pe(d)) try {
|
|
1431
1371
|
let e = ge(d);
|
|
1432
1372
|
if (e.isFile()) {
|
|
1433
|
-
let t =
|
|
1373
|
+
let t = tn[o(d).slice(1).toLowerCase()] ?? "application/octet-stream";
|
|
1434
1374
|
r.setHeader("Content-Type", t), r.setHeader("Content-Length", e.size), fe(d).pipe(r);
|
|
1435
1375
|
return;
|
|
1436
1376
|
}
|
|
1437
1377
|
} catch {}
|
|
1438
|
-
|
|
1378
|
+
s();
|
|
1439
1379
|
};
|
|
1440
1380
|
}
|
|
1441
1381
|
// src/node/plugin/vite/middleware/virtual-html.ts
|
|
1442
|
-
function
|
|
1443
|
-
return (r,
|
|
1382
|
+
function rn(e, t, n) {
|
|
1383
|
+
return (r, o, s) => {
|
|
1444
1384
|
if (!r.url) return s();
|
|
1445
|
-
let c = a(
|
|
1385
|
+
let c = i(a(r.url)), l = i(n.basePath);
|
|
1446
1386
|
if (c.startsWith("/@") || c.startsWith("/node_modules") || !c.startsWith(l)) return s();
|
|
1447
1387
|
let u = c.slice(l.length);
|
|
1448
1388
|
if (u.startsWith("/@") || u.startsWith("/node_modules") || c.includes(".") && !c.endsWith("/index.html")) return s();
|
|
1449
1389
|
t.getConfig().then(async (t) => {
|
|
1450
|
-
let
|
|
1451
|
-
|
|
1390
|
+
let i = await e.transformIndexHtml(r.url ?? "", an(n, t));
|
|
1391
|
+
o.setHeader("Content-Type", "text/html"), o.end(i);
|
|
1452
1392
|
}).catch(() => s());
|
|
1453
1393
|
};
|
|
1454
1394
|
}
|
|
1455
|
-
function
|
|
1456
|
-
return e.devHtml === void 0 && (e.devHtml =
|
|
1395
|
+
function an(e, t) {
|
|
1396
|
+
return e.devHtml === void 0 && (e.devHtml = T({
|
|
1457
1397
|
title: t.siteTitle,
|
|
1458
1398
|
description: t.siteDescription,
|
|
1459
1399
|
base: "/",
|
|
1460
1400
|
ogType: "website",
|
|
1461
|
-
entryScript:
|
|
1401
|
+
entryScript: Mt
|
|
1462
1402
|
})), e.devHtml;
|
|
1463
1403
|
}
|
|
1464
1404
|
// src/node/lib/prop-schema.ts
|
|
1465
|
-
function
|
|
1405
|
+
function on(e, t, n) {
|
|
1466
1406
|
let r = {};
|
|
1467
1407
|
for (let i of e) {
|
|
1468
|
-
let e = `./${
|
|
1408
|
+
let e = `./${k.relative(t, i.absolutePath)}`;
|
|
1469
1409
|
try {
|
|
1470
1410
|
let t = n.getComponentMeta(i.absolutePath), a = {}, o = !1;
|
|
1471
1411
|
for (let e of t.props) {
|
|
1472
1412
|
if (e.global) continue;
|
|
1473
1413
|
let t = Q(e.schema);
|
|
1474
1414
|
if (t !== void 0) {
|
|
1475
|
-
let n = { schema: e.required ? t :
|
|
1415
|
+
let n = { schema: e.required ? t : l(t) };
|
|
1476
1416
|
e.description && (n.description = e.description), a[e.name] = n, o = !0;
|
|
1477
1417
|
}
|
|
1478
1418
|
}
|
|
@@ -1488,7 +1428,7 @@ function sn(e, t, n) {
|
|
|
1488
1428
|
}
|
|
1489
1429
|
return r;
|
|
1490
1430
|
}
|
|
1491
|
-
function
|
|
1431
|
+
function sn(e) {
|
|
1492
1432
|
if (!e || e.length !== 1) return;
|
|
1493
1433
|
let t = Q(e[0]);
|
|
1494
1434
|
return t === void 0 ? void 0 : {
|
|
@@ -1496,8 +1436,8 @@ function cn(e) {
|
|
|
1496
1436
|
items: t
|
|
1497
1437
|
};
|
|
1498
1438
|
}
|
|
1499
|
-
function
|
|
1500
|
-
if (t && 0 < Object.keys(t).length) return
|
|
1439
|
+
function cn(e, t) {
|
|
1440
|
+
if (t && 0 < Object.keys(t).length) return ln(t);
|
|
1501
1441
|
let n = /^(?:Record<string,\s*(\w+)>|\{\s*\[key:\s*string\]:\s*(\w+);\s*\})$/.exec(e);
|
|
1502
1442
|
if (!n) return;
|
|
1503
1443
|
let r = Z(n[1] ?? n[2]);
|
|
@@ -1525,12 +1465,12 @@ function Z(e) {
|
|
|
1525
1465
|
i.push(t);
|
|
1526
1466
|
}
|
|
1527
1467
|
let a = i.length === 1 ? i[0] : { oneOf: i };
|
|
1528
|
-
return n ?
|
|
1468
|
+
return n ? l(a) : a;
|
|
1529
1469
|
}
|
|
1530
1470
|
return;
|
|
1531
1471
|
}
|
|
1532
1472
|
}
|
|
1533
|
-
function
|
|
1473
|
+
function ln(e) {
|
|
1534
1474
|
let t = {}, n = [];
|
|
1535
1475
|
for (let [r, i] of Object.entries(e)) {
|
|
1536
1476
|
let e = Q(i.schema);
|
|
@@ -1547,19 +1487,19 @@ function un(e) {
|
|
|
1547
1487
|
function Q(e) {
|
|
1548
1488
|
if (typeof e == "string") return Z(e);
|
|
1549
1489
|
switch (e.kind) {
|
|
1550
|
-
case "enum": return
|
|
1551
|
-
case "array": return
|
|
1552
|
-
case "object": return
|
|
1490
|
+
case "enum": return un(e.schema);
|
|
1491
|
+
case "array": return sn(e.schema);
|
|
1492
|
+
case "object": return cn(e.type, e.schema);
|
|
1553
1493
|
case "literal": return "value" in e ? { const: e.value } : void 0;
|
|
1554
1494
|
default: return;
|
|
1555
1495
|
}
|
|
1556
1496
|
}
|
|
1557
|
-
function
|
|
1497
|
+
function un(e) {
|
|
1558
1498
|
let t = e ?? [], n = t.some((e) => e === "undefined" || e === "null"), r = t.filter((e) => e !== "undefined" && e !== "null");
|
|
1559
1499
|
if (r.length === 0) return;
|
|
1560
1500
|
if (r.length === 1) {
|
|
1561
1501
|
let e = Q(r[0]);
|
|
1562
|
-
return e === void 0 ? void 0 : n ?
|
|
1502
|
+
return e === void 0 ? void 0 : n ? l(e) : e;
|
|
1563
1503
|
}
|
|
1564
1504
|
if (r.every((e) => typeof e == "object" && e.kind === "literal")) {
|
|
1565
1505
|
let e = [];
|
|
@@ -1568,7 +1508,7 @@ function dn(e) {
|
|
|
1568
1508
|
e.push(t.value);
|
|
1569
1509
|
}
|
|
1570
1510
|
let t = { enum: e };
|
|
1571
|
-
return n ?
|
|
1511
|
+
return n ? l(t) : t;
|
|
1572
1512
|
}
|
|
1573
1513
|
let i = [];
|
|
1574
1514
|
for (let e of r) {
|
|
@@ -1578,46 +1518,46 @@ function dn(e) {
|
|
|
1578
1518
|
}
|
|
1579
1519
|
if (i.length === 0) return;
|
|
1580
1520
|
let a = { oneOf: i };
|
|
1581
|
-
return n ?
|
|
1521
|
+
return n ? l(a) : a;
|
|
1582
1522
|
}
|
|
1583
1523
|
// src/node/plugin/vite/subplugins/component-contract.ts
|
|
1584
|
-
var
|
|
1585
|
-
function
|
|
1524
|
+
var dn = ".typedown/components.json";
|
|
1525
|
+
function fn(e) {
|
|
1586
1526
|
return {
|
|
1587
1527
|
name: "vite-plugin-typedown-component-contract",
|
|
1588
1528
|
async buildStart() {
|
|
1589
1529
|
let t = e();
|
|
1590
1530
|
if (!t) return;
|
|
1591
|
-
let n = await
|
|
1531
|
+
let n = await I((await (await t.getTdContext()).getConfig()).components, t.root);
|
|
1592
1532
|
$(t.root, n);
|
|
1593
1533
|
},
|
|
1594
1534
|
configureServer(t) {
|
|
1595
1535
|
let n = e();
|
|
1596
1536
|
n && n.getTdContext().then(async (e) => {
|
|
1597
|
-
let r = await e.getConfig(), i = await
|
|
1598
|
-
$(n.root, i),
|
|
1537
|
+
let r = await e.getConfig(), i = await I(r.components, n.root);
|
|
1538
|
+
$(n.root, i), pn(t, r.components, n.root);
|
|
1599
1539
|
}).catch(() => {});
|
|
1600
1540
|
}
|
|
1601
1541
|
};
|
|
1602
1542
|
}
|
|
1603
|
-
function
|
|
1604
|
-
let r = new Set(t.filter((e) => e.kind === "explicit").map((e) =>
|
|
1543
|
+
function pn(e, t, n) {
|
|
1544
|
+
let r = new Set(t.filter((e) => e.kind === "explicit").map((e) => M(k.resolve(n, e.source)))), i = new Set(t.filter((e) => e.kind === "dir").map((e) => M(k.resolve(n, e.path))));
|
|
1605
1545
|
for (let t of i) e.watcher.add(t);
|
|
1606
1546
|
let a = (a) => {
|
|
1607
|
-
|
|
1547
|
+
mn(a, r, i) && (e.config.logger.info("[typedown] component changed, rebuilding contract..."), I(t, n).then((e) => $(n, e)).catch(() => {}));
|
|
1608
1548
|
};
|
|
1609
1549
|
e.watcher.on("change", a), e.watcher.on("add", a), e.watcher.on("unlink", a);
|
|
1610
1550
|
}
|
|
1611
|
-
function
|
|
1551
|
+
function mn(e, t, n) {
|
|
1612
1552
|
if (!e.endsWith(".vue")) return !1;
|
|
1613
|
-
let r =
|
|
1553
|
+
let r = M(e);
|
|
1614
1554
|
if (t.has(r)) return !0;
|
|
1615
1555
|
for (let e of n) if (r.startsWith(e + "/")) return !0;
|
|
1616
1556
|
return !1;
|
|
1617
1557
|
}
|
|
1618
|
-
function
|
|
1558
|
+
function hn() {
|
|
1619
1559
|
try {
|
|
1620
|
-
let e =
|
|
1560
|
+
let e = k.dirname(le(import.meta.url)), t = k.resolve(e, "builtin-components.json"), n = JSON.parse(P.readFileSync(t, "utf-8"));
|
|
1621
1561
|
for (let e of Object.values(n)) if (typeof e == "object" && e && "source" in e) {
|
|
1622
1562
|
let t = e;
|
|
1623
1563
|
typeof t.source == "string" && t.source.startsWith("./") && (t.source = `typerighter/${t.source.slice(2)}`);
|
|
@@ -1627,18 +1567,18 @@ function gn() {
|
|
|
1627
1567
|
return {};
|
|
1628
1568
|
}
|
|
1629
1569
|
}
|
|
1630
|
-
var
|
|
1570
|
+
var gn = hn();
|
|
1631
1571
|
function $(e, t) {
|
|
1632
|
-
if (!(0 < Object.keys(
|
|
1633
|
-
let n = 0 < t.length ?
|
|
1634
|
-
...
|
|
1572
|
+
if (!(0 < Object.keys(gn).length) && t.length === 0) return;
|
|
1573
|
+
let n = 0 < t.length ? on(t, e, Fe(e)) : {}, r = {
|
|
1574
|
+
...gn,
|
|
1635
1575
|
...n
|
|
1636
|
-
}, i =
|
|
1637
|
-
|
|
1576
|
+
}, i = k.join(e, dn);
|
|
1577
|
+
P.mkdirSync(k.dirname(i), { recursive: !0 }), P.writeFileSync(i, JSON.stringify(r, null, 2));
|
|
1638
1578
|
}
|
|
1639
1579
|
// src/node/plugin/vite/index.ts
|
|
1640
|
-
function
|
|
1641
|
-
let n =
|
|
1580
|
+
function _n(t = {}) {
|
|
1581
|
+
let n = t.context, r, i, a, o = new Rt(t.root ?? ""), s = new Bt(), l = new zt(t.root ?? ""), u = new Ut(), d = new Qt(), f = {
|
|
1642
1582
|
devHtml: void 0,
|
|
1643
1583
|
basePath: "/",
|
|
1644
1584
|
rootDirectory: "vault"
|
|
@@ -1650,75 +1590,75 @@ function vn(e = {}) {
|
|
|
1650
1590
|
let m = {
|
|
1651
1591
|
name: "vite-plugin-typedown",
|
|
1652
1592
|
enforce: "pre",
|
|
1653
|
-
async config(
|
|
1593
|
+
async config(e) {
|
|
1654
1594
|
if (!n) {
|
|
1655
|
-
let r =
|
|
1595
|
+
let r = t.root ? A(e.root ?? process.cwd(), t.root) : re(e.root ?? process.cwd());
|
|
1656
1596
|
n = ne(r);
|
|
1657
1597
|
}
|
|
1658
|
-
a =
|
|
1598
|
+
a = e.base ?? "/";
|
|
1659
1599
|
let r = await (await p()).getConfig();
|
|
1660
1600
|
return {
|
|
1661
|
-
base:
|
|
1601
|
+
base: e.base ?? r.basePath,
|
|
1662
1602
|
publicDir: r.publicDir,
|
|
1663
1603
|
server: {
|
|
1664
|
-
port:
|
|
1665
|
-
strictPort:
|
|
1604
|
+
port: e.server?.port ?? 8686,
|
|
1605
|
+
strictPort: e.server?.strictPort ?? !1
|
|
1666
1606
|
},
|
|
1667
|
-
resolve: { alias:
|
|
1607
|
+
resolve: { alias: en() },
|
|
1668
1608
|
ssr: { noExternal: ["typerighter"] }
|
|
1669
1609
|
};
|
|
1670
1610
|
},
|
|
1671
1611
|
configResolved(e) {
|
|
1672
|
-
i =
|
|
1612
|
+
i = A(e.root, e.build.outDir);
|
|
1673
1613
|
},
|
|
1674
1614
|
async buildStart() {
|
|
1675
1615
|
if (r) return;
|
|
1676
|
-
let e = await p(), t = await e.getConfig(), n =
|
|
1616
|
+
let e = await p(), t = await e.getConfig(), n = A(t.rootDir);
|
|
1677
1617
|
d.index(n), await u.fetchSync(e);
|
|
1678
1618
|
let i = await e.checkVault();
|
|
1679
|
-
if (
|
|
1619
|
+
if (Sn(i.diagnostics), 0 < i.errorCount) {
|
|
1680
1620
|
let e = i.diagnostics.filter((e) => e.severity === "error").map((e) => ` ${e.filepath}:${e.line}:${e.column} - ${e.message} (${e.code})`);
|
|
1681
1621
|
this.error(`Vault check failed with ${i.errorCount} error(s):\n${e.join("\n")}`);
|
|
1682
1622
|
}
|
|
1683
1623
|
},
|
|
1684
1624
|
resolveId(e) {
|
|
1685
|
-
if (e === "/@typedown/app" || e === "@typedown/app") return
|
|
1686
|
-
if (e === "@typedown/pages") return
|
|
1687
|
-
if (e.startsWith("@typedown/pages?resource=")) return
|
|
1688
|
-
if (e === "@typedown/site-data") return
|
|
1689
|
-
if (e === "@typedown/search-index") return
|
|
1690
|
-
if (e === "@typedown/theme") return
|
|
1625
|
+
if (e === "/@typedown/app" || e === "@typedown/app") return Nt;
|
|
1626
|
+
if (e === "@typedown/pages") return Pt;
|
|
1627
|
+
if (e.startsWith("@typedown/pages?resource=")) return l.resolvePageData(e);
|
|
1628
|
+
if (e === "@typedown/site-data") return Ft;
|
|
1629
|
+
if (e === "@typedown/search-index") return It;
|
|
1630
|
+
if (e === "@typedown/theme") return Lt;
|
|
1691
1631
|
},
|
|
1692
1632
|
async load(e) {
|
|
1693
|
-
if (
|
|
1633
|
+
if (l.isPageDataModule(e)) return l.loadPageData(e, await p());
|
|
1694
1634
|
if (e !== "\0@typedown/search-index" && e !== "\0@typedown/site-data" && e !== "\0@typedown/pages" && e !== "\0@typedown/app" && e !== "\0@typedown/theme") return;
|
|
1695
1635
|
let t = await p();
|
|
1696
1636
|
if (e === "\0@typedown/search-index") return d.load(t);
|
|
1697
1637
|
if (e === "\0@typedown/site-data") return u.load(t);
|
|
1698
|
-
if (e === "\0@typedown/pages") return
|
|
1638
|
+
if (e === "\0@typedown/pages") return l.load(t);
|
|
1699
1639
|
if (e === "\0@typedown/app") return o.load(n);
|
|
1700
1640
|
if (e === "\0@typedown/theme") return s.load(n);
|
|
1701
1641
|
},
|
|
1702
1642
|
async configureServer(e) {
|
|
1703
1643
|
r = e;
|
|
1704
|
-
let t = await p(), n = await t.getConfig(), i =
|
|
1644
|
+
let t = await p(), n = await t.getConfig(), i = A(n.rootDir);
|
|
1705
1645
|
d.index(i), u.scan(i), u.fetch(t, r), e.httpServer?.once("listening", async () => {
|
|
1706
1646
|
let e = await t.checkVault();
|
|
1707
|
-
0 < e.diagnostics.length && (console.error(""),
|
|
1647
|
+
0 < e.diagnostics.length && (console.error(""), Sn(e.diagnostics));
|
|
1708
1648
|
}), t.rpc.onConfigChanged(() => {
|
|
1709
|
-
r && (f.devHtml = void 0, u.clear(), o.invalidate(r), s.invalidate(r),
|
|
1649
|
+
r && (f.devHtml = void 0, u.clear(), o.invalidate(r), s.invalidate(r), l.invalidate(r), yn(r), u.fetch(t, r));
|
|
1710
1650
|
}), t.rpc.onComponentContractChanged(() => {
|
|
1711
|
-
r && (o.invalidate(r),
|
|
1651
|
+
r && (o.invalidate(r), yn(r));
|
|
1712
1652
|
});
|
|
1713
1653
|
function a(...e) {
|
|
1714
1654
|
r && t.getConfig().then((t) => {
|
|
1715
1655
|
if (!r) return;
|
|
1716
1656
|
let n = [];
|
|
1717
1657
|
for (let i of e) {
|
|
1718
|
-
let e =
|
|
1658
|
+
let e = M(A(r.config.root, t.rootDir, i)), a = r.moduleGraph.getModulesByFile(e);
|
|
1719
1659
|
if (a?.size) {
|
|
1720
|
-
for (let e of a) r.moduleGraph.invalidateModule(e), n.push(
|
|
1721
|
-
|
|
1660
|
+
for (let e of a) r.moduleGraph.invalidateModule(e), n.push(xn(e));
|
|
1661
|
+
l.invalidatePageData(r, i);
|
|
1722
1662
|
}
|
|
1723
1663
|
}
|
|
1724
1664
|
0 < n.length && r.hot.send({
|
|
@@ -1728,29 +1668,29 @@ function vn(e = {}) {
|
|
|
1728
1668
|
}).catch(() => {});
|
|
1729
1669
|
}
|
|
1730
1670
|
t.rpc.onContentUpdated(({ filepath: e, affectedFiles: n = [] }) => {
|
|
1731
|
-
r && (d.reindex(i, e), d.invalidate(r),
|
|
1671
|
+
r && (d.reindex(i, e), d.invalidate(r), l.invalidate(r), u.fetch(t, r), a(e, ...n), l.sendPageData(r, t, e));
|
|
1732
1672
|
}), t.rpc.onContentDeleted(({ filepath: e }) => {
|
|
1733
|
-
r && (d.reindex(i, e), d.invalidate(r),
|
|
1673
|
+
r && (d.reindex(i, e), d.invalidate(r), l.invalidate(r), u.fetch(t, r), a(e));
|
|
1734
1674
|
});
|
|
1735
|
-
function
|
|
1736
|
-
r && (u.clear(),
|
|
1675
|
+
function c() {
|
|
1676
|
+
r && (u.clear(), bn(r), u.fetch(t, r));
|
|
1737
1677
|
}
|
|
1738
|
-
t.rpc.onSchemaUpdated(
|
|
1678
|
+
t.rpc.onSchemaUpdated(c), t.rpc.onSchemaDeleted(c);
|
|
1739
1679
|
let m = await t.getConfig();
|
|
1740
1680
|
f.basePath = m.basePath, f.rootDirectory = m.rootDir, t.rpc.onConfigChanged((e) => {
|
|
1741
1681
|
f.basePath = e.basePath, f.rootDirectory = e.rootDir, f.devHtml = void 0;
|
|
1742
|
-
}), e.middlewares.use(
|
|
1682
|
+
}), e.middlewares.use(nn(e, f)), e.middlewares.use(rn(e, t, f));
|
|
1743
1683
|
},
|
|
1744
|
-
async transform(
|
|
1684
|
+
async transform(t, n) {
|
|
1745
1685
|
let r = n.split("?")[0];
|
|
1746
|
-
if (!
|
|
1747
|
-
if (
|
|
1686
|
+
if (!w(r)) return;
|
|
1687
|
+
if (e(r)) return {
|
|
1748
1688
|
code: `<script>import theme from '${J}'; import { TdNotFound } from 'typerighter/client/theme-default'; export default theme.NotFound || TdNotFound; export const pageData = { frontmatter: {}, headings: [], title: '' };<\/script>`,
|
|
1749
1689
|
map: null
|
|
1750
1690
|
};
|
|
1751
|
-
let i = await p(), a = await i.getConfig(), o =
|
|
1691
|
+
let i = await p(), a = await i.getConfig(), o = c(r, a.rootDir);
|
|
1752
1692
|
try {
|
|
1753
|
-
let { vueSrc: e } = await
|
|
1693
|
+
let { vueSrc: e } = await kt(i, await i.getFile(o), o);
|
|
1754
1694
|
return {
|
|
1755
1695
|
code: e,
|
|
1756
1696
|
map: null
|
|
@@ -1762,13 +1702,13 @@ function vn(e = {}) {
|
|
|
1762
1702
|
}
|
|
1763
1703
|
},
|
|
1764
1704
|
handleHotUpdate({ file: e }) {
|
|
1765
|
-
if (
|
|
1705
|
+
if (w(e)) return [];
|
|
1766
1706
|
},
|
|
1767
1707
|
async closeBundle() {
|
|
1768
|
-
if (!
|
|
1708
|
+
if (!t.context && n) try {
|
|
1769
1709
|
let e = (await (await n.getTdContext()).getConfig()).basePath, t = e.startsWith(a) ? e.slice(a.length) : e.replace(/^\//, "");
|
|
1770
|
-
await
|
|
1771
|
-
outDir:
|
|
1710
|
+
await Re(n, {
|
|
1711
|
+
outDir: A(i, t),
|
|
1772
1712
|
base: e
|
|
1773
1713
|
});
|
|
1774
1714
|
} finally {
|
|
@@ -1776,31 +1716,31 @@ function vn(e = {}) {
|
|
|
1776
1716
|
}
|
|
1777
1717
|
}
|
|
1778
1718
|
}, h = oe({
|
|
1779
|
-
include:
|
|
1719
|
+
include: t.root ? RegExp(`${t.root.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")}/.*\\.(?:vue|td)$`) : /\.(?:vue|td)$/,
|
|
1780
1720
|
template: { transformAssetUrls: !1 }
|
|
1781
1721
|
});
|
|
1782
1722
|
return [
|
|
1783
1723
|
m,
|
|
1784
|
-
|
|
1724
|
+
fn(() => n),
|
|
1785
1725
|
h,
|
|
1786
1726
|
...ae()
|
|
1787
1727
|
];
|
|
1788
1728
|
}
|
|
1789
|
-
function
|
|
1729
|
+
function vn(e) {
|
|
1790
1730
|
return [...e.moduleGraph.idToModuleMap.entries()].filter(([e]) => e.endsWith(".td")).map(([, e]) => e);
|
|
1791
1731
|
}
|
|
1792
|
-
function
|
|
1793
|
-
for (let t of
|
|
1732
|
+
function yn(e) {
|
|
1733
|
+
for (let t of vn(e)) e.moduleGraph.invalidateModule(t);
|
|
1794
1734
|
e.hot.send({ type: "full-reload" });
|
|
1795
1735
|
}
|
|
1796
|
-
function
|
|
1797
|
-
let t =
|
|
1736
|
+
function bn(e) {
|
|
1737
|
+
let t = vn(e).map((t) => (e.moduleGraph.invalidateModule(t), xn(t)));
|
|
1798
1738
|
0 < t.length && e.hot.send({
|
|
1799
1739
|
type: "update",
|
|
1800
1740
|
updates: t
|
|
1801
1741
|
});
|
|
1802
1742
|
}
|
|
1803
|
-
function
|
|
1743
|
+
function xn(e) {
|
|
1804
1744
|
return {
|
|
1805
1745
|
type: "js-update",
|
|
1806
1746
|
path: e.url,
|
|
@@ -1808,10 +1748,10 @@ function Sn(e) {
|
|
|
1808
1748
|
timestamp: Date.now()
|
|
1809
1749
|
};
|
|
1810
1750
|
}
|
|
1811
|
-
function
|
|
1751
|
+
function Sn(e) {
|
|
1812
1752
|
for (let t of e) {
|
|
1813
|
-
let e = `${t.filepath}:${t.line}:${t.column}`, n = t.severity === "error" ?
|
|
1814
|
-
console.error(` ${n} ${e} ${t.message} ${
|
|
1753
|
+
let e = `${t.filepath}:${t.line}:${t.column}`, n = t.severity === "error" ? j.red("error") : j.yellow("warn");
|
|
1754
|
+
console.error(` ${n} ${e} ${t.message} ${j.dim(`(${t.code})`)}`);
|
|
1815
1755
|
}
|
|
1816
1756
|
}
|
|
1817
|
-
export { K as a, q as i, W as n, J as o, Y as r,
|
|
1757
|
+
export { K as a, q as i, W as n, J as o, Y as r, Re as s, _n as t };
|