Commit graph

10 commits

Author SHA1 Message Date
c5ac450f21 feat: dynamic page regeneration (#24)
the asset system is reworked to support "dynamic" entries, where each
entry is a separate file on disk containing the latest generation's
headers+raw+gzip+zstd. when calling view.regenerate, it will look for
pages that had "export const regenerate" during generation, and render
those pages using the view system, but then store the results as assets
instead of sending as a response.

pages configured as regenerable are also bundled as views, using the
non-aliasing key "page:${page.id}". this cannot alias because file
paths may not contain a colon.
2025-08-11 22:43:27 -07:00
a8d7efe9ec chore: rework Clover Engine API, remove "SSR" term
"server side rendering" is a misleading term since it implies there is a
server. that isn't neccecarily the case here, since it supports running
in the browser. I think "clover engine" is cute, short for "clover html
rendering engine". Instead of "server side rendering", it's just rendering.

This commit makes things a lot more concise, such as `ssr.ssrAsync`
being renamed to `render.async` to play nicely with namespaced imports.
`getCurrentRender` and `setCurrentRender` are just `current` and
`setCurrent`, and the addon interface has been redesigned to force
symbols with a wrapping helper.
2025-08-02 22:22:07 -04:00
66da129036 rewrite incremental.ts (#21)
the problems with the original implementation was mostly around error
handling. sources had to be tracked manually and provided to each
incremental output. the `hasArtifact` check was frequently forgotten.
this has been re-abstracted through `incr.work()`, which is given an
`io` object. all fs reads and module loads go through this interface,
which allows the sources to be properly tracked, even if it throws.

closes #12
2025-08-02 20:56:36 -04:00
acefb22c6a finish q+a 2025-08-02 20:56:36 -04:00
da3d2ec6bb work on porting paperclover.net and also some tests 2025-08-02 20:56:36 -04:00
a41569983f incremental sitegen dev server! 2025-06-13 00:13:22 -07:00
d5ef829f01 fine grained incremental rebuilding 2025-06-11 00:17:58 -07:00
925366e79e add a file watcher, live rebuild.
this is only verified functional on windows 7
2025-06-10 20:06:32 -07:00
c8b5e91251 almost implement views 2025-06-10 01:13:59 -07:00
a1d17a5d61 stuff 2025-06-09 21:13:51 -07:00
Renamed from framework/generate.tsx (Browse further)