Commit graph

17 commits

Author SHA1 Message Date
f1d4be2553 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
30ad9c27ff 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
8c0bd4c6c6 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
f4cda52770 initial run of scan3 on sandwich 2025-08-02 20:56:36 -04:00
b0c7374d9f stuff for file view 2025-08-02 20:56:36 -04:00
2cb5f47d4f get clo file viewer running 2025-08-02 20:56:36 -04:00
91c646d454 finish q+a 2025-08-02 20:56:36 -04:00
7bd2a90f7f work on porting paperclover.net and also some tests 2025-08-02 20:56:36 -04:00
5267ab30ac incremental sitegen dev server! 2025-06-13 00:13:22 -07:00
80c499f443 fine grained incremental rebuilding 2025-06-11 00:17:58 -07:00
b1c9c874bb add a file watcher, live rebuild.
this is only verified functional on windows 7
2025-06-10 20:06:32 -07:00
e0c58d4883 almost implement views 2025-06-10 01:13:59 -07:00
21fd85a871 stuff 2025-06-09 21:13:51 -07:00
60916424ff incremental generator 2025-06-09 00:12:41 -07:00
96b08a9d7e primative backend support 2025-06-08 15:12:04 -07:00
3f3342f019 add content type library 2025-06-08 12:38:25 -07:00
310170fc98 i accidentally deleted the repo, but recovered it. i'll start committing
it was weird. i pressed delete on a subfolder, i think one of the
pages.off folders that i was using. and then, suddenly, nvim on windows
7 decided to delete every file in the directory. they weren't shred off
the space time continuum, but just marked deleted. i had to pay $80 to
get access to a software that could see them. bleh!

just seeing all my work, a little over a week, was pretty heart
shattering. but i remembered that long ago, a close friend said i could
call them whenever i was feeling sad. i finally took them up on that
offer. the first time i've ever called someone for emotional support.
but it's ok. i got it back. and the site framework is better than ever.

i'm gonna commit and push more often. the repo is private anyways.
2025-06-06 23:38:02 -07:00