code wiki / _hdl_build / nx_render_wiki_styled.nx

nx_render_wiki_styled.nx source

↩ module page · 26 lines · 1290 B

1// nx_render_wiki_styled.nx -- thin driver: read the most-recently-fetched page (saved by nishi after 2// a live fetch), else the bundled Wikipedia snapshot, and render it to a styled BMP via the reusable 3// nx_render_html_to_bmp. (The whole styled pipeline now lives in nx_render_html.nx so nx_browse shares 4// it.) No gcc/V8/Chrome. 5import "nx_syscalls.nx" 6import "nx_render_html.nx" 7 8func main() -> i64 { 9 let lp: *i64 = sys_mmap(16) as *i64 10 var raw: *u8 = sys_read_file("knowledge/fetched/last_fetch.html\x00" as *u8, lp) 11 var hlen: i64 = *lp 12 if hlen <= 0 { 13 raw = sys_read_file("knowledge/fetched/wiki_web_dev.html\x00" as *u8, lp) 14 hlen = *lp 15 } 16 if hlen <= 0 { sys_write(2, "no html\n" as *u8, 8); return 1 } 17 let nboxes: i64 = nx_render_html_to_bmp(raw, hlen, "knowledge/status/wiki_styled.bmp\x00" as *u8) 18 sys_write(1, "styled render -> knowledge/status/wiki_styled.bmp boxes=" as *u8, 56) 19 let db: *u8 = sys_mmap(16); var kk: i64 = 0; var m: i64 = nboxes 20 if m == 0 { db[0] = 48; kk = 1 } 21 while m > 0 { db[kk] = (48 + (m % 10)) as u8; m = m / 10; kk = kk + 1 } 22 var o: i64 = 0; let ob: *u8 = sys_mmap(16) 23 while o < kk { ob[o] = db[kk-1-o]; o = o + 1 } 24 sys_write(1, ob, kk); sys_write(1, "\n" as *u8, 1) 25 return 0 26}