Markdown to HTML
Markdown is quick to write but browsers only understand HTML, so at some point the text has to be converted. Paste your Markdown here and this page turns it into HTML using a small converter written for this site, showing both the source and a live preview. Everything runs in your browser, and the text you paste never leaves your device.
Standard Markdown joins wrapped lines into one paragraph, and only breaks the line when you end it with two spaces or a backslash. The second option turns every newline inside a paragraph into a <br>, which suits notes typed with one thought per line.
What Markdown this converter understands
Headings β one to six # characters followed by a space, giving <h1> to <h6>. A trailing run of hashes is trimmed off. Underlined (setext) headings are not supported.
Paragraphs and line breaks β blank lines separate paragraphs. Ending a line with two spaces or a backslash inserts a <br>, and the option above can make every newline do that.
Emphasis β **bold** and __bold__ become <strong>; *italic* and _italic_ become <em>. Underscores inside a word, as in file_name_here, are left alone. A backslash before a character, such as \*, keeps it literal.
Code β backticks make an inline <code> span, and you can use several backticks in a row when the code itself contains one. Three or more backticks or tildes on their own line open a fenced block; a word after the opening fence becomes class="language-β¦". Four-space indented code blocks are not supported β use a fence.
Lists β -, * or + for unordered, 1. or 1) for ordered, with indented lines continuing an item and deeper indentation nesting a list inside it. An ordered list that starts at another number keeps it through the start attribute.
Quotes and rules β lines beginning with > become a <blockquote>, and anything inside it is converted too. Three or more -, * or _ alone on a line make an <hr>.
Links and images β [text](address) and , with an optional quoted title after the address. Links accept http, https, mailto and relative addresses; images accept http and https only. Any other address is left as plain text. Reference-style links and bare autolinks are not supported.
Your Markdown is escaped before it is converted. Angle brackets, quotes and ampersands in your text become entities first, so HTML written inside the Markdown is displayed as characters rather than treated as markup β which is why the preview can safely render the output, but also means raw HTML will not pass through the way it does in most Markdown tools. This is a compact converter, not a full CommonMark implementation: tables, footnotes and reference-style links are among the things it does not handle, so check the preview before you publish. In the preview, links are set to open in a new tab so you do not lose what you typed; the HTML you copy contains the plain address only. Conversion runs entirely in this tab and stops at 100,000 characters.
How to convert Markdown to HTML
- Paste or type your Markdown into the box.
- Check the preview underneath to confirm it came out the way you meant.
- Copy the generated HTML source and paste it wherever you need it.
When you'd use this
- Publishing notes on a site β Turning a README or a folder of Markdown notes into HTML you can drop into a page template.
- Pasting into an editor that wants HTML β Plenty of publishing tools and email builders accept HTML but not Markdown, so converting first saves a lot of manual formatting.
- Checking what your Markdown produces β Seeing the exact tags a document generates before you commit it, rather than guessing from the rendered view.
- Learning the syntax β Typing a fragment and watching the HTML change is a quick way to work out how a piece of Markdown behaves.
Good to know
- Raw HTML is shown, not run β Your text is HTML-escaped before anything else happens, so a <script> tag or a stray angle bracket appears as visible characters in the output instead of becoming markup. That also means Markdown's usual habit of passing raw HTML through does not apply here.
- Only safe addresses become links β Links may use http, https, mailto or a relative path, and images must use http or https. Any other address β javascript: or data:, for instance β is left in the output as the plain text you typed, and the panel tells you how many were skipped.
- It is a compact converter, not a full CommonMark parser β Headings, paragraphs, bold, italic, inline code, fenced code blocks, block quotes, ordered and unordered lists with nesting, links, images, horizontal rules and hard line breaks are handled. Tables, reference-style links, footnotes, underlined (setext) headings and four-space indented code blocks are not.
- Very long documents are capped β Conversion stops at 100,000 characters so a huge paste cannot freeze the tab. Split a longer document and convert it in parts.
Frequently asked questions
Does my text get uploaded anywhere?
No. The converter is JavaScript inside this page, so your Markdown is processed on your own device. Nothing is sent to a server, and nothing is kept once you close the tab.
Which Markdown features are supported?
Headings from # to ######, paragraphs, bold with ** or __, italic with * or _, inline code, fenced code blocks with ```, block quotes, ordered and unordered lists including nested ones, links, images, horizontal rules and hard line breaks. The panel above lists the same set with examples.
Why is my link showing as plain text?
Its address uses a scheme the converter will not place in an href. Links are limited to http, https, mailto and relative paths, and images to http and https, so anything else is left exactly as you typed it.
What happens to HTML I already wrote inside the Markdown?
It is escaped and displayed literally, tags and all. That is a deliberate difference from standard Markdown: escaping first is what makes it safe to render the result straight into the preview on this page.
Can I get a line break without starting a new paragraph?
Yes. End the line with two spaces, or with a backslash, and the converter inserts a <br>. If you would rather have every newline become a break, switch the line-break option in the panel.