MarkItDown adalah tools open source dari Microsoft yang bisa mengkonversi berbagai format dokumen seperti PDF, Word, Excel, dan PowerPoint menjadi Markdown yang bersih. Ini sangat berguna untuk RAG pipeline, content migration, atau sekadar mendapatkan structured text dari dokumen yang sulit diparse. Dibandingkan library sejenis, MarkItDown unggul dalam preservasi struktur tabel, heading hierarchy, dan formatting dasar.
MarkItDown tersedia sebagai package Python dan bisa diinstall via pip. Disarankan menggunakan virtual environment untuk menghindari konflik dependency:
python -m venv venv_markitdown
source venv_markitdown/bin/activate # Linux/Mac
# atau: venv_markitdown\Scriptsctivate # Windows
pip install markitdownPastikan versi Python minimal 3.10 karena beberapa dependency membutuhkan fitur terbaru. Jika kamu juga butuh OCR untuk PDF berisi gambar, install tambahan tesseract di sistem operasi.
Untuk konversi file paling sederhana, cukup jalankan command berikut di terminal:
markitdown input.pdf > output.mdCommand di atas akan membaca seluruh konten input.pdf dan menuliskannya ke output.md dalam format Markdown. MarkItDown otomatis mendeteksi tipe file berdasarkan extension dan magic bytes, jadi kamu bisa mengganti input.pdf dengan input.docx atau input.xlsx tanpa perubahan command.
Untuk workflow yang lebih kompleks, kamu bisa menggunakan MarkItDown sebagai library Python:
from markitdown import MarkItDown
md = MarkItDown()
result = md.convert("laporan_q4.pdf")
print(result.text_content)Object result mengandung beberapa properti penting: text_content untuk markdown string, metadata untuk informasi dokumen seperti author dan title, serta images untuk daftar gambar yang terdeteksi dalam dokumen.
Seringkali kita butuh mengkonversi ratusan dokumen sekaligus. Buat script sederhana untuk batch processing:
import os
from pathlib import Path
from markitdown import MarkItDown
md = MarkItDown()
input_dir = Path("./documents")
output_dir = Path("./markdown_output")
output_dir.mkdir(exist_ok=True)
for file_path in input_dir.glob("*.{pdf,docx,xlsx,pptx}"):
result = md.convert(str(file_path))
output_file = output_dir / f"{file_path.stem}.md"
output_file.write_text(result.text_content, encoding="utf-8")
print(f"Converted: {file_path.name}")Script di atas akan mengkonversi semua file yang cocok pattern di folder documents dan menyimpannya di markdown_output dengan nama file yang sama tapi extension .md.
Salah satu use case paling populer MarkItDown adalah preparasi data untuk Retrieval-Augmented Generation (RAG). Markdown output lebih mudah di-chunk dan diproses oleh LLM dibandingkan raw PDF text yang berantakan.
Tips optimasi:
--strip-tags jika kamu tidak butuh formatting HTML dalam outputMarkItDown juga kompatibel dengan framework seperti LangChain dan LlamaIndex. Kamu bisa menggunakannya sebagai custom document loader dengan meng-extend base class loader masing-masing framework.
Tools ini sepenuhnya open source dan bisa diakses di repository GitHub microsoft/markitdown. Dokumentasi lengkap tersedia di README repository tersebut bersama daftar supported formats yang terus bertambah.
Dapatkan feedback, users, dan eksposur dari komunitas kreator, developer, dan entrepreneur digital Indonesia.
Submit Produk → Pelajari Dulu