code wiki / _hdl_build / nx_pptx.nx
nx_pptx.nx
buildroot/runtime/_hdl_build/nx_pptx.nx
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
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
structs
| none |
consts
| 16 | const PP_MAGIC_1048592: i64 = 1048592 |
| 17 | const PP_MAGIC_1048576: i64 = 1048576 |
| 18 | const PP_MAGIC_16384: i64 = 16384 |
| 19 | const PP_MAGIC_262144: i64 = 262144 |
| 20 | const PP_MAGIC_65536: i64 = 65536 |
| 21 | const PP_MAGIC_8388608: i64 = 8388608 |
| 23 | const PP_MAXSLIDES: i64 = 64 |
functions
| 25 | func pp_slen(s: *u8) -> i64 { var n: i64=0; while s[n]!=(0 as u8) { n=n+1 } return n } |
| 26 | func pp_puts(s: *u8) -> i64 { sys_write(1, s, pp_slen(s)); return 0 } |
| 27 | func pp_num(v: i64) -> i64 |
| 33 | func 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 |
| 34 | func 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 } |
| 35 | func pp_uint(dst: *u8, off: i64, v: i64) -> i64 |
| 40 | func pp_esc(out: *u8, o: i64, src: *u8, soff: i64, slen: i64) -> i64 |
| 49 | func pp_readfile(path: *u8, buf: *u8, cap: i64) -> i64 |
| 54 | func pp_match(buf: *u8, pos: i64, n: i64, pat: *u8) -> i64 |
| 61 | func pp_build_slide(out: *u8, spec: *u8, tso: *i64, tsl: *i64, nb: i64) -> i64 |
| 86 | func pptx_write_spec(specpath: *u8, outpath: *u8) -> i64 |
| 179 | func pp_read_slide(path: *u8, si: i64, fd: i64) -> i64 |
| 217 | func pptx_to_html(path: *u8, out: *u8, dlurl: *u8) -> i64 |
| 265 | func main(argc: i64, argv: *i64) -> i64 |