# Markdown to PowerPoint (.pptx)

Turn a Markdown outline into a real PowerPoint .pptx deck — headings become slides, lists become bullets. Light/dark themes, 16:9 or 4:3. In-browser, nothing uploaded.

## Run it

- **CLI:** `gizza tool markdown-to-pptx "# Quarterly Review

- Revenue up 24%
- Two new markets

# Next Steps

- Hire 3 engineers
- Ship v2"`
- **Web:** https://gizza.ai/tools/markdown-to-pptx/
- **Agents:** machine-readable descriptor (parameters JSON Schema) at https://gizza.ai/tools/markdown-to-pptx/tool.json

## Inputs

- `markdown` — Markdown outline _(field)_
- `title` — Deck title (optional) _(field)_
- `split_level` — Split slides on _(field)_
- `theme` — Theme _(field)_
- `aspect_ratio` — Aspect ratio _(field)_

## Output

- Presentation (text)

## Query parameters

Open the tool pre-filled and auto-run via URL:

- `markdown` — Markdown outline
- `title` — Deck title (optional)
- `split_level` — Split slides on
- `theme` — Theme
- `aspect_ratio` — Aspect ratio

Example: `https://gizza.ai/tools/markdown-to-pptx/?markdown=%23%20Quarterly%20Review%0A%0A-%20Revenue%20up%2024%25%0A-%20Two%20new%20markets%0A%0A%23%20Next%20Steps%0A%0A-%20Hire%203%20engineers%0A-%20Ship%20v2&title=Q3%20Business%20Review&split_level=h1&theme=light&aspect_ratio=16%3A9`

---

## Turn a Markdown outline into a real PowerPoint deck

Write your talk as a plain Markdown outline, and download a genuine binary `.pptx` file — the same
format PowerPoint, Keynote, Google Slides and LibreOffice Impress open natively. Headings become
**slide titles**, list items and paragraphs become **bullets**, and a thematic break (`---`) starts a
new slide. Pick where slides split, a **light or dark** theme, and a **16:9 or 4:3** aspect ratio.
Everything runs in your browser with WebAssembly — your outline is never uploaded to a server.

### Worked example

Input (with **Split slides on** set to `# headings`):

```
# Quarterly Review

- Revenue up 24%
- Two new markets

# Next Steps

- Hire 3 engineers
- Ship v2
```

Output: a two-slide `presentation.pptx`. The first slide is titled **Quarterly Review** with two
bullets; the second is **Next Steps** with two bullets. Add a **Deck title** to prepend a centered
title slide, switch to the **dark** theme for light-on-black slides, or choose **4:3** for the classic
standard shape.

Nested list items indent into sub-bullets, `**bold**`, `` `code` `` and `[links](url)` are flattened
to clean text, and fenced code blocks are kept as verbatim lines — so what you paste is what lands on
the slide.

## FAQ

<details>
<summary>Is this a real .pptx file, or just text renamed to .pptx?</summary>

It is a real, standards-compliant Office Open XML (`.pptx`) presentation — a ZIP of XML parts
(`[Content_Types].xml`, a presentation part, a slide master, layout and theme, and one slide XML per
slide), exactly what PowerPoint writes. It opens without any "the file format doesn't match the
extension" warning and is fully editable in PowerPoint, Keynote, Google Slides and LibreOffice Impress.

</details>

<details>
<summary>How does my Markdown become slides?</summary>

Each split heading starts a new slide and its text becomes the slide **title**; list items (`-`, `*`,
`+`, or `1.`) and plain paragraphs become **bullets** on the current slide. A thematic break — a line
of three or more `-`, `*`, or `_` — always starts a new slide, even without a heading. Indented list
items become nested sub-bullets (up to four levels deep).

</details>

<details>
<summary>What does "Split slides on" control?</summary>

It chooses which heading levels cut the outline into slides. **# headings (H1)** starts a new slide at
each `#` and keeps `##` headings as bullets; **## headings (H2)** splits on each `##`; **# and ##**
splits on both. Whichever you pick, a `---` thematic break always forces a new slide — handy for decks
with no headings at all.

</details>

<details>
<summary>Can I change the theme, aspect ratio, or add a title slide?</summary>

Yes. The **Light** theme is dark text on a white background; **Dark** is light text on a near-black
background. **16:9** is modern widescreen and **4:3** is the classic standard shape. Filling in the
optional **Deck title** adds a centered title slide at the front and records the title in the
document's properties.

</details>

<details>
<summary>Is my content uploaded anywhere?</summary>

No. The presentation is assembled entirely in your browser with WebAssembly — the outline never leaves
your device, and nothing is sent to a server. Very large outlines are bounded only by your device's
memory.

</details>

## Related tools

- [Markdown to Slides](https://gizza.ai/tools/markdown-to-slides/): Convert Markdown to a self-contained HTML slide deck in your browser — split slides with ---, arrow-key and swipe navigation, light or dark theme. Free, private.
- [BibTeX Formatter & Validator](https://gizza.ai/tools/bibtex-format/): Free BibTeX formatter and validator — pretty-print, sort and align .bib bibliography entries in your browser. Consistent indentation, no sign-up, no upload.
- [Citation Generator](https://gizza.ai/tools/citation-generator/): Free APA 7, MLA 9, Chicago and Harvard citation generator — format author, title, year, journal and URL into a correct reference right in your browser.
- [Document Splitter](https://gizza.ai/tools/document-splitter/): Split a long Markdown or HTML document into separate files, one per top-level heading. Runs entirely in your browser, no upload, no sign-up.
- [HTML to Markdown](https://gizza.ai/tools/html-to-markdown/): Convert HTML into clean Markdown instantly in your browser — preserves headings, links, lists, code blocks, tables, and emphasis. Free, private, no upload, no sign-up.
