Obsah

MarkItDown

MarkItDown je lehký Python nástroj od Microsoftu pro převod různých formátů souborů do Markdownu. Primárně je určen pro přípravu obsahu pro LLM a textové analytické pipeline.

Na rozdíl od nástrojů jako Pandoc se MarkItDown zaměřuje na zachování struktury dokumentu (nadpisy, tabulky, seznamy, odkazy) spíše než na vizuální věrnost výstupu.

Podporované formáty

Instalace

Požadavky: Python 3.10 nebo vyšší.

Ze zdrojového kódu (pro vývoj nebo úpravy)

# 1. Klonovat repozitář
git clone https://github.com/microsoft/markitdown.git markitdown
 
# 2. Vytvořit virtuální prostředí uvnitř složky projektu
python3 -m venv markitdown/.venv
 
# 3. Nainstalovat závislosti přes venv pip
markitdown/.venv/bin/pip install -e 'markitdown/packages/markitdown[all]'

Přepínač -e (editable install) zajistí, že změny ve zdrojovém kódu se projeví okamžitě bez reinstalace.

Přípona [all] nainstaluje všechny volitelné závislosti. Lze instalovat jen vybrané formáty:

pip install 'markitdown[pdf,docx,pptx]'
Skupina Formát
[pptx] PowerPoint
[docx] Word
[xlsx] Excel
[xls] Starší Excel
[pdf] PDF
[outlook] Outlook zprávy
[audio-transcription] WAV a MP3
[youtube-transcription] YouTube titulky
[az-doc-intel] Azure Document Intelligence

Použití

Příkazová řádka

# Základní konverze
markitdown dokument.pdf > dokument.md
 
# Se zadáním výstupního souboru
markitdown dokument.pdf -o dokument.md
 
# Pipe
cat dokument.pdf | markitdown
 
markitdown/.venv/bin/markitdown soubor.pdf > soubor.md 

Python API

from markitdown import MarkItDown
 
md = MarkItDown()
result = md.convert("soubor.xlsx")
print(result.text_content)

S popisem obrázků přes LLM (pouze pro PPTX a obrázky):

from markitdown import MarkItDown
from openai import OpenAI
 
client = OpenAI()
md = MarkItDown(llm_client=client, llm_model="gpt-4o")
result = md.convert("prezentace.pptx")
print(result.text_content)

Azure Document Intelligence

markitdown dokument.pdf -o dokument.md -d -e "<endpoint>"

MCP server

MarkItDown nabízí také MCP server pro integraci s LLM aplikacemi (Claude Desktop apod.) — viz balíček markitdown-mcp.

Viz také