Text to Markdown
Type or paste your text into the visual editor on the left. Markdown with your chosen formatting rebuilds on the right after every edit.
Markdown
updates as you editMarkup style
While you type or paste text into the editor on the left, the ready Markdown builds on the right. Every edit rebuilds it from scratch. The field on the right is read-only: changes go only into the editor. From there you copy the result with the "Copy Markdown" button or save it with the "Download .md" button into a file named text.md.
What turns into what
The page converts each piece of formatting into its own markup sign. A heading becomes a line with #, ## and so on by level. Bold text produces **, italics are written as * or _, and strikethrough is marked with ~~. A list turns into lines with a bullet marker, a nested one is shifted by an indent, and a numbered one gets 1. at the start. A quote is marked with the > sign, and a link is written as [label](address). A list item with a checkbox becomes - [x], without one - [ ]. A table is built from lines with the | sign plus a line of dashes under the header, and a code block is fenced with three backticks or marked with an indent.
Not everything from the editor survives the conversion to Markdown. Superscript and subscript, underline, color, the keyboard-key sign, video, sound, frames and merged table cells stay as HTML tags. Under the field, each such case gets its own note that says exactly what was not converted. When your input is ready page code, use the HTML to Markdown converter.
A hash sign at the start of a line gets a backslash in front of it, otherwise the line would read as a heading. The escaping exists so the markup reads back as the same text.
Why change the markup style settings
The "Markup style" block decides which signs record the same thing: headings, the list marker, italics, code blocks, line breaks, merged table cells. The option names are visible on screen, but some limits are not spelled out there. Underlined headings work only at levels 1 and 2, deeper levels always use hash signs. A code block with a language specified always gets the backtick fence. The "Two spaces" line-break option leaves nothing you could spot by eye.
If you don't know what to pick, leave everything as it is. Changing the settings makes sense when the receiving side reads markup in its own way, and you pick for that side.
Pasting from Word and Google Docs
Along with the text, Word brings extra service leftovers: mso classes, empty tags, non-breaking spaces. A list from Word often arrives as paragraphs one after another, with a "·" marker typed right into the text. The "Clean up Word and Google Docs paste" checkbox removes the leftovers, reassembles the paragraphs into a list and strips the markers.
In Google Docs, bold and italics are set by style, and the cleanup turns the style into a tag, or the emphasis would be lost. Bold inside a heading becomes plain text, because a heading in Markdown is already emphasized. When the cleanup has run, a note appears under the field. With the checkbox off, the paste stays as it came.
If the paste came out crooked, clear the editor with the "Clear" button and paste the text again with the checkbox on. For output as HTML code use the visual HTML editor: it is the same editor, but with code as the output.
Rate this tool
Help us get better
Tell us what was missing.
Other tools
JSON Formatter
Format and repair JSON in the browser, flagging duplicate keys and long numbers
Regex Tester
Regex testing with a plain-language breakdown and hang protection
JWT Decoder
JWT parsing with fields explained and signature verification
CSV to JSON
A table to JSON with honest types and a reverse check
JSON to CSV
JSON to a table for Excel, with verification and formula protection
SQL Formatter
A readable query layout, verified against the source, with risky spots flagged
XML Formatter
Readable XML, errors explained with a hint, verified against the source
XML Validator
Markup, XSD schema, sitemap, YML and RSS rules, with the path to each error