polen 0.9.0-next.5 → 0.9.0-next.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +42 -0
- package/build/api/builder/builder.d.ts +1 -0
- package/build/api/builder/builder.d.ts.map +1 -1
- package/build/api/builder/builder.js +1 -0
- package/build/api/builder/builder.js.map +1 -1
- package/build/api/config/configurator.d.ts +21 -5
- package/build/api/config/configurator.d.ts.map +1 -1
- package/build/api/config/configurator.js +12 -0
- package/build/api/config/configurator.js.map +1 -1
- package/build/api/config-resolver/resolve.d.ts +1 -1
- package/build/api/config-resolver/resolve.js +1 -1
- package/build/api/config-resolver/vite.d.ts.map +1 -1
- package/build/api/config-resolver/vite.js +1 -0
- package/build/api/config-resolver/vite.js.map +1 -1
- package/build/api/schema/read.d.ts +1 -1
- package/build/api/singletons/markdown/markdown.d.ts.map +1 -1
- package/build/api/singletons/markdown/markdown.js +33 -11
- package/build/api/singletons/markdown/markdown.js.map +1 -1
- package/build/api/utils/asset-url/asset-url.d.ts +20 -0
- package/build/api/utils/asset-url/asset-url.d.ts.map +1 -0
- package/build/api/utils/asset-url/asset-url.js +35 -0
- package/build/api/utils/asset-url/asset-url.js.map +1 -0
- package/build/api/utils/asset-url/index.d.ts +2 -0
- package/build/api/utils/asset-url/index.d.ts.map +1 -0
- package/build/api/utils/asset-url/index.js +2 -0
- package/build/api/utils/asset-url/index.js.map +1 -0
- package/build/api/vite/plugins/core.d.ts.map +1 -1
- package/build/api/vite/plugins/core.js +10 -4
- package/build/api/vite/plugins/core.js.map +1 -1
- package/build/api/vite/plugins/pages.d.ts.map +1 -1
- package/build/api/vite/plugins/pages.js +27 -2
- package/build/api/vite/plugins/pages.js.map +1 -1
- package/build/cli/commands/build.js +2 -0
- package/build/cli/commands/build.js.map +1 -1
- package/build/cli/commands/dev.js +2 -0
- package/build/cli/commands/dev.js.map +1 -1
- package/build/lib/shiki/index.d.ts +2 -0
- package/build/lib/shiki/index.d.ts.map +1 -0
- package/build/lib/shiki/index.js +2 -0
- package/build/lib/shiki/index.js.map +1 -0
- package/build/lib/shiki/shiki.d.ts +26 -0
- package/build/lib/shiki/shiki.d.ts.map +1 -0
- package/build/lib/shiki/shiki.js +105 -0
- package/build/lib/shiki/shiki.js.map +1 -0
- package/build/lib/vite-virtual/identifier.d.ts +2 -2
- package/build/project-data.d.ts +1 -0
- package/build/project-data.d.ts.map +1 -1
- package/build/template/components/CodeBlock.d.ts +17 -0
- package/build/template/components/CodeBlock.d.ts.map +1 -0
- package/build/template/components/CodeBlock.jsx +42 -0
- package/build/template/components/CodeBlock.jsx.map +1 -0
- package/build/template/components/Link.d.ts.map +1 -1
- package/build/template/components/Link.jsx +2 -1
- package/build/template/components/Link.jsx.map +1 -1
- package/build/template/entry.client.jsx +3 -0
- package/build/template/entry.client.jsx.map +1 -1
- package/build/template/routes/root.d.ts.map +1 -1
- package/build/template/routes/root.jsx +37 -2
- package/build/template/routes/root.jsx.map +1 -1
- package/build/template/server/manifest.d.ts +1 -1
- package/build/template/server/manifest.d.ts.map +1 -1
- package/build/template/server/manifest.js +6 -5
- package/build/template/server/manifest.js.map +1 -1
- package/build/template/server/render-page.d.ts.map +1 -1
- package/build/template/server/render-page.jsx +2 -1
- package/build/template/server/render-page.jsx.map +1 -1
- package/build/template/server/ssg/generate.d.ts.map +1 -1
- package/build/template/server/ssg/generate.js +50 -7
- package/build/template/server/ssg/generate.js.map +1 -1
- package/build/template/server/view.d.ts.map +1 -1
- package/build/template/server/view.js +4 -1
- package/build/template/server/view.js.map +1 -1
- package/package.json +10 -1
- package/src/api/builder/builder.ts +2 -0
- package/src/api/config/configurator.ts +34 -5
- package/src/api/config-resolver/resolve.ts +1 -1
- package/src/api/config-resolver/vite.ts +1 -0
- package/src/api/schema/read.ts +1 -1
- package/src/api/singletons/markdown/markdown.test.ts +89 -0
- package/src/api/singletons/markdown/markdown.ts +35 -13
- package/src/api/utils/asset-url/asset-url.test.ts +47 -0
- package/src/api/utils/asset-url/asset-url.ts +38 -0
- package/src/api/utils/asset-url/index.ts +1 -0
- package/src/api/vite/plugins/core.ts +10 -4
- package/src/api/vite/plugins/pages.ts +27 -2
- package/src/cli/commands/build.ts +5 -0
- package/src/cli/commands/dev.ts +5 -0
- package/src/lib/shiki/index.ts +1 -0
- package/src/lib/shiki/shiki.test.ts +107 -0
- package/src/lib/shiki/shiki.ts +161 -0
- package/src/lib/vite-virtual/identifier.ts +2 -2
- package/src/project-data.ts +1 -0
- package/src/template/components/CodeBlock.tsx +73 -0
- package/src/template/components/Link.tsx +4 -3
- package/src/template/entry.client.tsx +3 -0
- package/src/template/routes/root.tsx +37 -2
- package/src/template/server/manifest.ts +6 -3
- package/src/template/server/render-page.tsx +2 -1
- package/src/template/server/ssg/generate.ts +70 -7
- package/src/template/server/view.ts +4 -1
- package/src/template/styles/code-block.css +186 -0
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"build.js","sourceRoot":"","sources":["../../../src/cli/commands/build.ts"],"names":[],"mappings":"AAAA,oBAAoB;AACpB,cAAc;AACd,OAAO,EAAE,GAAG,EAAE,MAAM,YAAY,CAAA;AAChC,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAA;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,EAAE;KAC1B,SAAS,CAAC,YAAY,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;KACnD,SAAS,CACR,mBAAmB,EACnB,GAAG,CAAC,MAAM,CAAC,iBAAiB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,mDAAmD,CAAC,CAC1G;KACA,QAAQ,CAAC;IACR,UAAU,EAAE;QACV,WAAW,EAAE;YACX,QAAQ,EAAE;gBACR,oDAAoD;gBACpD,MAAM,EAAE,eAAe;gBACvB,OAAO,EAAE,KAAK;aACf;SACF;KACF;CACF,CAAC;KACD,KAAK,EAAE,CAAA;AAEV,QAAQ;AACR,OAAO;AACP,gEAAgE;AAChE,mFAAmF;AACnF,oHAAoH;AACpH,8HAA8H;AAC9H,MAAM,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC;IACtB,GAAG,CAAC,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;IACtD,GAAG,CAAC,IAAI,CAAC,YAAY,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC;
|
1
|
+
{"version":3,"file":"build.js","sourceRoot":"","sources":["../../../src/cli/commands/build.ts"],"names":[],"mappings":"AAAA,oBAAoB;AACpB,cAAc;AACd,OAAO,EAAE,GAAG,EAAE,MAAM,YAAY,CAAA;AAChC,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAA;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,EAAE;KAC1B,SAAS,CAAC,YAAY,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;KACnD,SAAS,CACR,mBAAmB,EACnB,GAAG,CAAC,MAAM,CAAC,iBAAiB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,mDAAmD,CAAC,CAC1G;KACA,SAAS,CACR,WAAW,EACX,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sDAAsD,CAAC,CACvF;KACA,QAAQ,CAAC;IACR,UAAU,EAAE;QACV,WAAW,EAAE;YACX,QAAQ,EAAE;gBACR,oDAAoD;gBACpD,MAAM,EAAE,eAAe;gBACvB,OAAO,EAAE,KAAK;aACf;SACF;KACF;CACF,CAAC;KACD,KAAK,EAAE,CAAA;AAEV,QAAQ;AACR,OAAO;AACP,gEAAgE;AAChE,mFAAmF;AACnF,oHAAoH;AACpH,8HAA8H;AAC9H,MAAM,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC;IACtB,GAAG,CAAC,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;IACtD,GAAG,CAAC,IAAI,CAAC,YAAY,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC;IAC3E,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;CAC1C,CAAC,CAAA"}
|
@@ -11,6 +11,7 @@ const args = Command.create()
|
|
11
11
|
.parameter(`--project -p`,
|
12
12
|
// @ts-expect-error
|
13
13
|
z.string().optional().describe(`The path to the project directory. Default is CWD (current working directory).`))
|
14
|
+
.parameter(`--base -b`, z.string().optional().describe('Base public path for deployment (e.g., /my-project/)'))
|
14
15
|
.settings({
|
15
16
|
parameters: {
|
16
17
|
environment: {
|
@@ -27,6 +28,7 @@ const dir = ensureOptionalAbsoluteWithCwd(args.project);
|
|
27
28
|
const viteUserConfig = await Api.ConfigResolver.fromFile({
|
28
29
|
dir,
|
29
30
|
overrides: {
|
31
|
+
...(args.base ? { build: { base: args.base } } : {}),
|
30
32
|
advanced: {
|
31
33
|
debug: args.debug,
|
32
34
|
},
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"dev.js","sourceRoot":"","sources":["../../../src/cli/commands/dev.ts"],"names":[],"mappings":"AAAA,oBAAoB;AACpB,cAAc;AACd,OAAO,EAAE,GAAG,EAAE,MAAM,YAAY,CAAA;AAChC,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAA;AACtC,OAAO,EAAE,sBAAsB,EAAE,6BAA6B,EAAE,MAAM,eAAe,CAAA;AACrF,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,EAAE;KAC1B,SAAS,CAAC,YAAY,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC;KAC/C,SAAS,CACR,cAAc;AACd,mBAAmB;AACnB,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gFAAgF,CAAC,CACjH;KACA,QAAQ,CAAC;IACR,UAAU,EAAE;QACV,WAAW,EAAE;YACX,QAAQ,EAAE;gBACR,oDAAoD;gBACpD,MAAM,EAAE,YAAY;gBACpB,OAAO,EAAE,KAAK;aACf;SACF;KACF;CACF,CAAC;KACD,KAAK,EAAE,CAAA;AAEV,MAAM,GAAG,GAAG,6BAA6B,CAAC,IAAI,CAAC,OAAO,CAAW,CAAA;AAEjE,MAAM,cAAc,GAAG,MAAM,GAAG,CAAC,cAAc,CAAC,QAAQ,CAAC;IACvD,GAAG;IACH,SAAS,EAAE;QACT,QAAQ,EAAE;YACR,KAAK,EAAE,IAAI,CAAC,KAAK;SAClB;KACF;CACF,CAAC,CAAA;AAEF,MAAM,aAAa,GAAG,MAAM,GAAG,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,CAAA;AAEjF,IAAI,GAAG,CAAC,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC;IAC1B,GAAG,CAAC,GAAG,CAAC,aAAa,CAAC,CAAA;IACtB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACjB,CAAC;AAED,MAAM,aAAa,CAAC,MAAM,EAAE,CAAA;AAE5B,aAAa,CAAC,SAAS,EAAE,CAAA"}
|
1
|
+
{"version":3,"file":"dev.js","sourceRoot":"","sources":["../../../src/cli/commands/dev.ts"],"names":[],"mappings":"AAAA,oBAAoB;AACpB,cAAc;AACd,OAAO,EAAE,GAAG,EAAE,MAAM,YAAY,CAAA;AAChC,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAA;AACtC,OAAO,EAAE,sBAAsB,EAAE,6BAA6B,EAAE,MAAM,eAAe,CAAA;AACrF,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,EAAE;KAC1B,SAAS,CAAC,YAAY,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC;KAC/C,SAAS,CACR,cAAc;AACd,mBAAmB;AACnB,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gFAAgF,CAAC,CACjH;KACA,SAAS,CACR,WAAW,EACX,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sDAAsD,CAAC,CACvF;KACA,QAAQ,CAAC;IACR,UAAU,EAAE;QACV,WAAW,EAAE;YACX,QAAQ,EAAE;gBACR,oDAAoD;gBACpD,MAAM,EAAE,YAAY;gBACpB,OAAO,EAAE,KAAK;aACf;SACF;KACF;CACF,CAAC;KACD,KAAK,EAAE,CAAA;AAEV,MAAM,GAAG,GAAG,6BAA6B,CAAC,IAAI,CAAC,OAAO,CAAW,CAAA;AAEjE,MAAM,cAAc,GAAG,MAAM,GAAG,CAAC,cAAc,CAAC,QAAQ,CAAC;IACvD,GAAG;IACH,SAAS,EAAE;QACT,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACpD,QAAQ,EAAE;YACR,KAAK,EAAE,IAAI,CAAC,KAAK;SAClB;KACF;CACF,CAAC,CAAA;AAEF,MAAM,aAAa,GAAG,MAAM,GAAG,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,CAAA;AAEjF,IAAI,GAAG,CAAC,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC;IAC1B,GAAG,CAAC,GAAG,CAAC,aAAa,CAAC,CAAA;IACtB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACjB,CAAC;AAED,MAAM,aAAa,CAAC,MAAM,EAAE,CAAA;AAE5B,aAAa,CAAC,SAAS,EAAE,CAAA"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/shiki/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAA"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/shiki/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAA"}
|
@@ -0,0 +1,26 @@
|
|
1
|
+
import { type BundledLanguage, type BundledTheme, type Highlighter } from 'shiki';
|
2
|
+
export interface ShikiOptions {
|
3
|
+
themes?: {
|
4
|
+
light: BundledTheme;
|
5
|
+
dark: BundledTheme;
|
6
|
+
};
|
7
|
+
langs?: BundledLanguage[];
|
8
|
+
defaultTheme?: 'light' | 'dark';
|
9
|
+
}
|
10
|
+
export declare function getHighlighter(options?: ShikiOptions): Promise<Highlighter>;
|
11
|
+
export interface CodeHighlightOptions {
|
12
|
+
code: string;
|
13
|
+
lang?: string;
|
14
|
+
theme?: 'light' | 'dark';
|
15
|
+
showLineNumbers?: boolean;
|
16
|
+
highlightLines?: number[];
|
17
|
+
diffLines?: {
|
18
|
+
add: number[];
|
19
|
+
remove: number[];
|
20
|
+
};
|
21
|
+
focusLines?: number[];
|
22
|
+
showInvisibles?: boolean;
|
23
|
+
}
|
24
|
+
export declare function highlightCode({ code, lang, theme, showLineNumbers, highlightLines, diffLines, focusLines, showInvisibles, }: CodeHighlightOptions): Promise<string>;
|
25
|
+
export type { BundledLanguage, BundledTheme, Highlighter } from 'shiki';
|
26
|
+
//# sourceMappingURL=shiki.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"shiki.d.ts","sourceRoot":"","sources":["../../../src/lib/shiki/shiki.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,eAAe,EAAE,KAAK,YAAY,EAAqB,KAAK,WAAW,EAAE,MAAM,OAAO,CAAA;AAEpG,MAAM,WAAW,YAAY;IAC3B,MAAM,CAAC,EAAE;QACP,KAAK,EAAE,YAAY,CAAA;QACnB,IAAI,EAAE,YAAY,CAAA;KACnB,CAAA;IACD,KAAK,CAAC,EAAE,eAAe,EAAE,CAAA;IACzB,YAAY,CAAC,EAAE,OAAO,GAAG,MAAM,CAAA;CAChC;AAgDD,wBAAsB,cAAc,CAAC,OAAO,GAAE,YAAiB,GAAG,OAAO,CAAC,WAAW,CAAC,CAmBrF;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,CAAA;IACxB,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAA;IACzB,SAAS,CAAC,EAAE;QAAE,GAAG,EAAE,MAAM,EAAE,CAAC;QAAC,MAAM,EAAE,MAAM,EAAE,CAAA;KAAE,CAAA;IAC/C,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;IACrB,cAAc,CAAC,EAAE,OAAO,CAAA;CACzB;AAED,wBAAsB,aAAa,CAAC,EAClC,IAAI,EACJ,IAAa,EACb,KAAe,EACf,eAAuB,EACvB,cAAmB,EACnB,SAAS,EACT,UAAe,EACf,cAAsB,GACvB,EAAE,oBAAoB,GAAG,OAAO,CAAC,MAAM,CAAC,CAqDxC;AAGD,YAAY,EAAE,eAAe,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,OAAO,CAAA"}
|
@@ -0,0 +1,105 @@
|
|
1
|
+
import { transformerNotationDiff, transformerNotationFocus, transformerNotationHighlight, transformerRenderWhitespace, } from '@shikijs/transformers';
|
2
|
+
import { createHighlighter } from 'shiki';
|
3
|
+
const DEFAULT_THEMES = {
|
4
|
+
light: `github-light`,
|
5
|
+
dark: `tokyo-night`,
|
6
|
+
};
|
7
|
+
const DEFAULT_LANGS = [
|
8
|
+
`typescript`,
|
9
|
+
`javascript`,
|
10
|
+
`jsx`,
|
11
|
+
`tsx`,
|
12
|
+
`graphql`,
|
13
|
+
`json`,
|
14
|
+
`yaml`,
|
15
|
+
`markdown`,
|
16
|
+
`bash`,
|
17
|
+
`shell`,
|
18
|
+
`css`,
|
19
|
+
`html`,
|
20
|
+
`sql`,
|
21
|
+
`python`,
|
22
|
+
`rust`,
|
23
|
+
`go`,
|
24
|
+
`java`,
|
25
|
+
`csharp`,
|
26
|
+
`php`,
|
27
|
+
`ruby`,
|
28
|
+
`swift`,
|
29
|
+
`kotlin`,
|
30
|
+
`scala`,
|
31
|
+
`r`,
|
32
|
+
`matlab`,
|
33
|
+
`latex`,
|
34
|
+
`dockerfile`,
|
35
|
+
`makefile`,
|
36
|
+
`nginx`,
|
37
|
+
`apache`,
|
38
|
+
`xml`,
|
39
|
+
`toml`,
|
40
|
+
`ini`,
|
41
|
+
`diff`,
|
42
|
+
];
|
43
|
+
// Singleton highlighter instance
|
44
|
+
let highlighterInstance = null;
|
45
|
+
let highlighterPromise = null;
|
46
|
+
export async function getHighlighter(options = {}) {
|
47
|
+
if (highlighterInstance) {
|
48
|
+
return highlighterInstance;
|
49
|
+
}
|
50
|
+
if (!highlighterPromise) {
|
51
|
+
const themes = options.themes || DEFAULT_THEMES;
|
52
|
+
const langs = options.langs || DEFAULT_LANGS;
|
53
|
+
highlighterPromise = createHighlighter({
|
54
|
+
themes: [themes.light, themes.dark],
|
55
|
+
langs,
|
56
|
+
}).then(highlighter => {
|
57
|
+
highlighterInstance = highlighter;
|
58
|
+
return highlighter;
|
59
|
+
});
|
60
|
+
}
|
61
|
+
return highlighterPromise;
|
62
|
+
}
|
63
|
+
export async function highlightCode({ code, lang = `text`, theme = `light`, showLineNumbers = false, highlightLines = [], diffLines, focusLines = [], showInvisibles = false, }) {
|
64
|
+
const highlighter = await getHighlighter();
|
65
|
+
const themes = {
|
66
|
+
light: DEFAULT_THEMES.light,
|
67
|
+
dark: DEFAULT_THEMES.dark,
|
68
|
+
};
|
69
|
+
const transformers = [];
|
70
|
+
// Add line numbers transformer if needed
|
71
|
+
if (showLineNumbers) {
|
72
|
+
// Custom line numbers will be handled in CSS
|
73
|
+
transformers.push({
|
74
|
+
name: `line-numbers`,
|
75
|
+
pre(node) {
|
76
|
+
node.properties[`data-line-numbers`] = `true`;
|
77
|
+
},
|
78
|
+
});
|
79
|
+
}
|
80
|
+
// Add highlight transformer
|
81
|
+
if (highlightLines.length > 0) {
|
82
|
+
transformers.push({
|
83
|
+
name: `highlight-lines`,
|
84
|
+
line(node, line) {
|
85
|
+
if (highlightLines.includes(line)) {
|
86
|
+
node.properties[`data-highlighted`] = `true`;
|
87
|
+
}
|
88
|
+
},
|
89
|
+
});
|
90
|
+
}
|
91
|
+
// Add standard transformers
|
92
|
+
transformers.push(transformerNotationHighlight(), transformerNotationDiff(), transformerNotationFocus());
|
93
|
+
if (showInvisibles) {
|
94
|
+
transformers.push(transformerRenderWhitespace());
|
95
|
+
}
|
96
|
+
// Generate HTML with CSS variables for theme switching
|
97
|
+
const html = highlighter.codeToHtml(code, {
|
98
|
+
lang,
|
99
|
+
themes,
|
100
|
+
defaultColor: false,
|
101
|
+
transformers,
|
102
|
+
});
|
103
|
+
return html;
|
104
|
+
}
|
105
|
+
//# sourceMappingURL=shiki.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"shiki.js","sourceRoot":"","sources":["../../../src/lib/shiki/shiki.ts"],"names":[],"mappings":"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"}
|
@@ -1,6 +1,6 @@
|
|
1
1
|
export interface Options {
|
2
2
|
/**
|
3
|
-
* @
|
3
|
+
* @default '/'
|
4
4
|
*/
|
5
5
|
separator?: string;
|
6
6
|
/**
|
@@ -8,7 +8,7 @@ export interface Options {
|
|
8
8
|
|
9
9
|
* @see https://vitejs.dev/guide/api-plugin.html#virtual-modules-convention
|
10
10
|
|
11
|
-
* @
|
11
|
+
* @default false
|
12
12
|
*/
|
13
13
|
allowPluginProcessing?: boolean;
|
14
14
|
}
|
package/build/project-data.d.ts
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"project-data.d.ts","sourceRoot":"","sources":["../src/project-data.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAA;AAEnD,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,IAAI,GAAG,MAAM,CAAC,MAAM,CAAA;IAC5B,WAAW,EAAE,MAAM,CAAA;IACnB,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAA;IACxC,MAAM,EAAE;QACN,MAAM,EAAE;YACN,SAAS,EAAE,MAAM,CAAA;YACjB,KAAK,EAAE,MAAM,CAAA;SACd,CAAA;KACF,CAAA;CACF"}
|
1
|
+
{"version":3,"file":"project-data.d.ts","sourceRoot":"","sources":["../src/project-data.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAA;AAEnD,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,IAAI,GAAG,MAAM,CAAC,MAAM,CAAA;IAC5B,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAA;IACxC,MAAM,EAAE;QACN,MAAM,EAAE;YACN,SAAS,EAAE,MAAM,CAAA;YACjB,KAAK,EAAE,MAAM,CAAA;SACd,CAAA;KACF,CAAA;CACF"}
|
@@ -0,0 +1,17 @@
|
|
1
|
+
import React from 'react';
|
2
|
+
interface CodeBlockProps {
|
3
|
+
children: string;
|
4
|
+
language?: string;
|
5
|
+
className?: string;
|
6
|
+
showLineNumbers?: boolean;
|
7
|
+
highlightLines?: number[];
|
8
|
+
diffLines?: {
|
9
|
+
add: number[];
|
10
|
+
remove: number[];
|
11
|
+
};
|
12
|
+
focusLines?: number[];
|
13
|
+
showInvisibles?: boolean;
|
14
|
+
}
|
15
|
+
export declare const CodeBlock: React.FC<CodeBlockProps>;
|
16
|
+
export {};
|
17
|
+
//# sourceMappingURL=CodeBlock.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"CodeBlock.d.ts","sourceRoot":"","sources":["../../../src/template/components/CodeBlock.tsx"],"names":[],"mappings":"AACA,OAAO,KAA8B,MAAM,OAAO,CAAA;AAElD,UAAU,cAAc;IACtB,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAA;IACzB,SAAS,CAAC,EAAE;QAAE,GAAG,EAAE,MAAM,EAAE,CAAC;QAAC,MAAM,EAAE,MAAM,EAAE,CAAA;KAAE,CAAA;IAC/C,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;IACrB,cAAc,CAAC,EAAE,OAAO,CAAA;CACzB;AAED,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CA0D9C,CAAA"}
|
@@ -0,0 +1,42 @@
|
|
1
|
+
import { highlightCode } from '#lib/shiki/index';
|
2
|
+
import React, { useEffect, useState } from 'react';
|
3
|
+
export const CodeBlock = ({ children, language = `text`, className = ``, showLineNumbers = false, highlightLines = [], diffLines, focusLines = [], showInvisibles = false, }) => {
|
4
|
+
const [html, setHtml] = useState(``);
|
5
|
+
const [isLoading, setIsLoading] = useState(true);
|
6
|
+
// TODO: Implement proper theme detection
|
7
|
+
// For now, we'll rely on CSS to handle theme switching
|
8
|
+
const theme = `light`; // Default to light theme
|
9
|
+
useEffect(() => {
|
10
|
+
const renderCode = async () => {
|
11
|
+
try {
|
12
|
+
const output = await highlightCode({
|
13
|
+
code: children,
|
14
|
+
lang: language,
|
15
|
+
theme,
|
16
|
+
showLineNumbers,
|
17
|
+
highlightLines,
|
18
|
+
diffLines,
|
19
|
+
focusLines,
|
20
|
+
showInvisibles,
|
21
|
+
});
|
22
|
+
setHtml(output);
|
23
|
+
}
|
24
|
+
catch (error) {
|
25
|
+
console.error(`Failed to highlight code:`, error);
|
26
|
+
// Fallback to plain text
|
27
|
+
setHtml(`<pre><code>${children}</code></pre>`);
|
28
|
+
}
|
29
|
+
finally {
|
30
|
+
setIsLoading(false);
|
31
|
+
}
|
32
|
+
};
|
33
|
+
renderCode();
|
34
|
+
}, [children, language, showLineNumbers, highlightLines, diffLines, focusLines, showInvisibles]);
|
35
|
+
if (isLoading) {
|
36
|
+
return (<pre className={className}>
|
37
|
+
<code>{children}</code>
|
38
|
+
</pre>);
|
39
|
+
}
|
40
|
+
return (<div className={`code-block ${className}`} dangerouslySetInnerHTML={{ __html: html }}/>);
|
41
|
+
};
|
42
|
+
//# sourceMappingURL=CodeBlock.jsx.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"CodeBlock.jsx","sourceRoot":"","sources":["../../../src/template/components/CodeBlock.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAChD,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAalD,MAAM,CAAC,MAAM,SAAS,GAA6B,CAAC,EAClD,QAAQ,EACR,QAAQ,GAAG,MAAM,EACjB,SAAS,GAAG,EAAE,EACd,eAAe,GAAG,KAAK,EACvB,cAAc,GAAG,EAAE,EACnB,SAAS,EACT,UAAU,GAAG,EAAE,EACf,cAAc,GAAG,KAAK,GACvB,EAAE,EAAE;IACH,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAS,EAAE,CAAC,CAAA;IAC5C,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAA;IAEhD,yCAAyC;IACzC,uDAAuD;IACvD,MAAM,KAAK,GAAG,OAAO,CAAA,CAAC,yBAAyB;IAE/C,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,UAAU,GAAG,KAAK,IAAI,EAAE;YAC5B,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC;oBACjC,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,QAAQ;oBACd,KAAK;oBACL,eAAe;oBACf,cAAc;oBACd,SAAS;oBACT,UAAU;oBACV,cAAc;iBACf,CAAC,CAAA;gBAEF,OAAO,CAAC,MAAM,CAAC,CAAA;YACjB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CAAC,2BAA2B,EAAE,KAAK,CAAC,CAAA;gBACjD,yBAAyB;gBACzB,OAAO,CAAC,cAAc,QAAQ,eAAe,CAAC,CAAA;YAChD,CAAC;oBAAS,CAAC;gBACT,YAAY,CAAC,KAAK,CAAC,CAAA;YACrB,CAAC;QACH,CAAC,CAAA;QAED,UAAU,EAAE,CAAA;IACd,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,eAAe,EAAE,cAAc,EAAE,SAAS,EAAE,UAAU,EAAE,cAAc,CAAC,CAAC,CAAA;IAEhG,IAAI,SAAS,EAAE,CAAC;QACd,OAAO,CACL,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,CACxB;QAAA,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,EAAE,IAAI,CACxB;MAAA,EAAE,GAAG,CAAC,CACP,CAAA;IACH,CAAC;IAED,OAAO,CACL,CAAC,GAAG,CACF,SAAS,CAAC,CAAC,cAAc,SAAS,EAAE,CAAC,CACrC,uBAAuB,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAC1C,CACH,CAAA;AACH,CAAC,CAAA"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"Link.d.ts","sourceRoot":"","sources":["../../../src/template/components/Link.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAA;AAC/B,OAAO,KAAK,EAAE,SAAS,IAAI,oBAAoB,EAAE,MAAM,cAAc,CAAA;AAIrE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAgBrD,eAAO,MAAM,IAAI,EAAE,EAAE,CAAC,oBAAoB,GAAG,IAAI,CAAC,cAAc,EAAE,SAAS,CAAC,CAkB3E,CAAA;AAED,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,OAAO,CAAA;IACX,QAAQ,EAAE,OAAO,CAAA;IACjB,YAAY,EAAE,OAAO,CAAA;CACtB;AAED,eAAO,MAAM,mBAAmB,GAC9B,SAAS,MAAM,EACf,gBAAgB,MAAM,KACrB,
|
1
|
+
{"version":3,"file":"Link.d.ts","sourceRoot":"","sources":["../../../src/template/components/Link.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAA;AAC/B,OAAO,KAAK,EAAE,SAAS,IAAI,oBAAoB,EAAE,MAAM,cAAc,CAAA;AAIrE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAgBrD,eAAO,MAAM,IAAI,EAAE,EAAE,CAAC,oBAAoB,GAAG,IAAI,CAAC,cAAc,EAAE,SAAS,CAAC,CAkB3E,CAAA;AAED,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,OAAO,CAAA;IACX,QAAQ,EAAE,OAAO,CAAA;IACjB,YAAY,EAAE,OAAO,CAAA;CACtB;AAED,eAAO,MAAM,mBAAmB,GAC9B,SAAS,MAAM,EACf,gBAAgB,MAAM,KACrB,gBAeF,CAAA"}
|
@@ -28,7 +28,8 @@ export const getPathActiveReport = (pathExp, currentPathExp) => {
|
|
28
28
|
const normalizedPath = pathExp.startsWith('/') ? pathExp.slice(1) : pathExp;
|
29
29
|
const normalizedCurrentPath = currentPathExp.startsWith('/') ? currentPathExp.slice(1) : currentPathExp;
|
30
30
|
const isDirect = normalizedCurrentPath === normalizedPath;
|
31
|
-
const isdescendant = normalizedCurrentPath.startsWith(normalizedPath + '/')
|
31
|
+
const isdescendant = normalizedCurrentPath.startsWith(normalizedPath + '/')
|
32
|
+
&& normalizedCurrentPath !== normalizedPath;
|
32
33
|
const is = isDirect || isdescendant;
|
33
34
|
return {
|
34
35
|
is,
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"Link.jsx","sourceRoot":"","sources":["../../../src/template/components/Link.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,IAAI,eAAe,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AACnE,8CAA8C;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAEpD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAE3C,MAAM,mBAAmB,GAAG;IAC1B,UAAU;IACV,UAAU;IACV,gBAAgB;IAChB,SAAS;IACT,OAAO;IACP,oBAAoB;IACpB,UAAU;IACV,IAAI;IACJ,gBAAgB;IAChB,UAAU;CACF,CAAA;AAEV,MAAM,CAAC,MAAM,IAAI,GAA+D,KAAK,CAAC,EAAE;IACtF,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAA;IAC9B,MAAM,SAAS,GAAG,OAAO,KAAK,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,QAAQ,IAAI,EAAE,CAAA;IACnF,MAAM,MAAM,GAAG,mBAAmB,CAAC,SAAS,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAA;IAEhE,MAAM,EAAE,MAAM,EAAE,gBAAgB,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,YAAY,CAAC,KAAK,EAAE,mBAAmB,CAAC,CAAA;IAElG,OAAO,CACL,CAAC,SAAS,CACR,OAAO,CACP,IAAI,UAAU,CAAC,CACf,WAAW,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,SAAS,CAAC,CACpC,kBAAkB,CAAC,CAAC,MAAM,CAAC,QAAQ,IAAI,SAAS,CAAC,CACjD,sBAAsB,CAAC,CAAC,MAAM,CAAC,YAAY,IAAI,SAAS,CAAC,CAEzD;MAAA,CAAC,eAAe,CAAC,IAAI,gBAAgB,CAAC,EACxC;IAAA,EAAE,SAAS,CAAC,CACb,CAAA;AACH,CAAC,CAAA;AAQD,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,OAAe,EACf,cAAsB,EACJ,EAAE;IACpB,sCAAsC;IACtC,MAAM,cAAc,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAA;IAC3E,MAAM,qBAAqB,GAAG,cAAc,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAA;IAEvG,MAAM,QAAQ,GAAG,qBAAqB,KAAK,cAAc,CAAA;IACzD,MAAM,YAAY,GAAG,qBAAqB,CAAC,UAAU,CAAC,cAAc,GAAG,GAAG,CAAC,
|
1
|
+
{"version":3,"file":"Link.jsx","sourceRoot":"","sources":["../../../src/template/components/Link.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,IAAI,eAAe,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AACnE,8CAA8C;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAEpD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAE3C,MAAM,mBAAmB,GAAG;IAC1B,UAAU;IACV,UAAU;IACV,gBAAgB;IAChB,SAAS;IACT,OAAO;IACP,oBAAoB;IACpB,UAAU;IACV,IAAI;IACJ,gBAAgB;IAChB,UAAU;CACF,CAAA;AAEV,MAAM,CAAC,MAAM,IAAI,GAA+D,KAAK,CAAC,EAAE;IACtF,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAA;IAC9B,MAAM,SAAS,GAAG,OAAO,KAAK,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,QAAQ,IAAI,EAAE,CAAA;IACnF,MAAM,MAAM,GAAG,mBAAmB,CAAC,SAAS,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAA;IAEhE,MAAM,EAAE,MAAM,EAAE,gBAAgB,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,YAAY,CAAC,KAAK,EAAE,mBAAmB,CAAC,CAAA;IAElG,OAAO,CACL,CAAC,SAAS,CACR,OAAO,CACP,IAAI,UAAU,CAAC,CACf,WAAW,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,SAAS,CAAC,CACpC,kBAAkB,CAAC,CAAC,MAAM,CAAC,QAAQ,IAAI,SAAS,CAAC,CACjD,sBAAsB,CAAC,CAAC,MAAM,CAAC,YAAY,IAAI,SAAS,CAAC,CAEzD;MAAA,CAAC,eAAe,CAAC,IAAI,gBAAgB,CAAC,EACxC;IAAA,EAAE,SAAS,CAAC,CACb,CAAA;AACH,CAAC,CAAA;AAQD,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,OAAe,EACf,cAAsB,EACJ,EAAE;IACpB,sCAAsC;IACtC,MAAM,cAAc,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAA;IAC3E,MAAM,qBAAqB,GAAG,cAAc,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAA;IAEvG,MAAM,QAAQ,GAAG,qBAAqB,KAAK,cAAc,CAAA;IACzD,MAAM,YAAY,GAAG,qBAAqB,CAAC,UAAU,CAAC,cAAc,GAAG,GAAG,CAAC;WACtE,qBAAqB,KAAK,cAAc,CAAA;IAC7C,MAAM,EAAE,GAAG,QAAQ,IAAI,YAAY,CAAA;IAEnC,OAAO;QACL,EAAE;QACF,QAAQ;QACR,YAAY;KACb,CAAA;AACH,CAAC,CAAA"}
|
@@ -2,9 +2,11 @@
|
|
2
2
|
// But then, we won't get it from the client manifest. But we could get it from the server manifest. Should we do that?
|
3
3
|
// But then, that wouldn't work for SPA. Does that matter? Just put a conditional here e.g. if (import.meta.env.PROD) ...?
|
4
4
|
import '@radix-ui/themes/styles.css';
|
5
|
+
// import './styles/code-block.css' // TODO: Handle CSS in build process
|
5
6
|
import { ReactDomClient } from '#dep/react-dom-client/index';
|
6
7
|
import { StrictMode } from 'react';
|
7
8
|
import { createBrowserRouter, RouterProvider } from 'react-router';
|
9
|
+
import PROJECT_DATA from 'virtual:polen/project/data.jsonsuper';
|
8
10
|
import { routes } from './routes.jsx';
|
9
11
|
// SPA
|
10
12
|
// const router = createBrowserRouter(routes)
|
@@ -14,6 +16,7 @@ import { routes } from './routes.jsx';
|
|
14
16
|
// SSR
|
15
17
|
const router = createBrowserRouter(routes, {
|
16
18
|
hydrationData: window.__staticRouterHydrationData,
|
19
|
+
basename: PROJECT_DATA.basePath === `/` ? undefined : PROJECT_DATA.basePath.slice(0, -1), // Remove trailing slash for React Router
|
17
20
|
});
|
18
21
|
ReactDomClient.hydrateRoot(document, (<StrictMode>
|
19
22
|
<RouterProvider router={router}/>
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"entry.client.jsx","sourceRoot":"","sources":["../../src/template/entry.client.tsx"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,uHAAuH;AACvH,0HAA0H;AAC1H,OAAO,6BAA6B,CAAA;AACpC,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAA;AAClC,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAClE,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAErC,MAAM;AAEN,6CAA6C;AAE7C,+BAA+B;AAC/B,wCAAwC;AACxC,IAAI;AAEJ,MAAM;AAEN,MAAM,MAAM,GAAG,mBAAmB,CAAC,MAAM,EAAE;IACzC,aAAa,EAAE,MAAM,CAAC,2BAA2B;
|
1
|
+
{"version":3,"file":"entry.client.jsx","sourceRoot":"","sources":["../../src/template/entry.client.tsx"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,uHAAuH;AACvH,0HAA0H;AAC1H,OAAO,6BAA6B,CAAA;AACpC,wEAAwE;AACxE,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAA;AAClC,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAClE,OAAO,YAAY,MAAM,sCAAsC,CAAA;AAC/D,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAErC,MAAM;AAEN,6CAA6C;AAE7C,+BAA+B;AAC/B,wCAAwC;AACxC,IAAI;AAEJ,MAAM;AAEN,MAAM,MAAM,GAAG,mBAAmB,CAAC,MAAM,EAAE;IACzC,aAAa,EAAE,MAAM,CAAC,2BAA2B;IACjD,QAAQ,EAAE,YAAY,CAAC,QAAQ,KAAK,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,yCAAyC;CACpI,CAAC,CAAA;AAEF,cAAc,CAAC,WAAW,CACxB,QAAQ,EACR,CACE,CAAC,UAAU,CACT;MAAA,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,EACjC;IAAA,EAAE,UAAU,CAAC,CACd,CACF,CAAA"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"root.d.ts","sourceRoot":"","sources":["../../../src/template/routes/root.tsx"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"root.d.ts","sourceRoot":"","sources":["../../../src/template/routes/root.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AA8B1D,eAAO,MAAM,SAAS,mCA6BrB,CAAA;AA0LD,eAAO,MAAM,IAAI;;;;CAIf,CAAA"}
|
@@ -1,3 +1,4 @@
|
|
1
|
+
import { assetUrl, faviconUrl } from '#api/utils/asset-url/index';
|
1
2
|
import { createRoute } from '#lib/react-router-aid/react-router-aid';
|
2
3
|
import { GitHubLogoIcon } from '@radix-ui/react-icons';
|
3
4
|
import { Box, Button, Grid, Heading, Text } from '@radix-ui/themes';
|
@@ -34,8 +35,8 @@ export const Component = () => {
|
|
34
35
|
<meta name='viewport' content='width=device-width, initial-scale=1'/>
|
35
36
|
<title>{templateVariables.title}</title>
|
36
37
|
{import.meta.env.DEV && <link rel='stylesheet' href={radixStylesUrl}/>}
|
37
|
-
<link rel='icon' href={PROJECT_DATA.faviconPath.replace(`.svg`, `.ico`) + `?v=1
|
38
|
-
<link rel='icon' href={PROJECT_DATA.faviconPath + `?v=1
|
38
|
+
<link rel='icon' href={faviconUrl(PROJECT_DATA.faviconPath.replace(`.svg`, `.ico`) + `?v=1`, PROJECT_DATA.basePath)} sizes='256 x 256'/>
|
39
|
+
<link rel='icon' href={faviconUrl(PROJECT_DATA.faviconPath + `?v=1`, PROJECT_DATA.basePath)} sizes='any' type='image/svg+xml'/>
|
39
40
|
</head>
|
40
41
|
<body style={{ margin: 0 }}>
|
41
42
|
<Layout />
|
@@ -78,6 +79,40 @@ const Layout = () => {
|
|
78
79
|
</Flex>);
|
79
80
|
return (<Theme asChild>
|
80
81
|
<Grid width={{ initial: 'var(--container-4)' }} areas="'header header header header header header header header' 'sidebar sidebar . content content content content content'" rows='min-content auto' columns='repeat(8, 1fr)' gapX='2' my='8' mx='auto'>
|
82
|
+
<style>
|
83
|
+
{`
|
84
|
+
/* Shiki code blocks */
|
85
|
+
pre.shiki {
|
86
|
+
margin: 1rem 0;
|
87
|
+
padding: 1rem;
|
88
|
+
border-radius: 8px;
|
89
|
+
overflow-x: auto;
|
90
|
+
font-size: 14px;
|
91
|
+
line-height: 1.6;
|
92
|
+
background-color: #f6f8fa;
|
93
|
+
}
|
94
|
+
|
95
|
+
/* Light mode: use --shiki-light CSS variables from inline styles */
|
96
|
+
pre.shiki span {
|
97
|
+
color: var(--shiki-light);
|
98
|
+
}
|
99
|
+
|
100
|
+
/* Dark mode - Radix Themes uses [data-is-root-theme="dark"] */
|
101
|
+
[data-is-root-theme="dark"] pre.shiki {
|
102
|
+
background-color: #1a1b26;
|
103
|
+
}
|
104
|
+
|
105
|
+
[data-is-root-theme="dark"] pre.shiki span {
|
106
|
+
color: var(--shiki-dark);
|
107
|
+
}
|
108
|
+
|
109
|
+
pre.shiki code {
|
110
|
+
font-family: 'JetBrains Mono', 'Fira Code', 'SF Mono', Consolas, 'Liberation Mono', Menlo, monospace;
|
111
|
+
background: transparent;
|
112
|
+
display: block;
|
113
|
+
}
|
114
|
+
`}
|
115
|
+
</style>
|
81
116
|
{header}
|
82
117
|
{isShowSidebar && (<Sidebar gridColumn='1 / 3' gridRow='2 / auto' data={sidebar.items}/>)}
|
83
118
|
<Box gridArea='content / content / auto / 8'>
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"root.jsx","sourceRoot":"","sources":["../../../src/template/routes/root.tsx"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"root.jsx","sourceRoot":"","sources":["../../../src/template/routes/root.tsx"],"names":[],"mappings":"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"}
|
@@ -1,3 +1,3 @@
|
|
1
1
|
import type { Vite } from '#dep/vite/index';
|
2
|
-
export declare const injectManifestIntoHtml: (html: string, manifest: Vite.Manifest) => string;
|
2
|
+
export declare const injectManifestIntoHtml: (html: string, manifest: Vite.Manifest, basePath: string) => string;
|
3
3
|
//# sourceMappingURL=manifest.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../../../src/template/server/manifest.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../../../src/template/server/manifest.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAA;AAG3C,eAAO,MAAM,sBAAsB,GACjC,MAAM,MAAM,EACZ,UAAU,IAAI,CAAC,QAAQ,EACvB,UAAU,MAAM,KACf,MAGF,CAAA"}
|
@@ -1,16 +1,17 @@
|
|
1
|
+
import { assetUrl } from '#api/utils/asset-url/index';
|
1
2
|
import { Group, Str } from '@wollybeard/kit';
|
2
|
-
export const injectManifestIntoHtml = (html, manifest) => {
|
3
|
-
const assets = getRelevantAsssetsFromManifest(manifest);
|
3
|
+
export const injectManifestIntoHtml = (html, manifest, basePath) => {
|
4
|
+
const assets = getRelevantAsssetsFromManifest(manifest, basePath);
|
4
5
|
return injectAssetsIntoHtml(html, assets);
|
5
6
|
};
|
6
|
-
const getRelevantAsssetsFromManifest = (manifest) => {
|
7
|
+
const getRelevantAsssetsFromManifest = (manifest, basePath) => {
|
7
8
|
const htmlAssets = [];
|
8
9
|
for (const manifestChunk of Object.values(manifest)) {
|
9
10
|
if (manifestChunk.isEntry) {
|
10
|
-
htmlAssets.push({ type: `js`, path:
|
11
|
+
htmlAssets.push({ type: `js`, path: assetUrl(manifestChunk.file, basePath) });
|
11
12
|
}
|
12
13
|
for (const cssItem of manifestChunk.css ?? []) {
|
13
|
-
htmlAssets.push({ type: `css`, path:
|
14
|
+
htmlAssets.push({ type: `css`, path: assetUrl(cssItem, basePath) });
|
14
15
|
}
|
15
16
|
}
|
16
17
|
return Group.by(htmlAssets, `type`);
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../../src/template/server/manifest.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../../src/template/server/manifest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAA;AAErD,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAA;AAE5C,MAAM,CAAC,MAAM,sBAAsB,GAAG,CACpC,IAAY,EACZ,QAAuB,EACvB,QAAgB,EACR,EAAE;IACV,MAAM,MAAM,GAAG,8BAA8B,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;IACjE,OAAO,oBAAoB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;AAC3C,CAAC,CAAA;AAED,MAAM,8BAA8B,GAAG,CACrC,QAAuB,EACvB,QAAgB,EACG,EAAE;IACrB,MAAM,UAAU,GAAgB,EAAE,CAAA;IAElC,KAAK,MAAM,aAAa,IAAI,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;QACpD,IAAI,aAAa,CAAC,OAAO,EAAE,CAAC;YAC1B,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,aAAa,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAA;QAC/E,CAAC;QACD,KAAK,MAAM,OAAO,IAAI,aAAa,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC;YAC9C,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAA;QACrE,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,CAAC,CAAA;AACrC,CAAC,CAAA;AAcD,MAAM,oBAAoB,GAAG,CAC3B,IAAY,EACZ,MAAyB,EACjB,EAAE;IACV,MAAM,UAAU,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE;QACnC,GAAG,EAAE,CAAC,MAAM,EAAE,EAAE,CACd,MAAM;aACH,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,gCAAgC,KAAK,CAAC,IAAI,MAAM,CAAC;aAChE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;QAC3B,EAAE,EAAE,CAAC,MAAM,EAAE,EAAE,CACb,MAAM;aACH,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,8BAA8B,KAAK,CAAC,IAAI,aAAa,CAAC;aACrE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;KAC5B,CAAC,CAAA;IAEF,OAAO,IAAI;SACR,OAAO,CAAC,SAAS,EAAE,GAAG,UAAU,CAAC,GAAG,IAAI,EAAE,SAAS,CAAC;SACpD,OAAO,CAAC,SAAS,EAAE,GAAG,UAAU,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,CAAA;AACxD,CAAC,CAAA"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"render-page.d.ts","sourceRoot":"","sources":["../../../src/template/server/render-page.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;
|
1
|
+
{"version":3,"file":"render-page.d.ts","sourceRoot":"","sources":["../../../src/template/server/render-page.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AAY1D,eAAO,MAAM,UAAU,GACrB,sBAAsB,WAAW,CAAC,oBAAoB,aAsCvD,CAAA"}
|
@@ -4,6 +4,7 @@ import { Arr } from '@wollybeard/kit';
|
|
4
4
|
import { StrictMode } from 'react';
|
5
5
|
import * as ReactDomServer from 'react-dom/server';
|
6
6
|
import { createStaticRouter, StaticRouterProvider } from 'react-router';
|
7
|
+
import PROJECT_DATA from 'virtual:polen/project/data.jsonsuper';
|
7
8
|
import viteClientAssetManifest from 'virtual:polen/vite/client/manifest';
|
8
9
|
import { injectManifestIntoHtml } from "./manifest.js";
|
9
10
|
import { view } from "./view.js";
|
@@ -20,7 +21,7 @@ export const renderPage = (staticHandlerContext) => {
|
|
20
21
|
return ResponseInternalServerError();
|
21
22
|
}
|
22
23
|
if (__BUILDING__) {
|
23
|
-
html = injectManifestIntoHtml(html, viteClientAssetManifest);
|
24
|
+
html = injectManifestIntoHtml(html, viteClientAssetManifest, PROJECT_DATA.basePath);
|
24
25
|
}
|
25
26
|
// todo: what is this?
|
26
27
|
if (import.meta.env.DEV) {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"render-page.jsx","sourceRoot":"","sources":["../../../src/template/server/render-page.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AAEtD,OAAO,EAAE,2BAA2B,EAAE,MAAM,eAAe,CAAA;AAE3D,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAA;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAA;AAClC,OAAO,KAAK,cAAc,MAAM,kBAAkB,CAAA;AAClD,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAA;AACvE,OAAO,uBAAuB,MAAM,oCAAoC,CAAA;AACxE,OAAO,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAA;AACtD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAEhC,MAAM,CAAC,MAAM,UAAU,GAAG,CACxB,oBAAsD,EACtD,EAAE;IACF,MAAM,MAAM,GAAG,kBAAkB,CAAC,IAAI,CAAC,UAAU,EAAE,oBAAoB,CAAC,CAAA;IAExE,IAAI,IAAI,GAAG,EAAE,CAAA;IAEb,IAAI,CAAC;QACH,IAAI,GAAG,cAAc,CAAC,cAAc,CAClC,CAAC,UAAU,CACT;QAAA,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,oBAAoB,CAAC,EACtE;MAAA,EAAE,UAAU,CAAC,CACd,CAAA;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,WAAW,CAAC,IAAI,KAAK,CAAC,uCAAuC,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAA;QAC1E,OAAO,2BAA2B,EAAE,CAAA;IACtC,CAAC;IAED,IAAI,YAAY,EAAE,CAAC;QACjB,IAAI,GAAG,sBAAsB,CAAC,IAAI,EAAE,uBAAuB,CAAC,CAAA;
|
1
|
+
{"version":3,"file":"render-page.jsx","sourceRoot":"","sources":["../../../src/template/server/render-page.tsx"],"names":[],"mappings":"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"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../../../src/template/server/ssg/generate.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AAO1D,eAAO,MAAM,QAAQ,GAAU,MAAM,WAAW,CAAC,aAAa,
|
1
|
+
{"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../../../src/template/server/ssg/generate.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AAO1D,eAAO,MAAM,QAAQ,GAAU,MAAM,WAAW,CAAC,aAAa,kBAsF7D,CAAA"}
|
@@ -6,7 +6,17 @@ import { renderPage } from '../render-page.jsx';
|
|
6
6
|
import { getRoutesPaths } from "./get-route-paths.js";
|
7
7
|
export const generate = async (view) => {
|
8
8
|
const handler = async (ctx) => {
|
9
|
-
|
9
|
+
// For SSG, we need to create a request with the base path prepended
|
10
|
+
// so React Router can match it correctly
|
11
|
+
const url = new URL(ctx.req.raw.url);
|
12
|
+
const basePath = PROJECT_DATA.basePath === '/' ? '' : PROJECT_DATA.basePath.slice(0, -1);
|
13
|
+
// Create a new request with the base path prepended to the pathname
|
14
|
+
const modifiedRequest = new Request(`${url.protocol}//${url.host}${basePath}${url.pathname}${url.search}`, {
|
15
|
+
method: ctx.req.raw.method,
|
16
|
+
headers: ctx.req.raw.headers,
|
17
|
+
body: ctx.req.raw.body,
|
18
|
+
});
|
19
|
+
const staticHandlerContext = await view.query(modifiedRequest);
|
10
20
|
if (staticHandlerContext instanceof Response) {
|
11
21
|
return staticHandlerContext;
|
12
22
|
}
|
@@ -16,12 +26,45 @@ export const generate = async (view) => {
|
|
16
26
|
for (const routePath of routePaths) {
|
17
27
|
app.get(routePath, handler);
|
18
28
|
}
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
});
|
23
|
-
|
24
|
-
|
29
|
+
// For large schemas, we need to process in smaller batches to avoid memory issues
|
30
|
+
const BATCH_SIZE = 50;
|
31
|
+
const totalPaths = routePaths.length;
|
32
|
+
console.log(`[info] Generating ${totalPaths} static pages...`);
|
33
|
+
for (let i = 0; i < totalPaths; i += BATCH_SIZE) {
|
34
|
+
const batchPaths = routePaths.slice(i, i + BATCH_SIZE);
|
35
|
+
const batchApp = new Hono.Hono();
|
36
|
+
// Create a custom handler for batch processing that includes base path handling
|
37
|
+
const batchHandler = async (ctx) => {
|
38
|
+
// For SSG, we need to create a request with the base path prepended
|
39
|
+
const url = new URL(ctx.req.raw.url);
|
40
|
+
const basePath = PROJECT_DATA.basePath === '/' ? '' : PROJECT_DATA.basePath.slice(0, -1);
|
41
|
+
// Create a new request with the base path prepended to the pathname
|
42
|
+
const modifiedRequest = new Request(`${url.protocol}//${url.host}${basePath}${url.pathname}${url.search}`, {
|
43
|
+
method: ctx.req.raw.method,
|
44
|
+
headers: ctx.req.raw.headers,
|
45
|
+
body: ctx.req.raw.body,
|
46
|
+
});
|
47
|
+
const staticHandlerContext = await view.query(modifiedRequest);
|
48
|
+
if (staticHandlerContext instanceof Response) {
|
49
|
+
return staticHandlerContext;
|
50
|
+
}
|
51
|
+
return renderPage(staticHandlerContext);
|
52
|
+
};
|
53
|
+
// Register only the routes for this batch
|
54
|
+
for (const routePath of batchPaths) {
|
55
|
+
batchApp.get(routePath, batchHandler);
|
56
|
+
}
|
57
|
+
console.log(`[info] Processing batch ${Math.floor(i / BATCH_SIZE) + 1}/${Math.ceil(totalPaths / BATCH_SIZE)} (${batchPaths.length} pages)...`);
|
58
|
+
const result = await Hono.SSG.toSSG(batchApp, NodeFs, {
|
59
|
+
concurrency: 5, // Reduced concurrency for memory efficiency
|
60
|
+
dir: PROJECT_DATA.paths.relative.build.root,
|
61
|
+
});
|
62
|
+
if (!result.success) {
|
63
|
+
throw new Error(`Failed to generate static site at batch ${Math.floor(i / BATCH_SIZE) + 1}`, {
|
64
|
+
cause: result.error,
|
65
|
+
});
|
66
|
+
}
|
25
67
|
}
|
68
|
+
console.log(`[info] Successfully generated ${totalPaths} static pages.`);
|
26
69
|
};
|
27
70
|
//# sourceMappingURL=generate.js.map
|