Markdown to HTML
Write or paste Markdown and download a complete HTML file — doctype, title and stylesheet already in it, so it opens correctly on its own. The conversion happens in this tab; nothing is uploaded.
Preview
Converted in this tab. The file is never uploaded.
Markdown was always going to be HTML
This is the conversion Markdown was designed for. Every other export — PDF, Word, rich text — goes through HTML on the way, because that is what a Markdown renderer produces. Asking for HTML is asking for the intermediate step, and it is the one with nothing lost in it.
Which is why the mapping is boring, and boring is the right answer here:
| Markdown | HTML |
|---|---|
# Heading | <h1> |
**bold** | <strong> |
*italic* | <em> |
- item | <ul><li> |
[text](url) | <a href> |
| three backticks | <pre><code> |
> quote | <blockquote> |
| pipes and dashes | <table> |
A file, not a fragment
What downloads is a whole page: a doctype, a character set, a viewport meta, the document title taken from your first heading, and the stylesheet as one inline block. Open it and it looks right, with no second file needed and no build step.
If you wanted only the markup — to drop into a template, a CMS field or an
email — copy it out of the preview instead, or delete everything outside
the <body>. Developers usually want the fragment and
everyone else usually wants the file, so the file is the default and the
fragment is one delete away.
Styling it
The stylesheet sits in a single <style> block in the
head. Replace it with your own, or delete it and link a file:
<link rel="stylesheet" href="style.css">
There are no generated class names to work around — the CSS selects
ordinary elements, so h2, blockquote and
table all target the way you would expect.
What the sanitiser removes
Raw HTML inside your Markdown passes through the same sanitiser the editor
uses. <script> and <style> tags go,
along with style attributes and event handlers.
Presentational markup stays: <u>,
<mark>, <kbd>,
<details> and the align attribute all
survive.
That means the output is safe to publish without a second pass, which is the part that matters if the Markdown came from somewhere you do not control. The full list is on the HTML in Markdown page.
Images and links
Both keep the paths you wrote. A relative 
still expects that file beside the HTML; an absolute URL works wherever the
page ends up. Nothing is downloaded, inlined or re-hosted, because nothing
here contacts a server — which is also why a document full of internal
links is safe to convert.
Common questions
- How do I convert Markdown to HTML?
- Write or paste your Markdown below and download the HTML. You get a complete file with a doctype, a title and the stylesheet inlined, so it opens correctly on its own rather than needing a CSS file beside it.
- Is the output a full page or just a fragment?
- A full page. If you only want the body markup — to paste into a template or a CMS — copy it from the preview instead, or strip everything outside the body tag. A fragment is the more common need for developers and the less common one for everyone else, which is why the file is the default.
- What happens to my images?
- Image tags keep the paths you wrote. A relative path still needs the image file beside the HTML; an absolute URL works anywhere. Nothing is downloaded or re-hosted, because nothing here talks to a server.
- Is the HTML safe to publish?
- The markup is sanitised with the same rules as the editor: script and style tags are removed, and so are style attributes and event handlers. Presentational HTML you wrote in the Markdown — u, mark, details, align — survives.
- Can I use my own CSS?
- Yes. The stylesheet is a single block in the head of the downloaded file, so replace it with your own or delete it and link a file instead. The class names follow the elements rather than being generated, so ordinary selectors work.
- What about the other direction?
- The HTML to Markdown page converts a web page or a fragment of markup back the other way, either from a file or pasted straight in.