Markdown to HTML
Convert Markdown to HTML with live preview.
Your text is processed entirely in your browser — never uploaded or stored.
What is this tool?
The Markdown converter turns Markdown syntax written with symbols like #, **, and - into HTML in real time with a live preview — handy for drafting READMEs, blog posts, and previewing posts.
Supported syntax
- Headings:
# through ###### - Bold
**text**/ Italic*text* - Inline code
`code`/ code blocks``` - Links
[text](url)/ images - Ordered/unordered lists, blockquotes
>, horizontal rules---
Safe conversion (XSS prevention)
Input text is HTML-escaped before formatting rules are applied, so tags like <script> are never executed and are shown as literal text. Everything runs in your browser and is never sent to a server.
Markdown's philosophy and CommonMark standardization
Markdown was created in 2004 by John Gruber with the philosophy that "the raw source itself should be readable, even without heavy formatting symbols." It borrows familiar symbols like #, *, and - instead of HTML tags, so the raw text already reads like a document before any conversion. Early Markdown's spec was loose, though, so different tools handled details like line breaks, nested lists, and emphasis slightly differently. To fix this, the CommonMark project standardized a strict spec in 2014 by cross-testing many implementations (Babelmark). Most modern platforms — GitHub, GitLab, and others — build their extended syntax (GitHub Flavored Markdown, etc.) on top of CommonMark.
3 common syntax mistakes (verified against this tool)
- 1. Line breaks: CommonMark requires two trailing spaces (or a backslash) at the end of a line within a paragraph to insert a
<br>. This tool works more simply — every line not separated by a blank line still renders as its own separate<p>paragraph. - 2. A mid-word *: Writing
5*3=15 and *important*using*as a multiplication sign wraps everything from the first*to the next one in emphasis, producing5<em>3=15 and </em>important*— unintended formatting. Use a different symbol for*when you don't mean emphasis. - 3. No nested lists: Standard Markdown lets you nest sub-lists via indentation, but this tool treats every
-,*, or1.line as a single flat list regardless of indentation.