Markdown to Word · ChatGPT
Convert ChatGPT responses to Word
ChatGPT answers in Markdown, so pasting one into Word gives you literal ## and ** and a table made of pipe characters. Paste it here instead and get a real .docx — or copy formatted content straight into a document you already have open. Everything runs in this tab.
- Fenced code inside numbered steps: the one thing that most often parses wrong.
- Comparison tables become real Word tables, minus the <br> tags in the cells.
- Answers usually start at ###, so promote the headings before you convert.
Quarterly Update
Paste anything here — this text is a placeholder. Nothing you type is uploaded.
What shipped
| Workstream | Owner | Status |
|---|---|---|
| Billing migration | Ada | Done |
| Search reindex | Grace | In progress |
| Mobile onboarding | Alan | Blocked |
Bold, italic, struck through and inline code all carry over into
Word as real formatting, not as literal characters.
Next two weeks
Blockquotes become indented quote paragraphs.
export function total(items: readonly number[]): number {
return items.reduce((sum, n) => sum + n, 0);
}
Footnotes become real Word footnotes.[1]
Maths (turn on “Equations”)
Inline , and a display equation:
Diagram (turn on “Diagrams”)
flowchart LR
A[Markdown] --> B[Parse]
B --> C[Render]
C --> D[.docx]
Numbered and positioned by Word itself, so they renumber when you edit. ↩︎
Word theme
Checking clipboard support…
The Markdown → OOXML converter behind this page is an open-source library called downword.
A ChatGPT-shaped answer to try
Copy this into the editor above and convert it. It has the four things a real answer usually has: a section that opens at ###, a fenced block indented inside a numbered step, a comparison table with a <br> in one cell, and maths written with LaTeX bracket delimiters. Three of the four come through cleanly, and the two that need a hand are obvious in the preview.
### Migrating the billing service
Here is the sequence I would follow.
1. Snapshot the production database first.
```bash
pg_dump --format=custom billing > billing.dump
```
2. Point the new service at a read replica.
3. Cut traffic over during the Tuesday window.
| Option | Downtime | Rollback | Effort |
| --- | --- | --- | --- |
| Big bang | 45 min | Restore the dump<br>then replay the log | Low |
| Dual write | None | Flip the feature flag | High |
**Recommendation:** dual write. The expected error rate is \(p < 0.01\).
What a ChatGPT answer turns into
Everything below was checked against the converter this page runs, not against Markdown in general. “Check it” means the preview will show you the problem; “Fix it first” means it is faster to edit the Markdown than to repair the Word file.
| In the source | In the .docx | Verdict |
|---|---|---|
| ### section headings | Real Heading 3 styles — correct, but an outline that starts at level three. Promote them to # and ## first if you want Word's navigation pane and a table of contents to make sense. | Check it |
| Numbered steps | A real Word numbered list, provided every child block is indented to the item's content column. A flush-left fence ends the list and the next step restarts at 1. | Check it |
| Fenced code blocks | A shaded monospace block, one paragraph per line, no syntax colours — the converter is passed no highlighter. The language tag on the fence is read and then has nothing to do. | Carries over |
| Pipe tables | A real Word table with a header row and borders. Inline bold, code spans and links inside cells survive. Pages are A4 portrait, so seven columns arrive cramped. | Carries over |
| <br> inside a cell | Literal text. Raw HTML is escaped rather than interpreted, so the characters show up in the Word cell. The preview renders them, because a preview is a browser. | Fix it first |
| $…$ and $$…$$ | Native, editable Word equations with the Equations toggle on — OMML, not a picture. | Carries over |
| \(…\) and \[…\] | Literal text. The equation reader takes dollar delimiters only, so the backslashes and brackets come through as characters. | Fix it first |
| Curly quotes and dashes | Whatever characters you pasted. The preview curls quotes and turns -- into a dash; the .docx does not, so the two can differ by a character or two. | Check it |
Getting the Markdown out of the chat intact
A ChatGPT answer never exists as a file, which is the first thing that separates this from converting a .md you already have. There are two ways to get it onto your clipboard and they do not produce the same thing. The copy button under a message copies the Markdown source — the ##, the pipes, the backticks. Dragging across the answer and pressing Ctrl+C copies the rendered HTML instead, and pasting that into Word brings the chat interface's fonts, its grey code panels and its link colours with it, which is usually the mess people are trying to escape in the first place. Use the message's copy button, then paste into the editor above. The left-hand pane should show plain text with visible Markdown syntax in it. If there are no # characters and no pipes, you copied the rendered version — go back and use the button.
Numbered steps with code blocks in them
ChatGPT's default shape for anything procedural is a numbered list with a fenced code block under each step, and that is the single most common thing that comes out wrong. CommonMark decides whether a fence belongs to a list item by its indentation: after a 1. marker the item's content starts three characters in, so the opening fence and its closing partner both have to be indented to stay inside step one. ChatGPT is inconsistent about this. When the fence lands flush left, the list ends there, the code becomes a top-level block, and the next step begins a brand-new list numbered from one. The preview above shows this happening, and it is worth a glance before you download, because in Word a list that restarts at 1 does not look like a parsing artefact — it looks like a mistake you made. The fix is to indent the fences to match the step, or to accept the break and renumber in Word. Both the preview and the .docx apply the same CommonMark rules, so the preview is trustworthy on this particular question.
The tables are usually the reason you are here
Comparison tables are what most people are trying to keep, and GitHub Flavored pipe tables become real Word tables: header row, borders, one cell per column, with bold text, code spans and links inside the cells intact. Two things are specific to ChatGPT. First, a pipe table cannot hold block content, so when the model wants a line break inside a cell it writes <br>. Raw HTML is escaped here rather than interpreted — a deliberate choice, since interpreting arbitrary HTML out of a pasted document is how converters grow security holes — which means those five characters appear in the finished Word cell as text. Search the editor for < before converting and replace each one with a space or a semicolon. Second, ChatGPT is fond of tables six and seven columns wide. The page is A4 portrait, so a table that wide arrives squeezed; in Word, click inside it and use Layout → Orientation → Landscape for that section, or delete the columns you did not need before you convert.
Answers that start at Heading 3
Because an answer is a reply inside a conversation rather than a document, ChatGPT usually opens its sections at ### and reserves # and ##for nothing at all. Headings here become Word's real Heading 1 to Heading 6 styles, so an answer converted as-is gives you a document whose outline begins at level three: Word's navigation pane shows everything indented under nothing, and References → Table of Contents produces a contents list that is three levels deep before it says anything. Promote them in the editor above before converting — turn each ### into ##, and add a # title line of your own at the top. It takes about ten seconds and it is the difference between a document with a usable outline and one that merely looks right on the first page.
Two notations for maths, one of them recognised
ChatGPT writes maths in two notations depending on how the question was asked: dollar delimiters, $…$ and $$…$$, or LaTeX's \(…\) and \[…\]. The Equations toggle reads dollars only. With it on, $E = mc^2$becomes a native, editable Word equation — the same OMML that Word's own equation editor produces, so you can click it in Word and change it rather than being handed a picture. \(E = mc^2\) is not recognised and arrives as literal text, backslashes and brackets included. If your answer uses the bracket form, two find-and-replaces in the editor above are all it needs. Leave the toggle off when there is no maths in the document: the equation engine is about 85 KB compressed and only downloads the first time you switch it on.
What the preview shows that the .docx will not
The preview above is a browser rendering the same Markdown, and it is deliberately a little more generous than the Word writer. It curls quotes and turns -- into a dash; the .docx keeps whatever characters you pasted. It renders raw HTML; the .docx escapes it to text. It renders :tada: as an emoji; the .docx keeps the colons. Treat the preview as a check on structure — heading levels, list nesting, whether that table parsed at all — rather than as proof of the final characters. Anything the converter has to drop or approximate is named in the notes panel under the buttons after a conversion, so a document that converts with no notes converted cleanly.
Turning a ChatGPT answer into a Word document
Copy the Markdown source of a ChatGPT reply, fix the two things that usually parse wrong, and download a Word .docx — without the answer leaving your browser.
Copy the Markdown, not the rendering
Press the copy button under the ChatGPT message. Selecting the answer with the mouse copies rendered HTML instead, which pastes into Word carrying the chat interface's own styling.
Paste it into the editor
Paste into the left-hand pane on this page. The preview on the right shows how the converter reads it. Nothing is uploaded — parsing and packing both run in this tab.
Promote the headings
ChatGPT usually opens sections at ###. Change them to ## and add a # title so the Word document has an outline that starts at Heading 1.
Fix the fences and the <br> tags
Indent any fenced code block so it sits inside its numbered step, and replace <br> inside table cells with a space. Both show up in the preview.
Download or paste into Word
Press Download .docx for a file, or Copy for Word / Docs to paste formatted content into a Word, Google Docs, Outlook or Gmail window you already have open.
ChatGPT to Word: common questions
How do I copy a ChatGPT answer into Word without losing the formatting?
Use the copy button under the message rather than selecting the text with the mouse. The button copies the Markdown source; a mouse selection copies the chat interface's rendered HTML, which pastes into Word with the site's fonts, its grey code panels and its link colours attached. Paste the Markdown into the editor on this page, check the preview, then either download the .docx or press Copy for Word / Docs and paste straight into a document you already have open.
Why does my numbered list restart at 1 after a code block?
Because the fence was not indented far enough to stay inside the list item. CommonMark treats a fenced block that starts at the left margin as a new top-level block, which ends the list; the next numbered line then begins a fresh list at 1. For a '1. ' marker the item's content starts three characters in, so indenting the opening and closing fences by four spaces keeps the code inside step one. The preview on this page shows the same parse the .docx will use, so a list that restarts in the preview will restart in Word.
Why does <br> appear inside my table cells?
ChatGPT writes <br> when it wants a line break inside a table cell, because a GitHub Flavored pipe table cannot hold block content. This converter escapes raw HTML rather than interpreting it, so those characters arrive in the Word cell as visible text. Search the editor for '<' before converting and replace each one with a space or a semicolon. The live preview will not flag them, because a preview is a browser and browsers render HTML.
Does this work for Claude, Gemini, and Copilot answers too?
Yes. All of them answer in Markdown, and the converter only ever sees Markdown, so the conversion is identical. The habits differ slightly — Claude tends to nest lists more deeply, Gemini leans on bold lead-ins rather than headings — but the constructs are the same ones described on this page, and nothing here is specific to ChatGPT's servers or account.
Are ChatGPT's LaTeX equations converted to Word equations?
The ones written with dollar delimiters are. With the Equations toggle on, $E = mc^2$ and $$…$$ become native OMML — the same markup Word's own equation editor produces, so you can click an equation in Word and edit it. ChatGPT also emits \(…\) and \[…\] depending on how the question was asked, and those delimiters are not recognised: they arrive as literal text, backslashes included. A find-and-replace in the editor before converting is enough to fix it.
Is my ChatGPT conversation uploaded anywhere?
No. The Markdown parser and the .docx writer both run as JavaScript in this tab, inside a Web Worker, and with 'Fetch remote images' off — the default — the converter makes no network requests at all. The page itself loads Google Analytics like every page on this site, and pressing Download records the theme, the three switches, the input and output sizes in bytes, and how long the conversion took. Never the text, never a file name.
Converting from somewhere else?
- GitHub README to WordBadge rows, centred HTML headers, relative paths, and anchor links that become real Word bookmarks.
- Notion export to WordMarkdown & CSV exports, databases that left as separate files, and three heading levels.
- Markdown to Word, generallyThe converter without a source-specific guide around it.
- Markdown to PDFThe same Markdown, with page-break control, when the answer needs to be a PDF.
Related tools
This free tool is built and maintained by KSPR Technologies. We build web, mobile & AI products for clients.