@zyrab/domo-ssg
v0.5.2
Published
A Static Site Generator (SSG) for Domo-based projects.
Downloads
18
Maintainers
Readme
@zyrab/domo-ssg
Minimal static site generator (SSG) for Domo
Write JavaScript templates using @zyrab/domo, define routes and layouts, and generate static HTML files with optional event hydration.
Features
- Declarative page structure with
DomoandDomoSVG - 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
pnpm add -D @zyrab/domo-ssgNote: 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
pnpm exec domo-ssg-initThis will create:
domo.config.js;
routes.js;
layout.js;2. Add a script to your root package.json
{
"scripts": {
"build": "pnpm --filter @zyrab/domo-ssg exec node src/index.js"
}
}3. Run the generator
pnpm buildProject 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
import Domo from "@zyrab/domo";
export const routes = {
"/": () => Domo("div").txt("Hello Home"),
"/about": () => Domo("div").txt("About Page"),
};Configuration (domo.config.js)
export default {
outDir: "./dist",
routesFile: "./routes.js",
layout: "./layout.js",
exclude: ["css", "js", "assets"],
baseUrl: "https://example.com",
};License
MIT — © Zyrab
