Markdown to Rich Text: Paste Formatted Output Anywhere
September 11, 2026 · 9 min read
Markdown to Rich Text: Paste Formatted Output Anywhere
Converting markdown to rich text takes three steps and no special tool. Render the Markdown in a preview, select the rendered output, and copy it. Your browser puts HTML on the clipboard, so pasting into Gmail, Google Docs, Word, or Notion keeps the headings, bold text, links, and lists. This guide covers the mechanism, each destination, and the ChatGPT cleanup case.
Why a Rendered Preview Is the Markdown to Rich Text Converter
"Rich text" isn't a file format here. It's what sits on your clipboard when you copy from a web page: a formatted HTML version of the selection alongside a plain-text version. The W3C Clipboard API specification lists exactly three mandatory data types every browser must support for reading and writing: text/plain, text/html, and image/png.
That's the whole trick. When you copy from a rendered Markdown preview, the browser writes the text/html representation (headings, bold, links, lists as real HTML elements) and the text/plain fallback (the visible words). A rich-text editor such as Gmail's compose box or a Word document reads the HTML flavour. A plain text box such as a terminal or a code editor reads the plain flavour.
So any tool that renders Markdown to HTML in a browser is already the converter. The Markdown to HTML guide explains the rendering step itself and the tools that produce HTML files; this post is about the copy and paste workflow on top of it.
How Can I Convert Markdown Text to Rich Text?
Here's the workflow we use for a formatted email or a doc.
- Paste the Markdown into a live preview. Open the editor and paste the source in the left pane.
- Select the rendered output. Click into the preview pane and select everything you want.
- Copy. Ctrl+C on Windows and Linux, Cmd+C on macOS. The browser writes both the HTML and the plain-text versions.
- Paste into the destination. Click into Gmail, Google Docs, Word, Outlook, or Notion and paste normally. The app reads the HTML version and applies its own styles.
One rule of thumb: paste with the plain Ctrl+V, not the "paste without formatting" shortcut (Ctrl+Shift+V in many apps). The shortcut deliberately takes the plain-text flavour, which is the opposite of what you want.
If you need an HTML file rather than a clipboard paste, for a CMS or an email template, the Markdown to HTML tool writes the converted markup out for you.
Try the Copy-and-Paste Workflow in the Editor
Render the sample below, then select the preview and copy it. Paste into an email draft or a document to see the formatting arrive.
Select the rendered version in the preview pane (not the source on the left), copy, and paste. The headings, list, link, and blockquote should all survive in a rich-text destination.
What Survives the Paste in Each Destination
What arrives depends on the destination's own formatting model. A paste can't create a structure the app doesn't have.
| Destination | Its formatting model | What to check after pasting |
|---|---|---|
| Google Docs | Full document model: headings, lists, links, tables, images | Code blocks, which Docs has no native object for |
| Microsoft Word, Outlook desktop | Full document model | Code blocks, which need a monospace style applied by hand |
| Gmail compose | Inline styles, lists, links, quotes | Headings arrive as styled text; check code samples and tables |
| Notion | Block model: headings, lists, quotes, code, tables, callouts | Nested lists and tables, since Notion turns pasted content into blocks |
| Slack message box | Bold, italic, strikethrough, code, code block, quote, lists | Headings and tables, which Slack's formatting has no equivalent for |
| LinkedIn post, most CMS textareas | Plain text only | Everything; use Unicode or the site's own editor instead |
Two of these deserve a note. Google Docs has a better route than a rich-text paste. Turn on Markdown under Tools, Preferences, then right-click and choose Paste from Markdown, which converts the source directly, per Google's Markdown help page. The Google Docs Markdown guide walks through that setting.
Slack is the other special case. Its message formatting help lists bold, italics, underline, strikethrough, code, block quote, code block, ordered and bulleted lists, and links, and nothing else. A pasted heading turns into a normal line, and a pasted table becomes rows of text. For tables specifically, the Slack Markdown table guide covers the workarounds.
One acknowledged limitation of the whole approach: every destination applies its own default fonts and spacing, and none of them keep syntax-highlighted code the way a Markdown preview shows it. If the code samples matter, attach a file or link to a gist instead of pasting them.
Cleaning Up ChatGPT and Claude Output for an Email or Doc
Most people searching for this workflow are holding a chat assistant's answer. AI assistants write in Markdown, which is why a copied reply arrives in your email full of **asterisks** and ## pound signs. The Markdown in AI guide explains why they do it; here's how to fix it in under a minute.
- Copy the reply from the assistant. You'll usually get the Markdown source, symbols included.
- Paste it into the left pane of the editor. The right pane shows the reply as it was meant to look.
- Edit the rendered text if you like, then select the preview, copy, and paste into your email or document.
The result is formatted text with no stray symbols. We prefer this over asking the assistant to strip its formatting. A rendered paste keeps the structure (numbered steps, bold terms, links) that made the answer readable in the first place.
Three things to check on AI output before you paste. Tables: fine in Docs and Word, impossible in Slack, and worth a look in Gmail. Code blocks: they'll lose highlighting everywhere, so consider trimming them. Horizontal rules: assistants add a lot of them, and they become empty lines or literal dashes in email.
Is Rich Text the Same as Markdown?
No. They describe formatting in opposite ways.
Markdown is source text: the formatting instructions are visible characters (#, **, -) in a plain file that any editor can open. Rich text is rendered formatting. The styles are stored as hidden markup (HTML on the web, a document model in Word and Docs) and you see the result, not the instructions.
That difference decides which one to send. Use Markdown when the recipient is a developer tool: a GitHub issue, a README, a wiki page, a chat app such as Discord that renders it. Use rich text when the recipient is a person reading in a mail client or a word processor. A Markdown file is the source of truth; rich text is a rendered copy of it.
The reverse conversion, formatted text back to Markdown, is a separate job. Paste rich text into the HTML to Markdown converter and it turns the clipboard's HTML back into # and ** syntax. That's the fastest way to get an email or a web page into a .md file.
When a Paste Won't Work: Plain-Text Boxes and File Exports
Some destinations ignore the HTML on your clipboard. Slack's composer keeps only the formatting it supports, Reddit's plain editor and many CMS fields take text only, and any command-line tool gets the text/plain flavour. In those places, paste the Markdown source instead, or the destination's own syntax if it has one. The Reddit formatting guide covers one common case.
At the other end of the scale, some tasks want a file, not a paste. A report someone will edit in Word should be a .docx; the Markdown to Word guide covers that export. A signed PDF or a printed handout should go through the Markdown to PDF converter. The clipboard route is for everything in between: the email, the doc comment, the wiki page, the meeting notes.
Markdown to Rich Text FAQ
Turning markdown to rich text is a copy from a rendered preview: the browser supplies the HTML, and the destination applies its styles. Check tables and code in the target app, use Paste from Markdown in Google Docs, and fall back to the Markdown source in plain-text boxes. Paste your next draft into the editor and copy the preview.