Create editable PowerPoint PPTX decks from pptz TOML sources with Milky2018/pptz. Use when Codex needs to design a new slide deck, write deck/page TOML, compile it to .pptx, and deliver both sources and output. Do not use for editing an existing PPTX or for PowerPoint features outside the pptz schema.
| Task | Read |
|---|---|
| Full schema, diagnostics, CLI contract | REFERENCE.md |
| Known-good compiling source deck | examples/minimal |
| Technical/API/architecture deck | references/technical-deck.md |
| Metrics/reporting deck | references/data-report.md |
| Product launch/demo deck | references/product-demo.md |
| Course/tutorial/workshop deck | references/course-lecture.md |
deck-topic/
|-- deck.pptz.toml
|-- pages/
| |-- cover.page.toml
| `-- agenda.page.toml
|-- images/
`-- dist/
`-- deck.pptxmoon runwasm Milky2018/pptz@0.4.0 deck.pptz.toml --out dist/deck.pptxWhen working inside this repository, use the local package instead:moon runwasm . examples/minimal/deck.pptz.toml --out examples/minimal/dist/deck.pptx[theme.text_styles.body]
font_size = 22
font_family = "Aptos"
color = "$text"
[theme.text_styles.caption]
extends = "$body"
font_size = 12
color = "$muted"
[theme.table_styles.base]
font_size = 14
font_family = "Aptos"
border = { style = "solid", width = 1, color = "$line" }
[theme.table_styles.compact]
extends = "$base"
header_fill = "$surface_alt"
header_text_color = "$text"
body_text_color = "$text"[layouts.content.slots.eyebrow]
bounds = [72, 38, 500, 24]
style = "$caption"
[layouts.content.slots.heading]
bounds = [72, 72, 900, 72]
style = "$title"
[[layouts.content.elements]]
id = "accent"
type = "shape"
bounds = [48, 40, 6, 96]
[layouts.content.elements.content]
shape = "rect"
[layouts.content.elements.content.fill]
type = "solid"
color = "$primary"layout = "$content"
[slots]
eyebrow = "Risk model"
heading = "风险分析"[components.stat_card]
bounds = [0, 0, 180, 90]
[[components.stat_card.elements]]
id = "label"
type = "text"
bounds = [16, 14, 148, 24]
[components.stat_card.elements.content]
style = "$caption"
text = "$label"
[[components]]
id = "npm_card"
use = "$stat_card"
bounds = [72, 160, 180, 90]
[components.props]
label = "npm packages"[elements.content]
style = "$body"
align = ["left", "top"]
wrap = true
[elements.content.body]
auto_fit = "shape"
[elements.content.body.inset]
left = 8
right = 8
top = 4
bottom = 4
[[elements.content.paragraphs]]
text = "Agenda item"
space_after = 6
margin_left = 18
indent = -9
[elements.content.paragraphs.bullet]
kind = "char"
char = "-"
[[elements.content.paragraphs]]
[[elements.content.paragraphs.runs]]
text = "Read "
[[elements.content.paragraphs.runs]]
text = "docs"
style = "$link"
hyperlink = "https://example.com"
tooltip = "Documentation"[theme.table_styles.compact]
font_size = 14
font_family = "Aptos"
header_fill = "$surface_alt"
header_text_color = "$text"
body_text_color = "$text"
border = { style = "solid", width = 1, color = "$muted" }
[elements.content]
style = "$compact"
data = [
["Metric", "Q1", "Q2"],
["Revenue", "100", "150"],
][theme.chart_styles.report_bar]
kind = "bar"
legend = "bottom"
style = 4
data_labels = "outside_end"
[elements.content]
chart_style = "$report_bar"
title = "Revenue"
data = [
["", "Q1", "Q2", "Q3"],
["Revenue", 100.0, 150.0, 125.0],
][elements.content]
kind = "bar"
title = "Revenue"
legend = "bottom"
data = [
["", "Q1", "Q2", "Q3"],
["Revenue", 100.0, 150.0, 125.0],
][elements.content]
path = "images/hero.png"
fit = "cover"
[elements.content.crop]
left = 0.05
right = 0.05
top = 0.0
bottom = 0.0