🏢 Microsoft 官方開源 — 本週 GitHub 週榜 #2

Microsoft MarkItDown 繁中完整教學 2026:146K Stars,PDF/Office/HTML 一鍵轉 Markdown,RAG 前處理神器

一行 pip 安裝,20+ 格式統一轉 Markdown。讓你的 AI 應用能讀取任何企業文件——再也不用為格式轉換煩惱。

146K
GitHub Stars
20+
支援格式
#2
本週週榜排名
MIT
開源授權

MarkItDown 是什麼?為什麼 146K Stars 是實力認證

MarkItDown 是 Microsoft 開源的多格式文件轉 Markdown 工具,由 Microsoft AutoGen 團隊開發維護,目前在 GitHub 累積 146,378 Stars,本週週榜穩居第二,已連續多週保持高熱度。

聽起來很簡單——把文件轉成 Markdown。但這件事在 AI 應用開發中非常關鍵:

核心問題:AI 模型讀不了 PDF。你的公司有大量 Word 文件、Excel 報表、PowerPoint 簡報,這些都是 LLM 無法直接理解的格式。MarkItDown 是橋樑:把這些格式轉換為 AI 友好的 Markdown,讓你的 RAG 系統能夠真正「讀懂」企業知識庫。

為什麼不直接用 pypdf 或 python-docx?

支援格式完整列表(20+)

📄
PDF 文件
.pdf — 支援文字提取,保留段落結構
📝
Word 文件
.docx / .doc — 標題、列表、表格全保留
📊
Excel 試算表
.xlsx / .xls / .csv — 轉為 Markdown 表格
📋
PowerPoint
.pptx / .ppt — 每張投影片各自轉換
🌐
HTML 網頁
.html / .htm — 清理廣告和導航,保留主內容
🖼️
圖片(OCR)
.png / .jpg / .gif — 需搭配 GPT-4o 視覺
🎵
音訊(轉錄)
.mp3 / .wav — 語音轉文字後轉 Markdown
📦
ZIP 壓縮包
.zip — 批次轉換內部所有支援格式
💻
程式碼檔案
多種語言 — 加入 syntax highlighting 標記
📧
電子郵件
.msg / .eml — 包含標頭和附件

安裝與快速上手(3分鐘)

基礎安裝

# 基礎安裝(最快) pip install markitdown # 完整安裝(含 OCR、音訊轉錄、所有功能) pip install "markitdown[all]" # 確認安裝版本 markitdown --version

30 秒快速體驗

from markitdown import MarkItDown md = MarkItDown() # 轉換 PDF result = md.convert("company-report.pdf") print(result.text_content) # 轉換 Word 文件 result = md.convert("meeting-notes.docx") print(result.text_content) # 輸出到檔案 with open("output.md", "w", encoding="utf-8") as f: f.write(result.text_content)

Python API 完整使用指南

URL 直接轉換(爬取網頁)

from markitdown import MarkItDown md = MarkItDown() # 直接轉換網頁 URL(自動爬取和清理) result = md.convert("https://autodev-ai.com/blog/") print(result.text_content) # 轉換 Wikipedia 頁面 result = md.convert("https://zh.wikipedia.org/wiki/人工智慧")

批次轉換多個檔案

from markitdown import MarkItDown from pathlib import Path md = MarkItDown() input_dir = Path("./documents/") output_dir = Path("./markdown/") output_dir.mkdir(exist_ok=True) # 批次轉換目錄下所有支援格式 supported_extensions = [".pdf", ".docx", ".xlsx", ".pptx", ".html"] for file_path in input_dir.rglob("*"): if file_path.suffix.lower() in supported_extensions: try: result = md.convert(str(file_path)) output_file = output_dir / (file_path.stem + ".md") output_file.write_text(result.text_content, encoding="utf-8") print(f"✅ 轉換成功: {file_path.name}") except Exception as e: print(f"❌ 轉換失敗: {file_path.name} — {e}")

圖片 OCR(搭配 GPT-4o)

from markitdown import MarkItDown from openai import OpenAI client = OpenAI() # 啟用圖片 OCR(使用 GPT-4o 視覺功能) md = MarkItDown( llm_client=client, llm_model="gpt-4o" ) # 轉換圖片(自動 OCR 提取文字) result = md.convert("invoice-scan.png") print(result.text_content) # 輸出:「發票號碼:ABC123 日期:2026-06-07 金額:NT$5,000...」

🎓 系統化學習 AI Engineering?

MarkItDown 只是 RAG 系統的第一步。DataCamp 的 AI Engineering 課程教你從文件解析、向量化到 RAG 完整架構——台灣工程師升薪最快捷徑。

📊 探索 DataCamp AI Engineering 課程 ☁️ DigitalOcean $200 免費額度

命令行工具使用教學

# 基本轉換:輸出到標準輸出 markitdown report.pdf # 輸出到檔案 markitdown report.pdf -o report.md # 轉換 URL markitdown https://github.com/microsoft/markitdown # 批次轉換(使用 shell glob) for f in *.pdf; do markitdown "$f" -o "${f%.pdf}.md"; done # 轉換並直接傳給 LLM 分析 markitdown company-report.pdf | claude "幫我摘要這份報告的重點"

RAG Pipeline 實戰整合

這是 MarkItDown 最有商業價值的應用場景。以下是一個完整的企業文件 RAG 系統建置範例:

1

文件收集與轉換

使用 MarkItDown 將企業知識庫(Word/PDF/Excel)轉換為統一的 Markdown 格式

2

文字切片(Chunking)

按照 Markdown 標題結構切分,每個切片 512-1024 tokens,保留語義完整性

