update readme

Update readme.md
This commit is contained in:
clover caruso 2025-06-13 00:29:30 -07:00
parent 5267ab30ac
commit 23aeb893e4

137
readme.md
View file

@ -1,67 +1,70 @@
# clover sitegen framework # clover sitegen framework
this repository contains clover's "sitegen" framework, which is a set of tools this repository contains clover's "sitegen" framework, which is a set of tools
that assist building websites. these tools power https://paperclover.net. that assist building websites. these tools power https://paperclover.net.
- HTML "Server Side Rendering") engine written from scratch. - HTML "Server Side Rendering") engine written from scratch.
- A more practical JSX runtime (`class` instead of `className`, etc). - A more practical JSX runtime (`class` instead of `className`, etc).
- Transparent integration with [Marko][1] to mix component types. - Transparent integration with [Marko][1] to mix component types.
- MDX support for text-heavy content pages. - MDX support for text-heavy content pages.
- Incremental static site generator and build system - Incremental static site generator and build system
- Build entire production site at start, incremental updates when pages - Build entire production site at start, incremental updates when pages
change; Build system state survives coding sessions. change; Build system state survives coding sessions.
- The only difference in development and production mode is hidden - The only difference in development and production mode is hidden
source-maps and stripped assertions and `console.debug` calls. The site source-maps and stripped assertions and `console.debug` calls. The site
you see locally is the site you see deployed. you see locally is the site you see deployed.
- Tools for building complex, content heavy web sites. - (TODO) Tests, Lints, and Type-checking is run alongside, and only re-runs
- Static asset serving with ETag and build-time compression. checks when the files change. For example, changing a component re-tests
- Dynamic server side rendering from within backend code. only pages that use that component and re-lints only the changed file.
- Databases with a typed SQLite wrapper. - Integrated libraries for building complex, content heavy web sites.
- Built on the battle-tested Node.js runtime. Partial support for Deno and Bun. - Static asset serving with ETag and build-time compression.
- Dynamicly rendered pages with static client. (`#import "#sitegen/view"`)
[1]: https://next.markojs.com - Databases with a typed SQLite wrapper. (`import "#sitegen/sqlite"`)
- TODO: Meta and Open Graph generation. (`export const meta`)
Included is `src`, which contains `paperclover.net`. Website highlights: - TODO: Font subsetting tools to reduce
- Built on the battle-tested Node.js runtime. Partial support for Deno and Bun.
- [Question/Answer board, custom markdown parser and components][q+a].
- [File viewer with prefetching + client-side navigation][file]. [1]: https://next.markojs.com
- [Personal, friends-only blog with password protection][friends].
Included is `src`, which contains `paperclover.net`. Website highlights:
[q+a]: https://paperclover.net/q+a
[file]: https://paperclover.net/file - [Question/Answer board, custom markdown parser and components][q+a].
[friends]: https://paperclover.net/friends - [File viewer with prefetching + client-side navigation][file].
- [Personal, friends-only blog with password protection][friends].
## Development
[q+a]: https://paperclover.net/q+a
minimum system requirements: [file]: https://paperclover.net/file
- a cpu with at least 1 core. [friends]: https://paperclover.net/friends
- random access memory.
- windows 7 or later, macos, or other operating system. ## Development
my development machine, for example, is Dell Inspiron 7348 with Core i7 minimum system requirements:
- a cpu with at least 1 core.
``` - random access memory.
npm install - windows 7 or later, macos, or other operating system.
# production generation my development machine, for example, is Dell Inspiron 7348 with Core i7
node run generate
```
# live development environment npm install
node repl
``` # production generation
node run generate
`repl.js` will open a read-eval-print-loop where plugin state is cached (on my node .clover/out/server
2014 dev laptop, startup time is 600-1000ms). every file in `framework` and
`src` besides `hot.ts` can be edited and quickly re-run. for example, to run # "development" watch mode
`framework/generate.ts`, you can type "generate" into the shell. since node run watch
top-level await is not supported (plugins are built on `require` as Node has ```
poor module support), CLIs can include a `main` function, which is executed
when the REPL runs it. <!-- `repl.js` will open a read-eval-print-loop where plugin state is cached (on my -->
<!-- 2014 dev laptop, startup time is 600-1000ms). every file in `framework` and -->
TODO: in the future, the repl will have a "dev" command which will do the incremental <!-- `src` besides `hot.ts` can be edited and quickly re-run. for example, to run -->
site build + host, possibly immediatly on opening the repl. <!-- `framework/generate.ts`, you can type "generate" into the shell. since -->
<!-- top-level await is not supported (plugins are built on `require` as Node has -->
## Contributions <!-- poor module support), CLIs can include a `main` function, which is executed -->
<!-- when the REPL runs it. -->
No contributions to `src` accepted, only `framework`.
## Contributions
No contributions to `src` accepted, only `framework`.