↑↓ Move↵ OpenEsc Close

Text & markupFree Markdown converter

Plain Text to Markdown

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

  • Seven switchable rules
  • Safe escaping
  • Converted on your device
  • No sign-up

How to Convert Plain Text to Markdown

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.

What it recognises

  • Headings — lines underlined with === or ---, and short lines in CAPITALS.
  • Lists — lines starting with -, *, •, 1. or 1), nested by indentation.
  • Tables and code — columns separated by tabs or lined up with spaces, and indented blocks.
  • Links and symbols — bare web addresses become links, and stray *, _ and # are escaped.

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.

Step 1 of 2

Add text

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

Step 2 of 2

Check and copy

Switch off any rule that misfires on your text. You can also edit the Markdown; changing a rule rewrites it.

Rules

0 characters · 0 lines

Preview

The formatted preview will appear here.

Text to Markdown guide

Give plain text some structure

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

How does text to Markdown work?

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.

1

Split

Blank lines divide the text into blocks: paragraphs, lists, tables and code.

2

Recognise

Each block is checked against the switched-on rules: headings, lists, tables, code and links.

3

Escape

Characters that would accidentally change the formatting get a protective backslash.

4

Preview

See the Markdown next to its rendered preview, and switch off any rule that misfires.

What carries over

Plain-text conventions in Markdown

What each kind of plain-text structure becomes.

In your textIn MarkdownRule
Title + ===== underline# HeadingUnderlined headings. A ----- underline gives ## instead.
SHORT CAPITALS LINE## HeadingALL-CAPS headings. Must stand on its own, without ending punctuation.
- item, * item, • item- itemLists. Indented items nest.
1. item, 1) item1. itemLists. Your numbering is kept.
https://… or www.…<https://…>Links.
Columns with tabs or lined-up spacesPipe tableTables. The first row becomes the header.
Lines indented 4+ spaces``` code blockCode blocks. Shared indentation is removed.
*, _, #, |, [ ] in text\*, \_, \#, \|, \[ \]Always on, so your text displays as typed.

Use cases

When to convert text to Markdown

Whenever plain text needs to look right somewhere Markdown is rendered.

READMEs

Turn a README.txt or old notes into a README.md that renders on GitHub.

Notes apps

Move .txt notes into Obsidian, Notion or Bear with headings and lists intact.

Emails to docs

Turn a long email or chat message into a tidy document for a wiki.

Logs & reports

Wrap command output in code blocks and columns in tables for an issue or pull request.

Static sites

Prepare plain-text drafts for Hugo, Jekyll, Astro or Next.js.

Safe pasting

Paste text into any Markdown field without stray * or _ ruining the formatting.

Set expectations

What these rules can't know

Plain text has no formatting to read, so a few things need a human touch.

Limit 1

Bold and italic

Plain text has no emphasis to carry over. Add ** or * where you want it.

Limit 2

Unmarked structure

Headings in ordinary case and lists without markers look like paragraphs.

Limit 3

Unusual layouts

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

Text to Markdown FAQ

Quick answers about converting plain text to Markdown.

How do I convert 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.

What rules does it use?

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.

Can I turn a rule off?

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.

What does escaping mean, and why does it add backslashes?

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.

Is my text uploaded anywhere?

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.

Why are my lines joined into one paragraph in the preview?

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.

How does it tell a table from ordinary text?

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.

Why did a line in capitals become a heading?

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.

Which file types can I open?

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.

Is there a limit?

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.