Commit graph

37 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
568fd83c34 fix: node 22 wasn't stopped by compat check 2025-08-02 23:48:23 -04:00
11ce8149f9 fix: async.once was incorrectly written
closes #18
2025-08-02 22:30:53 -04: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
5bd97067c3 sot: fix deployment 2025-08-02 20:56:36 -04:00
08d7c02c37 use port from env in servers 2025-08-02 20:56:36 -04:00
d9bf3c4161 setup source of truth server 2025-08-02 20:56:36 -04:00
f985a22b33 add "source of truth" server to replace the old cache url 2025-08-02 20:56:36 -04:00
756dbc7805 finish scan3 2025-08-02 20:56:36 -04:00
68b891a022 start the markdown parser 2025-08-02 20:56:36 -04:00
9f8c9fd3b6 format 2025-08-02 20:56:36 -04:00
52b0b3b8f2 initial run of scan3 on sandwich 2025-08-02 20:56:36 -04:00
60ee895d8d actually run ffmpeg fr fr 2025-08-02 20:56:36 -04:00
6e248f1e06 move discovered ffmpeg presets 2025-08-02 20:56:36 -04:00
87253a4a27 stuff for file view 2025-08-02 20:56:36 -04:00
c3f786b944 file viewer work 2025-08-02 20:56:36 -04:00
bb4e57000b get clo file viewer running 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
b1d68a6041 experiment: streaming suspense implementation 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
15a4600c48 clean up watching 2025-06-10 22:29:12 -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
399ccec226 incremental generator 2025-06-09 00:12:41 -07:00
92ddecc37e more organize 2025-06-08 17:31:03 -07:00
0c5db556f1 primative backend support 2025-06-08 15:12:04 -07:00
46a67453a1 add content type library 2025-06-08 12:38:25 -07:00
7242c6eb89 fix all type errors 2025-06-07 17:01:34 -07:00
f841f766d2 restore clover ssr engine from the dead. comment the code a bit too. 2025-06-07 16:17:52 -07:00
8f6b474120 recover marko-runtime.ts and parts of ssr.ts 2025-06-07 03:46:14 -07:00
cc4db4a4e0 restore sitegen.tsx 2025-06-07 02:25:06 -07:00
a0d9b18b81 delete corrupted files and start recovering sitegen.tsx 2025-06-07 01:24:32 -07:00
af60d1172f 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