Word to Markdown converter

Drop a .docx, get clean Markdown. Heading styles become #, tables become pipe tables, images are extracted. Free, and the file never leaves your browser.

Free · no sign-up
# Project Charter

        Prepared by the **Platform** team for *FY26* planning.

        ## Scope

        - Migrate billing to the new ledger
        - Retire the legacy export job

        | Milestone | Owner | Date |
        |---|---|---|
        | Design sign-off | Ana | Mar 14 |
        | Beta | Wen | May 2 |

        ![Roadmap](images/image1.png)
Converted in your browser. Your file never leaves your device.
1

Drop the .docx

Drag a Word file onto the box, or select text in Word, copy it, and paste. Both paths work offline.

2

Review the Markdown

The right pane shows the exact .md text. Switch heading style, bullet character or how merged cells are written.

3

Download .md

Save the file or copy it straight into Obsidian, GitHub, Notion or a static-site repo.

How a .docx turns into Markdown

A Word file is a zip archive. Inside it, word/document.xml holds the paragraphs, word/styles.xml defines the named styles, word/numbering.xml describes every list, and word/media/ contains the pictures. A Word to Markdown converter has to read all four and decide, for every paragraph, which Markdown construct comes closest. Here is how MDtoDOCX makes those decisions, so you know what to expect before you download.

Heading styles map to #, not font size

Each paragraph carries a style id. Title and Heading 1 become #, Heading 2 becomes ##, and so on through Heading 6. Heading 7 to 9 are flattened to ###### because Markdown stops there. A paragraph in the Normal style that merely looks like a heading, say 16-point bold on its own line, is exported as a bold paragraph, because that is what it is in Word. If your document was formatted by hand, turn on Detect visual headings and single-line bold paragraphs larger than the body text are promoted to the nearest heading level.

Runs are merged before formatting is written

Word splits text into runs whenever spell-check, a font change or a revision boundary occurred, so one bold word can be stored as three runs. A naive converter writes **Pro****ject**. MDtoDOCX merges adjacent runs with identical formatting first, then emits **bold**, *italic* and ~~strikethrough~~ once per span. Underline has no Markdown equivalent and is dropped. Superscript footnote references become [^1] with the footnote body appended at the end of the file.

Lists are resolved through numbering.xml

List paragraphs do not contain bullets or numbers. They point at a numbering definition and a level. MDtoDOCX resolves each pointer, writes - for bullet levels and 1. for decimal levels, and indents nested items by two spaces per level as GitHub Flavored Markdown expects. Lists that restart in Word restart in the Markdown.

Merged table cells

Pipe tables cannot express a cell that spans two columns or two rows. For a horizontal merge (gridSpan) MDtoDOCX writes the value in the first column and leaves the spanned columns empty, so the table still lines up. For a vertical merge (vMerge) the value appears in the first row and continuation rows get an empty cell. If a table contains a nested table or a cell with several paragraphs, the pipe form would lose content, so the converter emits an HTML <table> for that table only. You can force this behaviour for every table with the Merged cells option.

Images are extracted, not lost

Pictures live in word/media/ as PNG, JPEG or, for older clip-art and charts, EMF and WMF. MDtoDOCX extracts each one, names it image1.png, image2.png in document order, and writes ![alt](images/image1.png) using the alt text Word stored on the picture. EMF and WMF are rasterised to PNG because almost no Markdown viewer renders them. The free download gives you the .md with these references. Pro bundles the .md and the images/ folder into a single .zip so the links resolve the moment you unpack it.

Pasting from Word

When you copy from Word, the clipboard carries HTML with mso- style hints. MDtoDOCX reads the mso-style-name on each paragraph, so a pasted Heading 2 still becomes ##, and then runs the same pipeline as the HTML to Markdown converter. Pasting is the fastest way to convert a section of a long document without exporting the whole file.

Tracked changes and comments

Insertions that are still tracked are kept, deletions are removed, as if you had accepted all changes. Comments are dropped, since Markdown has nowhere to put them. Hyperlinks are resolved through the relationships file and written as [text](url). All of this happens in JavaScript in your browser; the .docx is unzipped in memory and never uploaded, which is why a 60-page report converts in under two seconds.

MDtoDOCX vs Pandoc vs copy-paste

What mattersMDtoDOCXPandocCopy into a Markdown editor
Heading styles to #Yes, Title and Heading 1–6YesNo, headings arrive as plain text
Split runs mergedYesYesn/a, formatting is lost
Merged table cellsBlank-cell pipe table or HTML, your choiceFalls back to grid tableTabs and spaces
ImagesExtracted to images/, EMF rasterisedExtracted with --extract-mediaLost
Footnotes[^1][^1]Lost
Paste a section instead of a fileYesNoYes
Install anythingNoYesNo
PrivacyLocal, nothing uploadedLocalLocal

Frequently asked questions

Does the Word to Markdown converter handle .doc as well as .docx?
It reads .docx, the format Word has used since 2007. For a legacy .doc, open it in Word or LibreOffice and choose Save As .docx, or simply copy the text and paste it into the converter, which reads Word's clipboard format directly.
Will my Word headings become Markdown headings?
Yes, if they use Word's Heading 1 to Heading 6 or Title styles. Paragraphs that were made to look like headings with bold and a larger font are exported as bold text unless you enable Detect visual headings, which promotes them based on size and length.
What happens to merged table cells?
Pipe tables cannot express a span. By default the value goes in the first cell of the span and the remaining cells are left empty so columns still align. Choose HTML table in the options to keep the exact rowspan and colspan instead.
Where do the images go?
They are extracted from the .docx and referenced as images/image1.png, images/image2.png and so on, with Word's alt text preserved. Free gives you the .md file with those references. Pro downloads the .md and the images folder together as one .zip.
Are footnotes, comments and tracked changes kept?
Footnotes become Markdown footnotes with [^1] references. Tracked insertions are kept and deletions removed, as if all changes were accepted. Comments are dropped because Markdown has no equivalent.
Can I paste from Word instead of uploading a file?
Yes. Select text in Word, copy, and paste into the left pane. The clipboard carries Word's style names, so headings, lists and tables convert the same way they would from a file. Nothing is uploaded in either case.
Which Markdown flavour is produced?
GitHub Flavored Markdown: ATX headings, hyphen bullets, pipe tables, fenced code and footnotes. It renders correctly on GitHub, in Obsidian, Notion imports and every static-site generator we have tested. Switch to Setext headings or asterisk bullets in the options if your tooling prefers them.
Is the docx to markdown conversion free and private?
Free, no account, no daily limit for single files up to 20 MB. The .docx is unzipped and parsed in your browser. Pro adds batch conversion of many files, the images .zip and visual heading detection.
Can I go the other way, from Markdown back to Word?
Yes. Use the Markdown to Word converter or, if you already have a file, MD file to Word. Both write real Word heading styles so the round trip preserves structure.