framework/backend/entry-node.ts | 7 +- framework/bundle.ts | 15 ++- framework/engine/marko-runtime.ts | 1 - framework/engine/render.ts | 9 +- framework/generate.ts | 6 +- framework/incremental.ts | 2 +- framework/lib/lru.ts | 3 +- framework/lib/meta.ts | 2 +- framework/lib/mime.ts | 2 +- framework/lib/mime.txt | 2 +- framework/lib/sitegen.ts | 14 +- framework/lib/subprocess.ts | 108 ++++++++-------- framework/lib/view.ts | 9 +- run.js | 22 +++- src/admin.ts | 4 +- src/backend.ts | 1 + src/deploy.ts | 51 ++++++++ src/file-viewer/backend.tsx | 31 +++-- src/file-viewer/bin/scan3.ts | 5 +- src/file-viewer/cache.ts | 219 ++++++++++++++++++++++---------- src/file-viewer/models/FilePermissions.ts | 22 ++-- src/file-viewer/models/MediaFile.ts | 5 +- src/file-viewer/rules.ts | 2 +- src/file-viewer/views/clofi.client.ts | 7 +- src/file-viewer/views/clofi.tsx | 122 +++++++++--------- src/pages/in-the-summer.marko | 7 +- src/pages/index.marko | 7 +- src/pages/subscribe.client.ts | 97 -------------- src/pages/subscribe.css | 5 +- src/pages/subscribe.marko | 11 +- src/pages/waterfalls.marko | 3 + src/q+a/artifacts.ts | 103 ++++----------- src/q+a/clover-markdown.tsx | 13 +- src/q+a/models/Question.ts | 9 +- src/q+a/tags/question.marko | 4 +- src/scripts/vendor/dash.client.ts | 1 + src/scripts/vendor/hls.client.ts | 1 + src/source-of-truth.ts | 66 +++++----- src/tags/PhotoGrid.css | 16 --- src/tags/PhotoGrid.tsx | 135 -------------------- src/tags/clover-video.client.ts | 29 +++-- src/tags/clover-video.css | 6 +- src/tags/clover-video.marko | 17 ++- src/tags/image.tsx | 55 ++++++++ src/tags/photo-grid.css | 16 +++ src/tags/photo-grid.tsx | 135 ++++++++++++++++++++ src/tags/questions-embed.css | 9 ++ src/tags/questions-embed.marko | 16 +++ 48 files changed, 787 insertions(+), 645 deletions(-)