pptx2md
This package converts pptx to markdown
What it is and what it does
pptx2md is a command-line tool and Python library that extracts content from PowerPoint presentations and renders it as markdown or alternative markup formats. It parses slide structure, preserving hierarchy through heading levels, and reconstructs text formatting (bold, italic, color, hyperlinks), lists at arbitrary depth, embedded images, and tables with merged cells. The tool reads slides in top-to-bottom, left-to-right order and can optionally apply fuzzy matching to map slide titles to a custom hierarchy for generating structured tables of contents.
The package is designed for developers and content creators who need to migrate presentation content into documentation systems, wikis, or markdown-based workflows. It offers both a straightforward CLI (pptx2md filename.pptx) and a programmatic API through the ConversionConfig class, allowing integration into larger automation pipelines. Output can be tailored through numerous flags—disabling image extraction, escaping, notes, or color tags; constraining image width; detecting multi-column layouts; or switching to TiddlyWiki, Madoko, or Quarto markup.
Use it for:
- Convert training or educational presentations into markdown documentation for a knowledge base or wiki
- Extract slide content into Quarto-formatted markdown for republishing as a web presentation or report
- Batch-convert legacy PowerPoint decks to markdown for version control and collaborative editing
- Migrate presentation notes and speaker notes into markdown-based documentation systems
- Generate TiddlyWiki or Madoko markup from presentations for specialized publishing workflows
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Converts PowerPoint .pptx files to markdown, preserving titles, lists, text formatting, images, tables, and hyperlinks, with support for multiple output formats including TiddlyWiki, Madoko, and Quarto.
Yes. The package is actively maintained, has no known vulnerabilities, installs with low friction, and solves a concrete problem—converting pptx to markdown—with broad format support. The MIT license is permissive. Install it if you need to programmatically or batch-convert PowerPoint files to markdown or alternative markup; skip it if you only occasionally convert presentations manually.
Install
pptx2md on PyPI
pip
pip install pptx2mduv
uv add pptx2mdpoetry
poetry add pptx2mdInstalling pptx2md
Before you install
Low friction install with a pure-Python wheel. Maintenance is active with recent commits and a solid community signal (1266 stars). Requires Python 3.10 or later and seven runtime dependencies including image processing (Pillow, numpy, scipy) and text matching (rapidfuzz).
License in practice
Licensed under MIT Licence with permissive treatment, allowing broad use, modification, and distribution with minimal restrictions.
Quickstart
pip install pptx2md
from pptx2md import convert, ConversionConfig
from pathlib import Path
convert(ConversionConfig(
pptx_path=Path('presentation.pptx'),
output_path=Path('output.md'),
image_dir=Path('img')
))
Requires Python 3.10 or later. For WMF image conversion on Linux, the optional wand library is recommended.
Verify before relying
- Whether fuzzy matching score threshold of 92 is configurable or hardcoded
- Performance characteristics with large presentations or complex multi-column layouts
- Completeness of formatting preservation for all PowerPoint text styles and effects
Package facts
| License | MIT Licence (permissive) |
| Python support | supports the current Python release (<4,>=3.10) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 7 — Pillow, numpy, pydantic, python-pptx, rapidfuzz, scipy, tqdm |
| Maintenance | actively maintained — 619 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 156,457/month — #10,783 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: pptx2md-2.0.6-py3-none-any.whl
Tags
More Markup packages
PyYAML parses and emits YAML 1.1 data format,…
permissive · top 100 on PyPI
markdown-it-pyA Python markdown parser that converts markdown…
permissive · top 100 on PyPI
beautifulsoup4Beautiful Soup parses HTML and XML documents…
permissive · top 100 on PyPI
et-xmlfileet_xmlfile writes large XML files with minimal…
permissive · top 1,000 on PyPI
tomlkitParses and edits TOML files while preserving…
permissive · top 1,000 on PyPI
docstring-parserParses Python docstrings in ReST, Google,…
permissive · top 1,000 on PyPI
aspose-slidesAspose.Slides generates, modifies, converts,…
unclear · top 15,000 on PyPI
SnakeMDSnakeMD generates Markdown files…
permissive · top 15,000 on PyPI
jira2markdownConverts JIRA markup text to Markdown…
permissive · top 15,000 on PyPI
strip-markdownConverts markdown text to plain text, removing…
permissive · top 15,000 on PyPI
python-pptxpython-pptx creates, reads, and updates…
permissive · top 1,000 on PyPI
markdown-to-mrkdwnConverts standard Markdown to Slack's mrkdwn…
permissive · top 5,000 on PyPI
pypptx-with-oxmlReads, creates, and updates PowerPoint (.pptx)…
permissive · top 15,000 on PyPI
md2SlackConverts Markdown syntax into Slack-compatible…
permissive · top 15,000 on PyPI
m2r2Converts markdown files with embedded…
permissive · top 15,000 on PyPI
mdformat-tocMdformat-toc is an mdformat plugin that…
permissive · top 15,000 on PyPI