# all·markdown

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:

MarkdownHTML
# 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 ![alt](images/logo.png) 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.