Markdown to Plain Text
Remove common Markdown formatting and convert headings, lists, links, and tables to readable plain text.
Updated
What is the Markdown to Plain Text?
Turn Markdown into plain text that is easier to paste into email, notes, or tools that do not display Markdown formatting. The converter removes common formatting markers while keeping readable headings, lists, links, code blocks, and tables.
Choose how links, bullets, headings, strikethrough, and line wrapping should appear. Preview the result as you type, then copy it or download it as a text file.
The converter supports common Markdown syntax, but it is not a full Markdown parser. Some less common syntax, such as reference-style links or embedded HTML, may not convert as expected; the tool flags several of these cases for review.
How it works
- Enter Markdown — Type or paste text into the input, or choose Load Sample to see an example.
- Choose options — Set how links and bullets should appear, whether to underline headings or keep horizontal rules, and whether to wrap lines. The options panel can be hidden when you do not need it.
- Review the plain-text output — The result updates as you edit. If the tool detects reference-style links, link definitions, or block HTML, it displays a warning so you can check the output.
- Copy or download — Use Copy Text or Download to save the converted text.
The converter handles common formatting such as headings, emphasis, inline links, lists, fenced code blocks, blockquotes, and simple pipe tables. It does not support every Markdown extension. In particular, reference-style links and embedded HTML may need to be converted or cleaned up separately.
Code blocks keep their contents, but Markdown fence markers are used to show where the block begins and ends; the language label on a fence is not kept. Table columns are padded with spaces, so they line up best in a monospace font.
Examples
Basic formatting removal
Strips bold, italic, and link syntax while keeping the readable text
**Bold text** and *italic text* with [a link](https://example.com)Bold text and italic text with a linkList conversion
Converts Markdown lists to plain text with customizable bullet characters
- First item
- Second item
- Nested item- First item
- Second item
- Nested itemTable formatting
Preserves table structure with aligned columns for readability
| Name | Age | City |
|------|-----|------|
| Alice | 30 | NYC || Name | Age | City |
| Alice | 30 | NYC |Header with underlines
Converts headers with optional underline decoration
# Main Title
## Section HeaderMain Title
============
Section Header
---------------Link footnotes
Converts links to numbered footnotes with reference list
Visit [our docs](https://docs.example.com) and [contact us](https://contact.example.com)Visit our docs [1] and contact us [2]
---
[1]: https://docs.example.com
[2]: https://contact.example.comFrequently asked questions
What Markdown flavors are supported?
What Markdown flavors are supported?
The converter handles common Markdown patterns such as ATX headings, fenced code blocks, blockquotes, lists, horizontal rules, inline links, emphasis, code spans, and simple pipe tables. It is not a complete CommonMark or GitHub-Flavored Markdown parser. Reference-style links, link definitions, embedded HTML, and other extensions may not convert as expected; some unsupported cases trigger a warning.
Why do my tables look misaligned in the output?
Why do my tables look misaligned in the output?
Table alignment in plain text depends on using a monospace font. The converter calculates column widths and pads cells with spaces, but this only aligns correctly when every character has equal width. If viewing in a proportional font (like most email clients or rich text editors), columns won't line up. Copy the output into a code editor, terminal, or plain text email set to monospace to see proper alignment.
Can I convert the other direction — plain text to Markdown?
Can I convert the other direction — plain text to Markdown?
This tool only converts Markdown to plain text. For the reverse operation, you'd need a different tool that detects structure in plain text (like headers from ALL CAPS lines, lists from leading dashes) and wraps with Markdown syntax. That requires heuristic guessing about intent and is inherently less reliable than stripping known syntax.
What's the difference between "Strip" and "Footnote" link modes?
What's the difference between "Strip" and "Footnote" link modes?
Strip removes the URL, leaving only the link text. Footnote keeps each URL in a numbered reference list at the bottom. Keep leaves the link in [text](url) form.
Why are my reference-style links not working?
Why are my reference-style links not working?
Reference-style links like [text][id] with a separate [id]: url definition require two-pass parsing to resolve. This converter processes single documents in one pass and doesn't maintain a reference dictionary. Convert reference links to inline [text](url) format first, or the tool will flag them as potentially unsupported syntax.
How do I preserve HTML in my Markdown?
How do I preserve HTML in my Markdown?
Embedded HTML is not fully converted to plain text and may remain in the output. The tool flags block HTML as potentially unsupported. If you need tags removed while preserving HTML layout, use a dedicated HTML-to-text converter.
Can I process multiple files at once?
Can I process multiple files at once?
The web interface converts one document at a time. For multiple documents, convert and download each one separately.
Why does my code block lose its language tag?
Why does my code block lose its language tag?
Code fence info strings (```javascript) are intentionally removed because they're Markdown-specific metadata. The fence markers themselves remain to visually distinguish code from prose, but javascript, python, etc. are stripped as formatting. If you need language identifiers in plain text, add them as comments inside the code block before conversion.
Is there a maximum document size?
Is there a maximum document size?
There is no fixed size limit in the interface, but very large documents may slow down the live preview. If that happens, try converting a smaller section at a time.
Will this work with Markdown in other languages?
Will this work with Markdown in other languages?
The converter keeps non-ASCII text in the output. Its word count splits on spaces, so it may not count words accurately in languages that do not usually separate words with spaces. The character count follows JavaScript string length, so some emoji and other characters represented by two UTF-16 code units count as two.
Can I customize the output further?
Can I customize the output further?
Options include bullet characters, link handling, header underlines, list indentation, text wrapping, and strikethrough style.
Why are some lines wrapped and others not?
Why are some lines wrapped and others not?
When a wrap width is set, the converter wraps lines in the finished output. This can also affect code blocks, tables, and blockquotes. Set the width to 0 to keep the converted line breaks as they are.
Related tools
More utilities you might find handy.
Markdown Previewer
Preview common Markdown formatting as you type, switch themes, check document stats, and copy the rendered HTML.
Markdown Table Generator
Create Markdown tables in a visual grid, set column alignment, and import CSV data.
.env File Generator
Generate .env files from key-value pairs with configurable quoting; verify the output with the parser used by your application.