📑

Markdown to HTML Converter

Convert Markdown into clean HTML with a live preview — copy or download instantly.

0 words
📄

Start typing Markdown to see the HTML output.

Runs entirely in your browser. Nothing is uploaded.

Markdown won because it matches how people already write. Asterisks for emphasis, dashes for lists, and blank lines for paragraphs were conventions in plain-text email decades before Markdown formalized them in 2004 — which is why a Markdown document is readable even by someone who has never heard of Markdown. Today it is the substrate of README files, GitHub, Reddit, Discord, note apps, and most static site generators. This converter turns Markdown into clean HTML instantly in your browser, with a live preview, which is useful both for producing HTML and for learning what the syntax actually generates.

How the converter works

Type or paste Markdown in the input pane and the HTML appears immediately alongside a rendered preview. The parser handles the standard elements — headings, emphasis, lists, links, images, code blocks, blockquotes, and tables — following CommonMark conventions with the extensions popularized by GitHub. Conversion happens entirely in your browser as you type; nothing is uploaded, and there is no server round-trip.

The core syntax

# Heading 1 → <h1>Heading 1</h1> **bold** → <strong>bold</strong> *italic* → <em>italic</em> [text](url) → <a href="url">text</a> ![alt](image.png) → <img src="image.png" alt="alt"> - item → <ul><li>item</li></ul> > quote → <blockquote>quote</blockquote> `code` → <code>code</code> ```js ... ``` → <pre><code class="language-js">

The mapping is deliberately close to one-to-one, but the edge cases are where converters differ. A single line break in Markdown does not produce a <br> — paragraphs require a blank line, which surprises nearly everyone at first. Nested lists depend on consistent indentation, and mixing tabs with spaces is the classic cause of broken nesting. Tables and strikethrough are GitHub extensions rather than original Markdown, so they work here and on GitHub but not in every strict CommonMark parser.

What to know about Markdown

  • 1A blank line means a new paragraph; a single newline means nothing. This is the number one source of confusion. To force a line break without a paragraph gap, end the line with two spaces or a backslash — both invisible conventions that are easy to apply and impossible to see, which is why many people just use blank lines.
  • 2Fenced code blocks with a language tag get syntax highlighting almost everywhere. ```python at the start of a block tells GitHub, documentation generators, and most renderers how to color the code. Untagged blocks render as plain monospace — the tag costs nothing and is worth the habit.
  • 3Use reference-style links for documents with repeated URLs. Writing [text][1] in the flow and [1]: https://... at the bottom keeps long URLs from shredding the readability of your source — which matters, since half of Markdown's value is that the source itself is readable.
  • 4Raw HTML works inside Markdown, but it is a one-way door. Anything Markdown cannot express — details/summary collapsibles, specific classes, embedded video — can be written as HTML inline. But many renderers sanitize or strip HTML for security, so a document relying on it becomes renderer-dependent.
  • 5Keep heading levels hierarchical, not decorative. Skipping from # to #### because it looks better breaks screen readers, table-of-contents generators, and SEO parsing alike. If the visual size is wrong, that is a stylesheet problem, not a structure problem.

Frequently asked questions

Why doesn't my line break show up?

Because Markdown treats a single newline as a soft wrap, not a break — it joins the lines into one paragraph. A real paragraph break needs a blank line between the blocks. If you want a line break without starting a new paragraph, end the line with two trailing spaces or a backslash. This is the most common Markdown surprise, and it is by design, inherited from plain-text email conventions.

Which Markdown flavor does this use?

CommonMark conventions with the GitHub-popularized extensions — tables, strikethrough, and fenced code blocks. This combination covers the syntax that works on GitHub, GitLab, and most modern platforms. Original 2004 Markdown had ambiguities that different tools resolved differently; CommonMark standardized the answers, and GitHub's extensions became the de facto additions everyone expects.

How do I make a table?

Pipes separate columns, and a row of dashes separates the header: `| Name | Age |` then `|------|-----|` then data rows. Alignment is controlled with colons in the dash row — `:---` left, `:---:` center, `---:` right. The pipes do not need to line up visually, though aligned source is easier to edit. Tables are a GitHub extension, so a few strict parsers will not render them.

Can I use HTML inside Markdown?

Yes — Markdown was explicitly designed to allow inline HTML for anything it cannot express, and block-level HTML passes through untouched. The caveats: Markdown syntax does not work inside HTML blocks, and many platforms sanitize HTML for security, stripping scripts, styles, and sometimes entire tags. For documents you control end-to-end it is a useful escape hatch; for content posted to third-party platforms, stay within Markdown.

Is my text sent to a server?

No. Conversion runs entirely in your browser — the Markdown is parsed and the HTML generated locally, with nothing transmitted or stored. Disconnect from the internet and the converter keeps working. This matters when drafting content you have not published, since nothing you type here leaves your machine.