UNPKG

@zyrab/domo-ssg

Version:

A Static Site Generator (SSG) for Domo-based projects.

93 lines (66 loc) 1.92 kB
# @zyrab/domo-ssg **Minimal static site generator (SSG) for Domo** Write JavaScript templates using [@zyrab/domo](https://www.npmjs.com/package/@zyrab/domo), define routes and layouts, and generate static HTML files with optional event hydration. --- ## Features - Declarative page structure with `Domo` and `DomoSVG` - Simple nested route tree (`routes.js`) - Custom layout wrapper (`layout.js`) - Virtual DOM-like output (no DOM dependency during build) - Hydration-ready: automatic inline scripts for events - Built-in cleanup and sitemap generation --- ## Installation ```bash pnpm add -D @zyrab/domo-ssg ``` Note: Use in a pnpm monorepo if you're working with other Domo packages like @zyrab/domo or @zyrab/domo-router. ## Usage ### 1. Scaffold basic structure ```bash pnpm exec domo-ssg-init ``` This will create: ```js domo.config.js; routes.js; layout.js; ``` ### 2. Add a script to your root package.json ```json { "scripts": { "build": "pnpm --filter @zyrab/domo-ssg exec node src/index.js" } } ``` ### 3. Run the generator ```bash pnpm build ``` # Project Structure | File | Purpose | | ---------------- | ----------------------------------- | | `routes.js` | Your route tree (nested supported) | | `layout.js` | Optional layout wrapper | | `domo.config.js` | Customize output dir, base URL, etc | # Example Route File ```js import Domo from "@zyrab/domo"; export const routes = { "/": () => Domo("div").txt("Hello Home"), "/about": () => Domo("div").txt("About Page"), }; ``` # Configuration (domo.config.js) ```js export default { outDir: "./dist", routesFile: "./routes.js", layout: "./layout.js", exclude: ["css", "js", "assets"], baseUrl: "https://example.com", }; ``` # License MIT — © Zyrab