AI Text FormatterOpen the tool
ChatGPT → Markdown

ChatGPT to Markdown

Paste a ChatGPT answer — or rich text from Word, Google Docs, Notion or a web page — and copy clean, standard markdown: headings, bold, lists, quotes, fenced code and links, with the hidden characters and citation residue removed.

How do I convert a ChatGPT answer to markdown?

Paste the answer into the editor above. It reads either the markdown or the rich-text version ChatGPT puts on the clipboard, rebuilds the structure, and Copy writes standard markdown: # for headings, **double asterisks** for bold, *single* for italic, - for bullets, 1. for numbered lists, > for quotes, triple backticks for code and [text](url) for links. Paste that into Obsidian, a GitHub issue, Notion or a .md file. Nothing is uploaded.

What formatting survives on Markdown?

FormattingMarkdown
Bold✓
Italic✓
Underline✕
Strikethrough✓
Headings✓
Bulleted lists✓
Numbered lists✓
Inline code✓
Code blocks✓
Quotes✓
Links✓
Spoilers✕

Unsupported styles are dropped automatically when you copy, so nothing pastes in as broken markup.

Frequently Asked Questions

Doesn't ChatGPT already give me markdown when I copy?

Mostly, but not cleanly. The copy button now puts a rich-text version on the clipboard alongside the markdown, and apps with a live editor — Notion, Obsidian in live preview, Google Docs — take the rich version and produce mixed results. Select-and-copy gives raw markdown, but it carries ChatGPT's quirks: asterisk bullets, heading levels that jump, bold lines used as headings, citation markers and hidden characters. This page normalises all of that into one consistent dialect.

Which markdown flavour does it write?

CommonMark, plus ~~strikethrough~~ from GitHub Flavored Markdown. That is the common ground read by GitHub, Obsidian, Notion, Jekyll, Hugo, Astro, VS Code, Bear, Logseq and nearly every markdown renderer. Bold is **double asterisks**, italic is *single*, bullets are hyphens, and code blocks are fenced with the language name after the opening backticks.

Can I convert rich text from Word or a web page to markdown?

Yes. The editor accepts any rich text on the clipboard — a Word document, a Google Doc, a Notion page, a formatted email or a copied article — and rebuilds it as a document, so Copy gives you markdown for it. It is an HTML-to-markdown converter that happens to be tuned for ChatGPT output.

What happens to tables and images?

They are not carried across. The editor handles text structure — headings, emphasis, lists, quotes, code and links — and a markdown table or image reference has to be added by hand after the paste. Everything else in a typical answer converts.

Why did my underline disappear?

Standard markdown has no underline. Rather than inventing a non-standard marker that would render as literal symbols elsewhere, Copy drops the underline and keeps the text plain. Bold, italic, strikethrough and inline code all have real markdown equivalents and are kept.

Does it remove the citation markers ChatGPT adds?

The hidden characters are removed on paste. Citation markers such as 【12†source】 arrive as ordinary text, so delete them in the editor before you copy, or run the answer through the Remove ChatGPT formatting tool first if there are many.

Why “just copy it” produces messy markdown

ChatGPT writes its answers in markdown, so converting them to markdown sounds like a non-task. In practice three things get in the way. The copy button under each answer now places two versions on the clipboard, a rich-text one and a markdown one, and any app with a visual editor takes the rich one: Notion turns it into blocks with stray styling, Obsidian’s live preview pastes a mix, Google Docs renders it as formatting rather than markdown. Selecting the text with the mouse gives you the markdown, but it is ChatGPT’s dialect: bullets are sometimes * and sometimes -, nested lists use three-space indents that some renderers ignore, a bold line often stands in for a heading, and heading levels can jump from ## to ####. And both versions carry the residue — non-breaking spaces, the narrow space in “3 PM”, zero-width characters and, after a web search, citation markers — that makes a committed file look wrong in a diff.

This page takes either version, rebuilds the document in a visual editor, and writes it back out in one consistent markdown dialect. The result is what you would have typed by hand: hyphen bullets, two spaces of nesting, real headings, fenced code with a language tag and no invisible characters.

What the markdown looks like

Copy writes CommonMark with GitHub-style strikethrough, which is the subset every renderer agrees on:

## Project plan

A **bold** and *italic* and ~~struck~~ line with `code` and a [link](https://example.com).

- first point
- second point
  - nested point

1. step one
2. step two

> a quoted line

```js
const x = 1;
```

Underline has no markdown form and is dropped to plain text rather than written as something non-standard. Spoilers, which exist only on Reddit and Discord, are not part of this dialect either; the Reddit and Discord formatters write those flavours.

Where the markdown goes

Obsidian, Logseq, Bear and other note apps. Paste into a note in source mode and it renders as written. Because the dialect is plain CommonMark, the note stays portable if you move vaults or apps.

GitHub and GitLab. Issues, pull-request descriptions, wiki pages and README files. Fenced code blocks keep their language tag so syntax highlighting works, and lists nest correctly in the preview.

Notion.Notion converts pasted markdown text into blocks — headings, lists, quotes and code — which is often cleaner than pasting ChatGPT’s rich version directly. If you want the rich route instead, the Notion formatter handles that.

Static sites and documentation. Jekyll, Hugo, Astro, Docusaurus, MkDocs and the rest all read CommonMark. Paste the markdown under your front matter and build.

Anywhere you keep .md files. VS Code, a Git repository, a knowledge base. The output has no trailing spaces or invisible characters, so it diffs cleanly.

Rich text in, markdown out

The editor does not care where the formatting came from. Copy a section of a Word document, a Google Doc, a Confluence page, a formatted email or an article in your browser, paste it here, and Copy gives you markdown for it. Headings map to # levels, bold and italic to asterisks, bulleted and numbered lists to their markdown forms, block quotes to >, and hyperlinks to [text](url). Background colours and font changes are discarded on paste, because markdown has no way to express them and you would not want them in a file anyway. This is the route people use to move an old Docs archive into Obsidian or a wiki into a repository, one page at a time.

Markdown the other way

If the problem is the opposite — you have markdown and need it gone — the strip markdown tool reduces it to plain text with the code blocks kept intact. For destinations that render rich text rather than markdown, the Word and Google Docs converters put real formatting on the clipboard instead of markup.

Private and free

The conversion runs in your browser with client-side JavaScript. Your text is never sent to a server, stored or logged. No account, no limits, no watermark.