code wiki / _hdl_build / nx_pptx.nx

nx_pptx.nx

buildroot/runtime/_hdl_build/nx_pptx.nx

17473 B299 linesdepth 7pulls 10 transitivereach 0 importersview sourcekind tool
docsdependenciesstructsconstsfunctions

about

nx_pptx.nx -- SOVEREIGN presentations (.pptx / PresentationML) for the Nishi Office suite: the census's biggest ABSENT category (OF-P1 author + OF-P2 render). A .pptx is an OPC package (shared nx_opc, STORED ZIP like .docx/.xlsx) with ppt/presentation.xml + ppt/slides/slideN.xml parts. fromspec : spec text -> deck. "S <title>" starts a slide, "B <bullet>" adds a bullet (XML-escaped). read : deck -> per-slide title + bullets (walks slide parts, extracts <a:t> runs). html : deck -> 0-JS inline SLIDE-DECK preview (16:9 cards) the Nishi browser (and the nx_doc_view registry) renders -- same `html <in> <out> [dlurl]` iface as nx_docx/nx_md/nx_csv/nx_pdf/nx_xlsx. HONEST SCOPE (v1, named): title + bullet slides only -- no slide masters/layouts/themes/images/animations. The package is valid OPC + PresentationML that OUR tools round-trip; "opens in PowerPoint" is NOT claimed until verified against real PowerPoint (masters/layouts may be required there) -- that check is a named follow-up, exactly like the docx harness's third-party validation was. nx_pptx fromspec <spec.txt> <out.pptx> | read <in.pptx> | html <in.pptx> <out.html> [dlurl] license_tier: ORIGINAL

dependencies 2 imports · 0 importers

nx_syscalls.nx nx_opc.nx nx_pptx.nx

imports: nx_syscalls.nxnx_opc.nx

imported by: nobody (leaf or entry point)

call flow from main pre-order; caps 40 nodes / depth 6 declared; ↻ = already shown

main pp_puts sys_write pp_slen sys_exit pp_streq pptx_write_spec sys_mmap pp_readfile sys_openat_rd sys_read sys_close pp_cat pp_uint sys_mmap ↻ pp_slen ↻ pp_build_slide pp_cat ↻ pp_esc pp_cat ↻ opc_write sys_mmap ↻ nx_crc32 nx_crc32_update nx_crc32_init nx_crc32_table_at opc_strlen opc_put_u32 opc_put_u16 opc_copy sys_openat_wr sys_write ↻ sys_close ↻ pp_num sys_mmap ↻ sys_write ↻ pp_read_slide sys_mmap ↻ pp_cat ↻ pp_uint ↻

structs

none

consts

16const PP_MAGIC_1048592: i64 = 1048592
17const PP_MAGIC_1048576: i64 = 1048576
18const PP_MAGIC_16384: i64 = 16384
19const PP_MAGIC_262144: i64 = 262144
20const PP_MAGIC_65536: i64 = 65536
21const PP_MAGIC_8388608: i64 = 8388608
23const PP_MAXSLIDES: i64 = 64

functions

25func pp_slen(s: *u8) -> i64 { var n: i64=0; while s[n]!=(0 as u8) { n=n+1 } return n }
26func pp_puts(s: *u8) -> i64 { sys_write(1, s, pp_slen(s)); return 0 }
called by 1: main calls 2: sys_writepp_slen
27func pp_num(v: i64) -> i64
called by 1: main calls 2: sys_mmapsys_write
33func pp_streq(a: *u8, b: *u8) -> i64 { var i: i64=0; while a[i]!=(0 as u8) { if a[i]!=b[i] { return 0 } i=i+1 } if b[i]!=(0 as u8) { return 0 } return 1 }
called by 1: main
34func pp_cat(dst: *u8, off: i64, s: *u8) -> i64 { var i: i64=0; while s[i]!=(0 as u8) { dst[off+i]=s[i]; i=i+1 } return off+i }
35func pp_uint(dst: *u8, off: i64, v: i64) -> i64
40func pp_esc(out: *u8, o: i64, src: *u8, soff: i64, slen: i64) -> i64
called by 1: pp_build_slide calls 1: pp_cat
49func pp_readfile(path: *u8, buf: *u8, cap: i64) -> i64
54func pp_match(buf: *u8, pos: i64, n: i64, pat: *u8) -> i64
61func pp_build_slide(out: *u8, spec: *u8, tso: *i64, tsl: *i64, nb: i64) -> i64
called by 1: pptx_write_spec calls 2: pp_catpp_esc
86func pptx_write_spec(specpath: *u8, outpath: *u8) -> i64
179func pp_read_slide(path: *u8, si: i64, fd: i64) -> i64
217func pptx_to_html(path: *u8, out: *u8, dlurl: *u8) -> i64
265func main(argc: i64, argv: *i64) -> i64