首頁
概念地圖
學習路線
安裝指南
文件教學
程式碼對照
實作案例
關於
概念地圖
converter · priority · StreamInfo · magika · plugin——一張圖看懂 MarkItDown 的運作骨架
MarkItDown
核心入口類別:註冊 converter、調度轉換、5 個 convert_* 方法
_markitdown.py
→
調度管線
猜測類型 → 排序 → accepts → convert → 輸出標準化
DocumentConverter
所有轉換器的抽象父類:accepts() 判斷 + convert() 轉換
_base_converter.py
DocumentConverterResult
轉換結果:markdown / text_content / title
accepts()
用 StreamInfo(mimetype/extension)決定是否接單
convert()
把檔案流讀成 Markdown 字串
ConverterRegistration
converter + priority 的註冊資料
→
priority
越小越先試;特定格式 0.0,通用兜底 10.0
→
register_converter()
把自訂/外掛 converter 插入調度鏈
StreamInfo
mimetype / extension / charset / filename / url——轉換的「線索卡」
_stream_info.py
magika
Google 的內容型別偵測模型:直接讀位元組猜型別
charset-normalizer
文字檔編碼猜測
data:/file:/http: URI
convert_uri() 支援的 4 種 URI scheme
Office 家族
DOCX(含 OMML 數學)· XLSX/XLS · PPTX
PDF / 網頁
pdfminer+pdfplumber · HTML · RSS · Wikipedia · YouTube
Media 家族
圖片(EXIF+LLM 描述)· 音訊(EXIF+轉錄)
文字/封裝
PlainText · CSV · JSON · iPython · ZIP · EPUB · Outlook .msg
entry-point 群組
markitdown.plugin:安裝即註冊,預設關閉
→
enable_plugins()
enable_plugins=True / --use-plugins 開啟
→
markitdown-ocr
LLM Vision OCR:PDF/DOCX/PPTX/XLSX 內嵌圖片轉文字
markitdown-sample-plugin
外掛開發範本:RtfConverter + register_converters
Azure Document Intelligence
雲端版面分析,-d / docintel_endpoint
Azure Content Understanding
多模態 + 結構化欄位(YAML front matter),--use-cu
markitdown-mcp
MCP Server:convert_to_markdown(uri),STDIO/HTTP/SSE
Docker
docker run -i markitdown < file.pdf > out.md
節點依賴方向大致由上而下:入口 → 協定 → 調度 → 型別猜測 → 轉換器家族 → 外掛/雲端/MCP。