Step 18 (part 8): Playground page + compile handler + url_decode fix
sx/sx/hyperscript.sx — _hyperscript playground page at /sx/(applications.(hyperscript)) - compile-result defcomp (SSR compilation display) - pipeline documentation (tokenize → parse → compile) - example showcases with pre-compiled output - sx-post form → handler for interactive compilation sx/sx/handlers/hyperscript-api.sx — POST handler: /sx/(applications.(hyperscript.(api.compile))) Accepts source param, returns compiled SX + parse tree HTML NOTE: hs-parse returns (do) in server context — JIT/CEK runtime issue where parser closures don't evaluate correctly. Works in test runner (3127/3127). Investigating separately. sx_server.ml — url_decode fix: decode + as space in form data Standard application/x-www-form-urlencoded uses + for spaces. Nav: _hyperscript added to Applications section. Config: handler:hs- prefix added for handler dispatch. 3127/3127 tests, zero regressions. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -1749,6 +1749,9 @@ let url_decode s =
|
||||
Buffer.add_char buf (Char.chr (int_of_string ("0x" ^ hex)))
|
||||
with _ -> Buffer.add_char buf s.[!i]);
|
||||
i := !i + 3
|
||||
end else if s.[!i] = '+' then begin
|
||||
Buffer.add_char buf ' ';
|
||||
i := !i + 1
|
||||
end else begin
|
||||
Buffer.add_char buf s.[!i];
|
||||
i := !i + 1
|
||||
|
||||
Reference in New Issue
Block a user