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.
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.
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.
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.