Markdown to HTML Converter
Convert Markdown to HTML online free. CommonMark plus GitHub tables and task lists, indented output, GitHub-style heading ids, a live preview, and nothing uploaded.
Runs in your browserNothing uploadedFree · no signup
Markdown is parsed to the CommonMark rules, with GitHub's extras on top when that box is ticked. Everything runs in your browser. Need it the other way round? Use HTML to Markdown; the HTML Beautifier and HTML tag remover handle HTML you already have.
Frequently asked questions
- Why did the line breaks inside my paragraph disappear?
- Because that is what Markdown does. A single newline inside a paragraph is treated as an ordinary space, so two lines you typed one under the other come out as one flowing line - the rule exists so you can hard-wrap a paragraph in your editor without it changing the page. Two spaces at the end of a line, or a backslash, force a real break. If you want every newline to become a <br> without editing the text, tick 'Keep single line breaks'. The converter counts how many line breaks the rule is about to swallow and tells you before you notice it in the output.
- Does it handle tables, task lists and strikethrough?
- Yes, with 'GitHub extras' ticked, which is the default. Those four things - pipe tables, - [ ] task lists, ~~strikethrough~~ and bare URLs turning into links - are GitHub Flavored Markdown, not CommonMark, so a strict CommonMark converter leaves a table as a paragraph full of pipe characters. Untick the box if you need output that matches a plain CommonMark renderer exactly.
- What happens to HTML I wrote inside the Markdown?
- By default it is copied through untouched, because Markdown allows raw HTML and a renderer that silently dropped your <div> would break every README that uses one. That is the right default for your own documents and the wrong one for anyone else's, so you can switch it to 'Show it as text' or 'Remove it'. Both of those also disable javascript: links written in plain Markdown syntax, since the whole point of the setting is that the source is not yours. If the raw HTML holds a script tag, an iframe or an inline event handler, you are told which, because a single unescaped <script> mentioned in prose swallows everything after it into script content.
- Can I get a complete HTML page rather than a fragment?
- Yes. Tick 'Wrap it in a complete HTML page' and the result is a full document with a doctype, a UTF-8 meta tag, a viewport tag and a title taken from your first heading, ready to save as a .html file and open in a browser. A small readable stylesheet is included by default and can be switched off; it sets a sensible measure, styles tables, code blocks and quotes, and follows the reader's light or dark mode.
- Do headings get ids I can link to?
- Yes, and they are the same ids GitHub generates. The rule is GitHub's exactly: lower-case, drop everything that is not a letter, a number, a space, a hyphen or an underscore, then turn each space into a hyphen, and a repeated heading gets -1, -2 and so on. So the anchors in your README keep working when you publish the HTML elsewhere. The one difference is a heading made entirely of punctuation, where GitHub produces an empty id and this produces 'section', because an empty id is no use.
- Why is the HTML indented, and can I turn that off?
- Because generated HTML is normally a wall of unindented markup that is unreadable in a diff. The output is passed through the same formatter as the HTML Beautifier, which only moves whitespace a browser does not render: a line is broken at a block boundary, never between inline tags, so <p>Some <b>bold</b> text</p> stays on one line and nothing shifts by a space on the page. Untick 'Indent the HTML' for the raw generated output.
- Is my Markdown uploaded anywhere?
- No. The conversion runs entirely in your browser and nothing is sent to a server, so release notes, internal docs or a draft post never leave your device. The preview is rendered in a sandboxed frame with scripts disabled, so even Markdown you did not write cannot run anything.