Split
Blank lines divide the text into blocks: paragraphs, lists, tables and code.
Text & markupFree Markdown converter
Turn plain text into clean Markdown: headings, lists, tables, links and code found with simple rules you can switch on and off. It runs in your browser, so nothing is uploaded.
Highlights
This tool reads ordinary text, the kind in a .txt file, an email or a notes app, and writes it as Markdown, recognising the structure people already type by hand.
Each rule is simple and predictable, and you can turn off any that get your text wrong. Everything happens in this browser tab and nothing is uploaded.
To use this tool, start with Step 1 below. In Step 1: Add text, paste text, open a .txt file, or load the example. In Step 2: Check and copy, compare the Markdown with its preview, switch off any rule that misfires, then copy or download it.
Paste or type plain text, open a .txt file, or load the example.
or drop a file here. It stays on this device.
.txt, .text or .log · up to 10 MB
0 characters · 0 lines
Switch off any rule that misfires on your text. You can also edit the Markdown; changing a rule rewrites it.
0 characters · 0 lines
Preview
The formatted preview will appear here.
Text to Markdown guide
Most plain text already has structure: underlined titles, dashes for bullets, columns lined up with spaces. This tool spots those conventions and writes them as proper Markdown, so your notes render cleanly on GitHub, in a wiki or in a notes app.
The basics
The text is read block by block, and each block is checked against a short list of rules. Anything that doesn't match a rule is kept as a paragraph, with special characters escaped.
Blank lines divide the text into blocks: paragraphs, lists, tables and code.
Each block is checked against the switched-on rules: headings, lists, tables, code and links.
Characters that would accidentally change the formatting get a protective backslash.
See the Markdown next to its rendered preview, and switch off any rule that misfires.
What carries over
What each kind of plain-text structure becomes.
| In your text | In Markdown | Rule |
|---|---|---|
| Title + ===== underline | # Heading | Underlined headings. A ----- underline gives ## instead. |
| SHORT CAPITALS LINE | ## Heading | ALL-CAPS headings. Must stand on its own, without ending punctuation. |
| - item, * item, • item | - item | Lists. Indented items nest. |
| 1. item, 1) item | 1. item | Lists. Your numbering is kept. |
| https://… or www.… | <https://…> | Links. |
| Columns with tabs or lined-up spaces | Pipe table | Tables. The first row becomes the header. |
| Lines indented 4+ spaces | ``` code block | Code blocks. Shared indentation is removed. |
| *, _, #, |, [ ] in text | \*, \_, \#, \|, \[ \] | Always on, so your text displays as typed. |
Use cases
Whenever plain text needs to look right somewhere Markdown is rendered.
Turn a README.txt or old notes into a README.md that renders on GitHub.
Move .txt notes into Obsidian, Notion or Bear with headings and lists intact.
Turn a long email or chat message into a tidy document for a wiki.
Wrap command output in code blocks and columns in tables for an issue or pull request.
Prepare plain-text drafts for Hugo, Jekyll, Astro or Next.js.
Paste text into any Markdown field without stray * or _ ruining the formatting.
Set expectations
Plain text has no formatting to read, so a few things need a human touch.
Plain text has no emphasis to carry over. Add ** or * where you want it.
Headings in ordinary case and lists without markers look like paragraphs.
Ragged columns or tables with empty cells may not be recognised as tables.
Want to remove Markdown instead of adding it? Markdown to Text strips Markdown back to clean plain text.
Common questions
Quick answers about converting plain text to Markdown.
Paste your text into Step 1, open a .txt file, or press Load example. Step 2 shows the Markdown alongside a rendered preview. If a rule gets something wrong, such as treating a capitalised line as a heading, switch that rule off. Then copy the Markdown or download a .md file.
Blank lines separate paragraphs. Lines underlined with === or --- become headings, as do short lines written in capitals on their own. Lines starting with -, *, •, 1. or 1) become list items, nested by indentation. Bare web addresses become links. Rows split by tabs, or by columns lined up with spaces, become a table. Blocks indented by four spaces or a tab become code.
Yes. Every rule has its own switch in Step 2, and the Markdown updates as soon as you change one. Text a rule no longer handles is escaped, so it shows up exactly as you typed it.
Some characters mean something in Markdown: * and _ make emphasis, # makes a heading, | splits table cells and [ ] makes links. When those appear in your text by accident, such as 5*2 or file_name, the tool puts a backslash in front so they display as typed instead of changing the formatting. The backslashes don't appear in the rendered result.
No. The formatting rules run in your browser tab, so your text stays on your device the whole time. Nothing is saved, so a refresh clears the page.
In Markdown, lines next to each other are one paragraph, and a single line break counts as a space. That suits text wrapped at a fixed width. For addresses, poems or lists without markers, turn on Keep line breaks, which ends each line with a backslash so it stays on its own line.
A table needs at least two rows with the same number of columns. Columns can be separated by tabs (what you get when copying from a spreadsheet) or by two or more spaces, as long as the columns line up from row to row. A sentence with a double space after a full stop won't be mistaken for a table.
Short lines in capitals that stand on their own, without ending in a full stop or comma, are treated as headings because that's how many plain-text documents mark sections. If your text uses capitals for something else, switch off ALL-CAPS headings.
Plain-text files: .txt, .text and .log, up to 10 MB. For Word documents use Word to Markdown, and for PDFs use PDF to Markdown, which keep much more of the original structure.
Convert as often as you like: there's no account and no daily cap. Text files can be up to 10 MB, and pasting is limited only by your browser.
Related converters
These tools also run in your browser, with no sign-up and nothing uploaded.