Developer Tools

Markdown to HTML Converter

Convert Markdown to clean HTML instantly. Three-pane editor: write Markdown on the left, see live preview in the centre, copy HTML on the right. Supports GFM tables, task lists, and fenced code blocks.

Live Preview
GFM Tables & Task Lists
Clean HTML Output
100% Private
Ad · 728x90
M↓
Markdown to HTML Converter
Options
Markdown empty
Preview live
HTML Output ready
Ready — start typing Markdown on the left
Ad · 728x90
Markdown to HTML Guide
What is Markdown and who created it?+
Markdown is a lightweight markup language created by John Gruber and Aaron Swartz in 2004. The goal was to write using an easy-to-read, easy-to-write plain text format that could be converted to structurally valid HTML. The name "Markdown" is a play on HTML's "markup." Today Markdown is used everywhere: GitHub READMEs, documentation sites (GitBook, Docusaurus, MkDocs), blogging platforms (Ghost, Jekyll, Hugo), note-taking apps (Obsidian, Notion, Bear), and messaging apps (Slack, Discord). There are several variants: CommonMark (standardized spec), GitHub Flavored Markdown (GFM, adds tables and task lists), and MultiMarkdown (adds tables, footnotes, math).
What is the full Markdown syntax reference?+
Core syntax: # H1 through ###### H6 for headings. **bold** or __bold__ for bold. *italic* or _italic_ for italics. ~~strikethrough~~. `inline code`. ```code block``` (fenced). [link text](url) for links. ![alt text](url) for images. - item or * item for unordered lists. 1. item for ordered lists. > text for blockquotes. --- for horizontal rules. GFM additions: | col1 | col2 | for tables. - [x] done and - [ ] todo for task lists. ~~strikethrough~~. Autolinks for bare URLs.
What is GitHub Flavored Markdown (GFM)?+
GitHub Flavored Markdown (GFM) is a superset of CommonMark created by GitHub and used in all GitHub content: READMEs, issues, pull requests, and comments. GFM adds: Tables with | pipe syntax. Task lists with - [x] and - [ ]. Strikethrough with ~~text~~. Autolinks (bare URLs become clickable). Disallowed raw HTML (GitHub sanitizes certain HTML tags for security). GFM is now the de facto standard for Markdown on the web. This converter supports all GFM features. Enable "GFM Tables" and "Task Lists" options above to control these features.
How do I create a Markdown table?+
Markdown tables use pipe characters (|) to separate columns and hyphens (-) for the header separator row. Example: | Name | Age | City | / | --- | --- | --- | / | Alice | 30 | New York |. Column alignment: :--- left-align, ---: right-align, :---: centre-align. The cells don't have to be perfectly aligned — the pipes just need to be present. Tables are a GFM extension; they are not part of the original Markdown spec. They render as HTML <table> elements. If your Markdown processor doesn't support tables, enable the GFM Tables option above.
What is the difference between inline and fenced code blocks?+
Inline code uses single backticks: `code` — renders as <code> within a paragraph, useful for variable names, file paths, and short snippets. Fenced code blocks use triple backticks or tildes on their own lines: ``` ```javascript ``` — renders as <pre><code class="language-javascript">. Indented code blocks (4 spaces or 1 tab) are the original Markdown spec method and are still supported. Fenced blocks are preferred because they support language hints for syntax highlighting (used by Prism.js, Highlight.js). The language identifier after the opening ``` is preserved as a CSS class in the output HTML.
How do I add images and links in Markdown?+
Links: [link text](https://example.com) or [link text](https://example.com "Optional title"). Reference-style links: [link text][ref] and then separately [ref]: https://example.com. Autolinks (GFM): bare URLs like https://example.com become clickable. Images follow the same syntax as links but with a leading exclamation mark: ![alt text](image-url.jpg) or ![alt text](image-url.jpg "Optional title"). Alt text is important for accessibility. Images render as <img src="..." alt="..."> in HTML. Note: the alt text should describe the image content, not just say "image."
Is this converter safe for sensitive content?+
Yes. All conversion happens in your browser using JavaScript. No Markdown or HTML is sent to any server. The page works offline once loaded. We have no access to or logs of what you type. The output HTML is sanitized — the converter does not execute any scripts in the preview pane. However, be aware that if you copy the HTML output and embed it in a page, any raw HTML you included in your Markdown (which most processors pass through) could contain scripts. Review the HTML output before embedding it in a production application. For user-generated Markdown, always sanitize the output using a library like DOMPurify before rendering.
What are the best static site generators that use Markdown?+
The most popular Markdown-based static site generators: Jekyll (Ruby, used by GitHub Pages, oldest and most widely used). Hugo (Go, extremely fast, large sites in seconds). Gatsby (React + GraphQL, great for apps with dynamic features). Next.js (React, supports Markdown via MDX or gray-matter). Docusaurus (React, built by Meta for documentation sites). Astro (modern, multi-framework, excellent performance). MkDocs (Python, ideal for technical documentation). Eleventy (11ty) (flexible, multiple template languages). Most use CommonMark or GFM, with frontmatter (YAML metadata between --- delimiters) for page configuration.
What is MDX and how does it extend Markdown?+
MDX is Markdown for the component era. It lets you use JSX (React components) directly in Markdown files. In a .mdx file you can write regular Markdown and also import and use React components: import Chart from './Chart' and then <Chart data={data} /> inline. This is powerful for documentation sites that need interactive demos, live code editors, or custom UI components embedded within written content. MDX is used by Docusaurus, Gatsby, Next.js, and Astro. It is compiled (not interpreted) so it is not suitable for user-generated content. This converter handles standard Markdown; for MDX you need a build tool like Next.js with @next/mdx.
How do I convert HTML back to Markdown?+
Several tools convert HTML back to Markdown. In JavaScript: the turndown library (npm install turndown) converts HTML DOM nodes or HTML strings to Markdown. In Python: markdownify (pip install markdownify) does the same. In Pandoc (command line): pandoc -f html -t markdown input.html -o output.md — Pandoc is the most powerful document converter available and handles complex HTML well. Online tools like Turndown's demo page also provide this. Note that the conversion is lossy: complex HTML with custom classes, inline styles, and non-semantic tags does not map cleanly to Markdown and some formatting will be lost or simplified.