Word to Markdown Converter

Convert a .docx file into Markdown, preserving real document structure — entirely in your browser

Drop a .docx file here, or click to browse
Only Word .docx files are accepted (legacy .doc is not supported)
Loading Word parser…

Markdown output

The .docx file itself never leaves your device — it's parsed locally by your browser using the mammoth.js library. That parsing library is fetched from a public CDN the first time you use this tool, but your document content is not uploaded to any server.

About this tool

This tool uses the mammoth.js library to genuinely parse the internal XML structure of a .docx file and convert it into clean HTML, correctly recognizing headings, bold and italic runs, hyperlinks, and lists as the document actually defines them — not by guessing from plain text. That HTML is then passed through a focused conversion pass that maps each of those structural elements to its Markdown equivalent: heading levels become "#" through "###", bold becomes "**text**", italics become "_text_", links become "[text](url)", and list items become "- item" lines. Because it reads real document structure rather than raw text, it handles formatted documents far more faithfully than a plain text-extraction approach would. It only supports the modern .docx format (the ZIP-based Office Open XML format used since Word 2007); the older binary .doc format isn't supported. Everything happens locally in your browser tab, with only the parsing library itself loaded from a public CDN.

Does this preserve headings, bold text, and links, or is it just raw text?

It preserves real structure. Mammoth.js reads your document's actual formatting — headings, bold, italics, hyperlinks, and lists — and converts each to its Markdown equivalent, so the output is a faithful Markdown version of your document rather than a flat text dump.

Why won't it accept my .doc file?

This tool only supports the modern .docx format, which is a ZIP-based XML format introduced in Word 2007. The older binary .doc format uses a completely different internal structure that this library can't read — you'll need to re-save the file as .docx in Word first.

What happens to complex elements like images or tables?

Mammoth.js focuses on text-level structure — headings, emphasis, links, and lists — and this converter's Markdown pass doesn't map images or tables to their Markdown equivalents, so those elements may be dropped or appear as plain text in the output. For text-heavy documents, results are typically very clean.