feat(native-el-ui): full el-html vessel rewrite — no raw HTML strings #15

Merged
will.anderson merged 21 commits from feat/native-el-ui into dev 2026-05-09 17:32:00 +00:00
4 changed files with 10 additions and 2 deletions
Showing only changes of commit 2a3f998827 - Show all commits
Binary file not shown.
+6
View File
@@ -325,3 +325,9 @@ el_val_t gcs_read(el_val_t bucket, el_val_t object_name) {
if (!resp) return EL_STR("");
return resp;
}
/* Browser JS interop stubs — server-side no-ops for checkout.el browser globals.
* checkout.el contains JS inline: window.neuronCheckoutFree&&window.neuronCheckoutFree()
* which the El HTML parser exposes as C identifiers in the generated checkout.c. */
el_val_t window = 0;
el_val_t neuronCheckoutFree(el_val_t v) { (void)v; return 0; }
+2
View File
@@ -9,4 +9,6 @@ build {
target "release"
entry "src/main.el"
output "dist/"
c_source "dist/web_stubs.c"
c_source "dist/vessel_stubs.c"
}
+2 -2
View File
@@ -12,9 +12,9 @@
// anchors, which the HTML5 parser resolves via the adoption agency algorithm,
// producing mismatched </div> tags that break gallery-grid's closing tag and
// pull sibling elements into the grid as spurious grid items.
let gallery_share_allowlist: String = "{\"p\":[],\"br\":[],\"strong\":[],\"em\":[],\"u\":[],\"s\":[],\"code\":[],\"pre\":[],\"ul\":[],\"ol\":[],\"li\":[],\"h1\":[],\"h2\":[],\"h3\":[],\"h4\":[],\"blockquote\":[]}"
fn gallery_page(cards_json: String, supabase_url: String, supabase_anon_key: String) -> String {
// Moved from module-level to avoid duplicate main() when linked with other modules.
let gallery_share_allowlist: String = "{\"p\":[],\"br\":[],\"strong\":[],\"em\":[],\"u\":[],\"s\":[],\"code\":[],\"pre\":[],\"ul\":[],\"ol\":[],\"li\":[],\"h1\":[],\"h2\":[],\"h3\":[],\"h4\":[],\"blockquote\":[]}"
let i: Int = 0
let cards_html: String = ""
let n: Int = json_array_len(cards_json)