feat(native-el-ui): full el-html vessel rewrite — no raw HTML strings #15
Binary file not shown.
Vendored
+6
@@ -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; }
|
||||
|
||||
@@ -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
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user