code wiki / _hdl_build / nx_brand_gallery_gate.nx
nx_brand_gallery_gate.nx source
↩ module page · 54 lines · 2520 B
1// nx_brand_gallery_gate.nx -- each starter template renders through the brand-wired builder: on-brand, token-driven,
2// distinct. 100% sovereign. expect_exit: 0
3import "nx_syscalls.nx"
4import "nx_sitegate_emit_lib.nx"
5import "nx_brand_gallery.nx"
6import "nx_site_compose.nx"
7import "nx_brand_tokens.nx"
8
9
10func g_has(s: *u8, n: i64, lit: *u8) -> i64 { if bt_find(s, n, lit, bt_len(lit)) >= 0 { return 1 } return 0 }
11// render a template id through the builder into out; return length (or -1).
12func g_render(id: *u8, out: *u8, cap: i64) -> i64 {
13 let tpl: *u8 = bg_template(id)
14 if (tpl as i64) == 0 { return 0 - 1 }
15 var tn: i64 = 0; while tpl[tn] != (0 as u8) { tn = tn + 1 }
16 let fd: i64 = sys_openat_wr("/tmp/nx_gal.html" as *u8, 0x1a4)
17 compose_build(tpl, tn, fd, "web_assets/_game_build/game_page.tpl.html" as *u8)
18 sys_close(fd)
19 let lp: *i64 = sys_mmap(16) as *i64
20 let pg: *u8 = sys_read_file("/tmp/nx_gal.html" as *u8, lp)
21 let pn: i64 = lp[0]
22 var i: i64 = 0
23 while i < pn { if i < cap { out[i] = pg[i] } i = i + 1 }
24 return pn
25}
26// does a rendered template build + use tokens + contain its unique headline?
27func g_ok(id: *u8, headline: *u8, tot: *i64) -> i64 {
28 let buf: *u8 = sys_mmap(16384)
29 let n: i64 = g_render(id, buf, 16384)
30 var ok: i64 = 0
31 if n > 0 { if g_has(buf, n, "<header" as *u8) == 1 { if g_has(buf, n, "var(--nx-color-primary)" as *u8) == 1 { if g_has(buf, n, headline) == 1 { ok = 1 } } } }
32 gw(" template " as *u8); gw(id); gw(": " as *u8); gn(n); gw(" bytes, token-driven=" as *u8); gn(ok); gw("\n" as *u8)
33 t_row(id, ok, tot)
34 return ok
35}
36
37func main() -> i64 {
38 let tot: *i64 = sys_mmap(32) as *i64
39 tot[0]=0; tot[1]=0
40 gw("=== nx_brand_gallery_gate -- starter template gallery (on-brand, token-driven, distinct) ===\n" as *u8)
41
42 var t0: i64 = 0; if bg_count() == 4 { t0 = 1 }
43 t_row("G0 gallery has 4 starter templates" as *u8, t0, tot)
44
45 g_ok("landing" as *u8, "One clear headline" as *u8, tot)
46 g_ok("services" as *u8, "Services that move you forward" as *u8, tot)
47 g_ok("about" as *u8, "The people behind the work" as *u8, tot)
48 g_ok("contact" as *u8, "Let us talk" as *u8, tot)
49
50 gw("\nrows pass=" as *u8); gn(tot[0]); gw(" fail=" as *u8); gn(tot[1]); gw("\n" as *u8)
51 if tot[1] == 0 { gw("VERDICT=GREEN -- starter template gallery: 4 distinct on-brand templates render via the builder. (Breadth vs Wix 900 = R6 BEHIND.)\n" as *u8); return 0 }
52 gw("VERDICT=RED\n" as *u8)
53 return 1
54}