# MarkItDown DocumentConverter Base Class Architecture Explained

> Explore the architecture of the DocumentConverter base class in Microsoft MarkItDown. Learn how its two-method contract powers a flexible plugin system.

- Repository: [Microsoft/markitdown](https://github.com/microsoft/markitdown)
- Tags: architecture
- Published: 2026-04-11

---

**The `DocumentConverter` in microsoft/markitdown is an abstract base class that defines a strict two-method contract—`accepts()` and `convert()`—enabling a plugin-style architecture where every concrete converter yields uniform `DocumentConverterResult` objects.**

The microsoft/markitdown library converts documents to Markdown through a modular pipeline built around the `DocumentConverter` base class. Understanding this architecture is essential for extending the library with custom format support or troubleshooting conversion pipelines. The design cleanly separates format detection from content transformation using immutable metadata wrappers and standardized result objects.

## Core Components

The