← Back

Word to Markdown

Convert into Markdown-formatted text

Conversion preserves basic formatting as Markdown syntax — headings, bold, italic and lists — but not visual styling like font color that Markdown can't express. Everything runs locally in your browser, and your file is never uploaded.

About Word to Markdown

Word to Markdown converts a .docx document into Markdown text. After you choose a file, the page shows the result, which you can copy with 'Copy' or save with 'Download .md'. Headings, bold, italic, strikethrough, lists, links and tables are turned into the matching Markdown syntax, but styling that Markdown cannot express, such as fonts and colors, is not kept. Only .docx is supported; an older .doc file must first be re-saved as .docx in Word.

How to use it

  1. Click the dashed box 'Click to select a .docx file' and choose the document.
  2. The page shows 'Converting…', and then a 'Converted result' area appears with the Markdown text in a monospaced font.
  3. Click 'Copy' to put the result on your clipboard (it briefly shows 'Copied'), or click 'Download .md' to save a file named after the original with .md added.
  4. Paste the text into your Markdown editor, note app or documentation repository and tidy it as needed.

A worked example from real output

We ran generated .docx test documents through the same libraries and rules the tool uses: mammoth converts to HTML, then turndown converts that to Markdown. The test document held a Heading 1 (in Chinese), a Heading 2, a sentence with bold, italic and struck-through words, a two-column, two-row table and a closing paragraph. The Markdown came out like this. Headings are written with hash marks ('# ' and '## '). Bold is wrapped in double asterisks, italic in underscores and struck-through text in double tildes. The table became a pipe table: a header row '| name | score |', a separator row '| --- | --- |' and a data row. Bullet items start with an asterisk followed by three spaces, and numbered items start with '1.' and '2.'. By default an image still becomes '![](data:image/png;base64,…)' followed by a long encoded string; with 'Include images' unticked the image is dropped entirely and only the surrounding text remains (checked with a 1×1 pixel test image between two paragraphs: ticked gives the data-URI image syntax, unticked leaves just the two paragraphs).

Limits and known behavior

  • Only .docx is supported. An older .doc or an invalid file produces 'Could not convert this file. Please make sure you uploaded a valid .docx file (the older .doc format is not supported).'
  • Headings use hash marks ('#', '##', and so on). Level 1 and 2 are not written in the underlined style.
  • Tables become Markdown pipe tables, and the first row is always used as the header. Cell contents are reduced to plain text on one line, so merged cells, nested lists and line breaks inside a cell are not preserved.
  • 'Include images' is ticked by default: images are embedded as base64 data in image syntax. The text is very long, and many Markdown platforms are not suited to that, so you will usually export the images separately and replace them with normal image URLs. Untick it to drop images (no placeholder or alt text is left); the conversion reruns immediately, and images are never exported as separate files.
  • Underline, font color, size and alignment are not preserved. Strikethrough is kept and written as ~~text~~.
  • Bold and italic are detected when applied as real character formatting in Word. Headings depend on using the built-in Heading 1, Heading 2 styles; a normal paragraph that was merely enlarged is not detected.
  • Whether nested list levels survive intact depends on the document's list structure. For complex multi-level lists, check the output.
  • There are no conversion options: you cannot switch the heading style, list marker or emphasis character.

The result looks wrong in my note app. Is the tool broken?

Not necessarily. Markdown apps differ in what they support. Some cannot handle images with very long base64 data (untick 'Include images' to remove them), and some render the spaced list indentation differently. Find out in your app which kind of element is off, usually images or tables, and fix that specifically.

Could bold or italic be missed?

Formatting applied with Word's Bold and Italic buttons is detected. But text that only looks bold because of a custom style may not be treated as bold by the converter. To check, search the result for asterisks and underscores.

Can I publish the result as is?

It works well as a first draft. Check heading levels, lists, links and images in the preview of your target platform, and fix the items listed above before publishing.

Privacy and processing

The file is read in your browser, the two libraries needed are loaded by the page when you use the tool, and the conversion happens locally. The code contains no network request that sends the document to a server. The result is kept only in the current page's memory and is gone when you close or refresh it.