mirror of
https://github.com/webstudio-is/webstudio.git
synced 2026-11-09 22:14:29 +09:00
Ref https://github.com/webstudio-is/webstudio/issues/3763 Here added new "ssg" template to cli. Generated non-remix app. `vike build` generates static site at `dist/client`. ``` cd fixtures/ssg pnpm build npx sirv-cli client/dist ```
31 lines
995 B
TypeScript
31 lines
995 B
TypeScript
import { type Root, createRoot } from "react-dom/client";
|
|
import type { OnRenderClientSync } from "vike/types";
|
|
// @todo think about how to make __generated__ typeable
|
|
/* eslint-disable-next-line @typescript-eslint/ban-ts-comment */
|
|
// @ts-ignore
|
|
import { CustomCode } from "../app/__generated__/_index";
|
|
|
|
let root: Root;
|
|
|
|
export const onRenderClient: OnRenderClientSync = (pageContext) => {
|
|
const lang = pageContext.data.pageMeta.language || "en";
|
|
const Head = pageContext.config.Head ?? (() => <></>);
|
|
const Page = pageContext.Page ?? (() => <></>);
|
|
const htmlContent = (
|
|
<>
|
|
<head>
|
|
<meta charSet="UTF-8" />
|
|
<meta name="viewport" content="width=device-width,initial-scale=1" />
|
|
<Head data={pageContext.data} />
|
|
<CustomCode />
|
|
</head>
|
|
<Page data={pageContext.data} />
|
|
</>
|
|
);
|
|
if (root === undefined) {
|
|
root = createRoot(document.documentElement);
|
|
}
|
|
document.documentElement.lang = lang;
|
|
root.render(htmlContent);
|
|
};
|