3

向量化(Embedding)

使用 OpenAI text-embedding-3-small 或本地模型轉換為向量

4

向量資料庫存儲

使用 Chroma、Qdrant 或 pgvector 存儲向量索引

5

RAG 查詢

用戶問題向量化 → 語義搜尋 → 取出相關片段 → 注入 LLM context → 生成回答

LlamaIndex 整合範例

from markitdown import MarkItDown from llama_index.core import VectorStoreIndex, Document from pathlib import Path import os # Step 1: 轉換所有文件 md = MarkItDown() documents = [] for file_path in Path("./knowledge-base/").rglob("*"): if file_path.is_file(): result = md.convert(str(file_path)) if result.text_content.strip(): documents.append( Document( text=result.text_content, metadata={ "filename": file_path.name, "source": str(file_path) } ) ) # Step 2: 建立向量索引 index = VectorStoreIndex.from_documents(documents) # Step 3: 查詢 query_engine = index.as_query_engine() response = query_engine.query("我們的退換貨政策是什麼?") print(response)

進階功能:OCR、音訊轉錄、批次處理

ZIP 批次轉換

from markitdown import MarkItDown md = MarkItDown() # 自動解壓並轉換 ZIP 內所有支援格式的文件 result = md.convert("company-documents-2026.zip") print(result.text_content) # 輸出:所有文件的 Markdown 內容,以分隔符分開

SharePoint 整合(Microsoft 365 環境)

from markitdown import MarkItDown from markitdown.converters.sharepoint import SharePointConverter # 直接從 SharePoint 連結轉換文件 # (需要 Azure AD 認證) md = MarkItDown() result = md.convert( "https://yourcompany.sharepoint.com/sites/docs/report.docx" )

自訂 Converter 擴展

from markitdown import MarkItDown, DocumentConverter, DocumentConverterResult # 為特殊格式自訂轉換邏輯 class MyCustomConverter(DocumentConverter): def convert(self, local_path, **kwargs) -> DocumentConverterResult: # 自訂解析邏輯 with open(local_path, "r") as f: content = f.read() return DocumentConverterResult( title="Custom File", text_content=f"# Custom Format\n\n{content}" ) # 註冊自訂 Converter md = MarkItDown() md.register_converter(MyCustomConverter(), priority=0)

🚀 在 VPS 上部署你的 RAG 文件系統

MarkItDown + LlamaIndex + 向量資料庫,部署在 DigitalOcean 上,$6/月起即可運行完整的企業知識庫 AI 系統。$200 免費額度讓你充分測試再決定。

🎁 領取 $200 DigitalOcean 免費額度 ⚡ Claude Code 省費工具包

MarkItDown vs 同類工具比較

工具 格式支援 輸出格式 AI 優化 維護者 最適場景
MarkItDown 20+ 種 Markdown ✅ 原生優化 Microsoft 官方 RAG 前處理、統一文件轉換
pypdf PDF only 純文字 社群 只需要處理 PDF
python-docx DOCX only Python 物件 社群 需要操作 Word 文件內容
Unstructured 多種 多種 ⚠️ 部分 Unstructured.io 需要更精細的文件元素提取
Pandoc 40+ 種 多種 學術社群 文件格式互轉(非 AI 專用)
liteparse PDF 優先 Markdown LlamaIndex 官方 高效能 PDF 解析(Rust)
建議搭配:對於大量 PDF 的場景,MarkItDown + liteparse 是最強組合——MarkItDown 處理 Word/Excel/PPT/HTML 等多格式,liteparse(LlamaIndex 官方 Rust 解析器)負責高速 PDF 處理,兩個工具互補,覆蓋所有企業文件格式。

FAQ:台灣工程師常見問題

Q1: MarkItDown 轉換繁中 PDF 的效果如何?

表現良好。MarkItDown 使用 pdfminer.six 作為 PDF 後端,對繁中(正體中文)的支援度與英文相近。但需注意:掃描版 PDF(非文字 PDF)需要啟用 OCR 功能(需要 GPT-4o 視覺)。內嵌字型的 PDF 可能在極少數情況下出現亂碼,此時建議改用 liteparse。

Q2: MarkItDown 轉換 Excel 表格的格式是什麼?

MarkItDown 會將 Excel 的每個工作表(Sheet)轉換為 Markdown 表格格式(使用 | 分隔符)。大型表格(超過 100 行)建議先用 pandas 預先篩選資料再轉換,避免 context 過長。

Q3: 轉換後的 Markdown 可以直接給 Claude 或 GPT 用嗎?

可以。MarkItDown 輸出的 Markdown 格式對 LLM 非常友好,標題層級、表格結構都有正確的 Markdown 語法標記。實際使用時,建議搭配 chunking 工具(如 LlamaIndex 的 SentenceSplitter)按 1024 tokens 切片,避免一次塞入過長的文件。

Q4: MarkItDown 支援 Google Docs / Google Sheets 嗎?

目前 MarkItDown 不直接支援 Google Workspace 格式。但有兩種解決方案:1. 從 Google Drive 下載為 .docx / .xlsx 後再轉換。2. 使用 Google Drive API 配合 MarkItDown,自動化下載和轉換流程。

Q5: MarkItDown 和 Claude Code 怎麼搭配?

最佳搭配方式:在 Claude Code 的工作區中安裝 MarkItDown,當你需要分析 PDF 文件或讀取 Excel 數據時,先用 MarkItDown 轉換,再把 Markdown 結果注入 Claude Code 的 context。這樣不需要 Claude Code 直接讀取二進位格式,效率更高且 token 使用更可預測。