Markdown to HTML Converter
Type Markdown on the left and see the rendered HTML or live preview on the right. Powered by marked, supporting CommonMark plus GitHub Flavored Markdown extensions.
Type Markdown on the left and see the rendered HTML or live preview on the right. Powered by marked, supporting CommonMark plus GitHub Flavored Markdown extensions.
<h1>Hello, Markdown!</h1>
<p>Markdown is a <strong>lightweight</strong> markup language with plain-text formatting syntax.</p>
<h2>Features</h2>
<ul>
<li>Headings, paragraphs, lists</li>
<li>Links: <a href="https://example.com">example</a></li>
<li>Inline code: <code>const x = 1</code></li>
<li>Code blocks:</li>
</ul>
<pre><code class="language-js">function greet(name) {
return `Hello, ${name}!`
}
</code></pre>
<blockquote>
<p>Blockquotes work too.</p>
</blockquote>
<table>
<thead>
<tr>
<th>Column 1</th>
<th>Column 2</th>
</tr>
</thead>
<tbody><tr>
<td>Cell A</td>
<td>Cell B</td>
</tr>
</tbody></table>
Markdown is a lightweight plain-text formatting syntax invented by John Gruber in 2004. It lets you write structured documents (headings, lists, links, code, tables) using punctuation that reads naturally — # for a heading, ** for bold, > for a quote — instead of HTML angle-brackets. It is the de-facto format for README files, static-site posts, technical documentation and tools like Notion or Slack.
CommonMark is the standardised dialect of Markdown that most modern parsers implement; GitHub Flavored Markdown (GFM) extends it with tables, task lists, fenced code blocks with language hints, strikethrough and autolinks. This converter supports both.
CommonMark plus the most useful GFM extensions: tables, fenced code blocks (with language), strikethrough, autolinks. Definition lists, footnotes and HTML inside Markdown are not enabled by default.
No. Conversion happens entirely in your browser — your Markdown source never leaves your machine.
Inline HTML is preserved as-is. Be careful when copying the output back into a context where script tags or unsafe attributes could matter — sanitise it (with DOMPurify or a server-side sanitiser) before rendering untrusted output.