Output appears here.
Markdown to Plain Text strips Markdown syntax — headings, emphasis, links, images, tables, blockquotes and code fences — and keeps the readable text. Use it to turn a README, release notes or a chat-generated answer into copy for an email, a form field, a plain-text notification or a word count. Everything runs in your browser — nothing is uploaded.
How to strip Markdown formatting
- Paste Markdown or drop a
.mdor.markdownfile. - Decide what to keep: link URLs in brackets, list bullets, and the contents of code blocks. Everything else is always removed.
- Copy the text, or use Clean text to tidy spacing further in the Text Cleaner, or Change case to open the Case Converter.
Examples
A README with a list and a table
Heading markers, backticks and link syntax disappear; list items get a • bullet; table rows become tab-separated lines, so they paste into a spreadsheet as columns:
# Project title
A short description.
* install deps
* run `pnpm dev`
| Name | Type | Default |
| --- | --- | --- |
| indent | number | 2 |
| sortKeys | boolean | false |
See the [docs](https://example.com) for more.Result:
Project title
A short description.
• install deps
• run pnpm dev
Name Type Default
indent number 2
sortKeys boolean false
See the docs for more.Keeping link URLs
With Keep link URLs on, each link's address follows its text in parentheses, so nothing is lost in a plain-text email. Emphasis and the blockquote marker are removed:
**Formattr** is a *fast* formatter. Read the [privacy page](https://formattr.com/privacy) or `copy` the output.
> Nothing is uploaded.Result:
Formattr is a fast formatter. Read the privacy page (https://formattr.com/privacy) or copy the output.
Nothing is uploaded.Text only: no bullets, no code
With Keep list bullets and Keep code blocks both off, list markers and numbers are removed, the fenced code disappears, the image leaves its alt text, and the horizontal rule and HTML tags are dropped:
## Install
1. Clone the repo
2. Run the script
- [x] Tests pass
~~~bash
pnpm install
~~~

---
Footer with <b>html</b> and ~~old~~ text.Result:
Install
Clone the repo
Run the script
Tests pass
Logo
Footer with html and old text.Options explained
- Keep link URLs — writes
text (https://…)for inline links and for reference links such as[text][1], instead of just the link text. Off by default, which gives cleaner prose. - Keep list bullets — on by default: unordered and task-list items start with
•and numbered items keep their numbers. Off removes all list markers. - Keep code blocks — on by default: the contents of fenced code blocks are kept without the fences. Off removes code blocks entirely, useful for word counts or summaries.
Common problems when converting Markdown to text
Underscores or asterisks were kept
Only markers that wrap words are emphasis. An underscore or asterisk inside a word, as in snake_case_names or 2*3*4, is part of the text and stays, while *em* and _it_ lose their markers. If a marker you expected to vanish is still there, check that it has a matching closing marker.
Markdown inside inline code was kept
Text between backticks is protected: `**not bold**` becomes **not bold**, and `a_b_c` stays a_b_c. Only the backticks are removed, because code spans usually hold names and commands that must be copied exactly.
Reference links without their URL
Links written as [text][1] with [1]: https://… at the bottom become text, and the definition line is removed. Turn on Keep link URLs to get text (https://…), the same as for inline links.
A heading underline or table separator is still visible
Setext underlines (=== or --- on the line after a heading) and table separator rows, including minimal ones such as |-|-| and aligned ones such as |:--|--:|, are removed. If a === line remains, it is not directly under its heading text — a blank line separates them, so it is not a heading underline. Move it up, or use a # heading.
Numbered lists lost their numbers
Keep list bullets is off, which removes both bullets and numbers. Turn it back on to keep 1., 2. and the • markers.
FAQ
How do I remove Markdown formatting from text?
Paste the Markdown here and copy the result. Heading hashes, emphasis markers, backticks, link and image syntax, blockquote markers and HTML tags are removed, and the words stay in order. Choose whether to keep link URLs, list bullets and code, depending on where the text is going.
Why would I convert Markdown to plain text?
Plain-text channels show Markdown symbols literally: SMS, push notifications, many CRM and ticketing fields, app-store descriptions and plain-text email. Stripping the syntax is also the first step for accurate word or character counts, and for feeding text to tools that do not understand Markdown.
What happens to tables?
Each row becomes one line with cells separated by tabs, and the | --- | separator row is removed. Pasting the result into a spreadsheet puts each cell in its own column. If you need a readable aligned table instead, keep it as Markdown and format it with the Markdown Formatter.
Is the conversion reversible?
No. Plain text has no way to record which words were bold, which lines were headings or where links pointed, unless you keep URLs. Keep the original Markdown as the source and generate the plain-text version whenever you need it.
Does it handle Markdown from chat assistants?
Yes. Generated answers use ordinary Markdown — headings, bold, bullet and numbered lists, code fences and tables — which is exactly what the converter removes. Keep list bullets on to preserve the structure of steps, and turn off code blocks if you only want the prose.
Is my text uploaded?
No. Conversion runs in your browser inside an isolated frame that blocks network requests. Options are remembered on this device; the text is not stored unless you turn on "Remember my last input".
What is removed
| Markdown | Plain text |
|---|---|
# Heading |
Heading |
**bold**, *italic*, ~~strike~~ |
bold, italic, strike |
`code` |
code, with anything inside kept as written |
[text](url) |
text, or text (url) |
 |
alt |
> quote |
quote |
| Table rows | Tab-separated cells; the separator row is dropped |
=== or --- under a heading |
Removed; the heading text stays |
--- rule |
Blank line |
<b>html</b> |
html |
[ref]: url definitions |
Removed |
Related tools
Tidy the result's spacing with the Text Cleaner, or normalize the Markdown itself with the Markdown Formatter. Every text tool is listed under Text.