Markdown is a way of writing formatted text using plain characters that look like the formatting: a pound sign for a heading, asterisks around a word for emphasis, hyphens for a bullet list. John Gruber created it in 2004, with Aaron Swartz contributing, so that people could write for the web without typing HTML tags. Today it is behind README files on GitHub, notes apps, documentation sites, forums and many content systems.
Sometimes you have Markdown and need the HTML. Paste it in and the converted code appears, ready to copy into a web page, an email template or a CMS that wants HTML.
What it converts
Headings from one to six hash marks. Paragraphs, separated by blank lines. Bold with double asterisks or double underscores, italic with single ones, and both together with three. Strikethrough with double tildes. Inline code in backticks. Links in the form [text](address) and images as . Bullet lists with hyphens, plus signs or asterisks, and numbered lists. Block quotes starting with a greater-than sign. Fenced code blocks between lines of three backticks, which keep the language name as a class. And horizontal rules made of three or more hyphens, asterisks or underscores.
So this:
# Hello
This is **bold** and a [link](https://example.com).
- One
- Two
becomes:
<h1>Hello</h1>
<p>This is <strong>bold</strong> and a <a href="https://example.com">link</a>.</p>
<ul>
<li>One</li>
<li>Two</li>
</ul>
What it leaves out
This converter covers the everyday core of Markdown, not every flavour. Tables, footnotes, task lists, nested lists, hard line breaks made with two trailing spaces, underline-style headings, reference-style links and automatic links are not converted. Raw HTML in your Markdown is not passed through: angle brackets are escaped, so a <div> would show as text. If you depend on those features, a full parser in your own toolchain, or your platform’s own preview, will be more faithful.
Each flavour of Markdown (GitHub’s, CommonMark, and others) differs in small ways. The tool follows the plain common rules, and the output is simple, readable HTML you can adjust.
Check the result before publishing
The output is code, not a preview. Read through it, and check any links and image addresses, which are copied as written. The text is escaped so that a stray angle bracket will not break the page, but you should still treat the HTML as something to review, particularly if the Markdown came from someone else.
If you need to go the other way, turning HTML into plain text, use remove HTML tags. For escaping characters on their own, there is the HTML entities tool, and for wrapping long lines in a README at a given width, the text wrapper. Heading case is a different decision, and our note on title case versus sentence case can help you pick one.