Convert Word .docx into clean Markdown, headings, lists and tables kept intact
You have a .docx file from Word, Google Docs export or LibreOffice and you need it as Markdown for your README, static site, blog post or Notion / Obsidian note. Copy-pasting from Word into a Markdown editor leaves you with garbage: smart quotes, broken bullet points, no headings.
This tool reads the OpenXML structure inside your .docx (Word is really a ZIP archive with XML inside), maps paragraph styles to Markdown headings, bullet and numbered lists to `-` and `1.`, tables to GitHub-flavored tables, and bold / italic / links to their Markdown equivalents.
The whole job runs server-side in our Node process using `mammoth`, the same library Pandoc-style tools use under the hood. The file is parsed in memory and discarded immediately, never written to disk, never logged. You see two panes: the raw Markdown on the left (copy or download), and a live HTML preview on the right so you can sanity-check the result before pasting it into your repo.
How to use it
- Drop your .docx file into the dropzone, or click "Choose file". Only `.docx` is accepted, the older `.doc` binary format is not supported (re-save it from Word first).
- Pick image handling with the switch at the top: "Strip images" (default, fastest, cleanest Markdown) or "Embed as base64" (every image becomes a `data:image/png;base64,...` URL inline in the Markdown).
- Hit Convert. The server unzips the .docx, walks the document XML, and returns the converted Markdown plus a list of warnings for anything that did not map cleanly.
- Read the warnings panel at the top. Mammoth lists things it could not convert: unsupported styles, lost footnotes, dropped comments. Decide whether you care.
- On the left pane you see the raw Markdown. Hit Copy to put it on the clipboard, or Download to save it as a `.md` file with the same base name as your source.
- On the right pane you see the HTML preview rendered from the Markdown. This is what a Markdown engine (GitHub, Notion, your static site) will display.
- If the result looks wrong, the usual fix is upstream: in Word, apply real heading styles (Heading 1, Heading 2) instead of just bumping the font size. Resave, re-drop.
- Nothing is stored. The file is read into a buffer, converted, and the buffer is released. No copy lives on our servers.
When this is useful
Six common situations where this tool replaces 20 minutes of manual cleanup:
- Importing a long Word draft into a static site. You wrote a 4000-word article in Word with proper heading styles. You need it as Markdown for Hugo, Astro, Next.js MDX or Jekyll. Drop, convert, paste, done. Headings, lists, links, tables, all preserved.
- Migrating internal docs from SharePoint or Google Docs to a wiki. Your team is moving from a Word-based knowledge base to Notion, Obsidian, Outline or BookStack. Batch-export the Word files, run each through this tool, get clean Markdown ready to paste.
- Turning a vendor spec into a README. The vendor sent you a 30-page Word spec with numbered headings and tables. Convert to Markdown, drop into your repo as `docs/spec.md`. Search-friendly, diffable, version-controlled.
- Preparing content for an LLM context window. You want to feed a Word doc into ChatGPT, Claude or a local model. Markdown is far more token-efficient than raw Word HTML and the model parses structure (headings, lists) better.
- Quoting a section in a GitHub issue or pull request. You got a Word file as a bug report. Convert, copy the relevant section, paste into the issue. The structure (the user step list, the table of versions) survives intact.
- Translating a legal contract template. You have the original in .docx, you need a clean Markdown version to run through a translation pipeline. Convert, translate the Markdown (where formatting is text not metadata), then re-export.