Markdown to plain text converter
Updated
Paste markdown and get the text with every formatting marker removed: no hashes, asterisks, backticks, pipes or brackets, while the words, the line structure, lists and code stay exactly as written. Links can keep their URL as text (url) so nothing is lost. Use it for email, SMS, form fields, commit messages and anywhere markup would show literally. Runs in your browser.
No approximations: every element has a direct equivalent.
430 characters of markdown → 0 characters of Plain text. Everything runs in your browser; nothing is uploaded.
How is each markdown element converted to plain text?
The table lists what the converter does with every element of CommonMark and GitHub Flavored Markdown; the element syntax itself is on the markdown cheat sheet.
| Element | Markdown | Plain text | Note |
|---|---|---|---|
| Heading | ## Title | Title | Hashes removed; the line is kept as its own paragraph. |
| Bold / italic | **bold** _italic_ | bold italic | Markers removed. |
| Strikethrough | ~~gone~~ | gone | Text kept; the deletion is not marked. |
| Inline code | `code` | code | Backticks removed. |
| Code block | ```js
code
``` | code | Fence and language removed; the code itself is untouched. |
| Link | [text](https://u) | text or text (https://u) | Second form with "Keep link URLs" on. |
| Autolink | <https://u> | https://u | URL kept. |
| Image |  | alt or alt (https://i.png) | Same option as links. |
| Bulleted list | * item
+ nested | - item
- nested | Normalized to hyphens with two-space indent. |
| Numbered list | 1. item | 1. item | Numbers renumbered from the list start. |
| Task item | - [x] done | - [x] done | Checkbox kept as text. |
| Blockquote | > quote | quote | The > prefix is removed. |
| Table | | a | b |
|---|---|
| 1 | 2 | | a b
- -
1 2 | Space-aligned grid; alignment from the separator row respected. |
| Horizontal rule | --- | (removed) | Paragraphs on either side stay separated. |
| Line break | two trailing spaces | newline | |
| HTML | a<br>b <b>c</b> | a
b c | Tags removed; <br> becomes a newline; entities decoded. |
| Escaped characters | 2\*3 | 2*3 | Backslash escapes resolved. |
| Footnote | text[^1] | text[^1] | Kept literally. |
When is plain text the right target?
Whenever the destination shows markup literally: email clients that send text/plain, SMS and push notifications, CSV cells, form fields, terminal output, voice scripts, and search-index or summary fields. If the destination has its own markup, use the converter for it instead: Slack, Discord or Jira. For HTML, the markdown to HTML converter keeps the structure.
Why is the paragraph structure kept?
Removing markup should not turn a document into one run-on block. Headings, paragraphs, list items, quotes and code blocks stay separated by blank lines, so the result reads in the same order and rhythm as the rendered page. Only horizontal rules disappear, because a rule has no textual content. The word counter uses the same prose-only view to count words without the syntax, and markdown flavors explains which extensions (tables, task lists, strikethrough) are GFM rather than CommonMark.
What does "strip markdown" actually remove?
Syntax only: heading hashes, emphasis markers, code fences and backticks, link and image brackets, blockquote prefixes, table pipes and separator rows, horizontal rules, HTML tags and backslash escapes. The text inside every element, including code, is kept unchanged.
Are links lost when converting markdown to plain text?
Not if "Keep link URLs" is on (the default): [text](url) becomes text (url) and images become alt (url). Turn it off to keep only the visible text, which reads better when the URLs are not needed, for example in a spoken script or a character-limited field.
Why are my bullet markers normalized to hyphens?
Markdown allows -, * and + for bullets. Plain text has no rendering step to make them look alike, so the converter writes one marker (-) with two spaces of indent per nesting level, which reads consistently in any editor or email client.
How are tables converted to plain text?
As a space-aligned grid: columns are padded to the widest cell, a row of dashes separates the header, and left/center/right alignment from the separator row is applied. It lines up in a monospace font and still reads as rows and columns in a proportional one.
Is the conversion done with regular expressions?
No. The markdown is parsed into a syntax tree with remark (GitHub Flavored Markdown on), the same parser used by the other converters on this site, so emphasis inside code, escaped characters, nested lists and tables are handled by the grammar rather than by pattern matching.