framework/backend/entry-node.ts | 1 + framework/bundle.ts | 20 +- framework/debug.safe.ts | 17 + framework/engine/ssr.test.tsx | 21 + framework/esbuild-support.ts | 6 + framework/generate.ts | 58 +- framework/incremental.ts | 4 +- framework/lib/async.ts | 279 +++++++++ framework/lib/view.ts | 23 +- framework/queue.ts | 210 ------- framework/test-fixture/Component.marko | 4 + framework/test-fixture/UseComponent.marko | 6 + framework/watch.ts | 10 +- package-lock.json | 1065 +++++++++++++++++++++++++++++++- package.json | 2 + readme.md | 23 +- run.js | 39 +- src/admin.ts | 13 +- src/backend.ts | 13 + src/blog/pages/25/marko-intro.markodown | 283 +++++++++ src/components/Video.tsx | 57 -- src/components/video.client.ts | 29 - src/pages/404.mdx | 6 - src/q+a/backend.ts | 6 +- src/q+a/components/Question.marko | 37 -- src/q+a/components/QuestionForm.marko | 13 - src/q+a/components/clickable-links.client.ts | 57 -- src/q+a/image.tsx | 82 +++ src/q+a/pages/q+a.marko | 8 +- src/q+a/scripts/editor.client.tsx | 115 ++++ src/q+a/tags/clickable-links.client.ts | 57 ++ src/q+a/tags/question-form.marko | 13 + src/q+a/tags/question.marko | 37 ++ src/q+a/views/backend-inbox.client.ts | 74 +++ src/q+a/views/editor.css | 39 ++ src/q+a/views/editor.marko | 65 ++ src/q+a/views/image-embed.marko | 16 + src/q+a/views/permalink.marko | 47 ++ src/site.ts | 9 +- src/tags/Video.tsx | 57 ++ src/tags/video.client.ts | 29 + tsconfig.json | 3 +- 42 files changed, 2450 insertions(+), 503 deletions(-)