HTML to Markdown
Paste HTML and instantly convert it to clean, portable Markdown. Strips messy inline styles and editor cruft, keeps the structure you care about: headings, lists, links, images, tables, and code. Copy or download the Markdown in one click. Runs entirely in your browser. No sign-up. No logs. Free forever.
Free HTML to Markdown Converter Online
Convert HTML into clean, portable Markdown instantly. Free, private, runs entirely in your browser.
Your HTML is processed locally in your browser. Nothing is sent to any server. Zero logs. Zero tracking.
Drop your .html file here
or browse to upload
Accepts: .html, .htm, .txt — max 5 MB
The Free HTML to Markdown Converter That Cleans As It Converts
Sometimes you have HTML but you need Markdown: migrating a blog to a static-site generator, pulling content out of a CMS, turning a web page into a README, or saving an article as a portable plain-text note. Our free online HTML to Markdown converter does exactly that: paste your HTML, get clean Markdown, and copy or download it as a .md file. Everything runs locally in your browser, so your content is never uploaded and never logged.
Your HTML is never sent to our servers. All conversion happens in JavaScript on your device. We log nothing. Free forever with no account required.
Clean, Predictable Markdown Output
The converter focuses on producing Markdown that is easy to read and easy to maintain. It keeps semantic structure and discards the noise that bloats copied HTML:
- Headings:
<h1>through<h6>become Markdown headings - Lists: ordered and unordered lists, including nested lists
- Links and images:
<a>and<img>convert with their URLs preserved - Emphasis: bold, italic, and strikethrough
- Code: inline code and code blocks
- Blockquotes: nested quotes supported
- Inline style and class attributes: stripped automatically
GitHub-Flavored Tables
HTML tables are notoriously hard to convert. With GitHub-flavored Markdown enabled, <table> markup becomes clean pipe-delimited Markdown tables that render correctly on GitHub, GitLab, and most documentation platforms. Strikethrough text is also preserved. Turn this option off if you need plain CommonMark output without table support.
Choose Your Markdown Style
Heading Style
Pick ATX headings (the # prefix style, the most common and the GitHub default) or Setext headings (underlined with equals signs and dashes, for level one and two only).
Bullet Marker
Choose which character starts unordered list items: a dash, an asterisk, or a plus sign. All three are valid Markdown; pick the one your project uses.
Code Block Style
Choose fenced code blocks (wrapped in triple backticks, the GitHub default) or indented code blocks (four-space indentation, the classic Markdown style).
Input Methods
- Paste: type or paste HTML directly into the textarea
- Paste from clipboard: one-click paste button reads from your clipboard
- Upload file: select a .html, .htm, or .txt file from your device (processed locally, no upload)
- Drag and drop: drop an HTML file anywhere on the tool
- Sample HTML: load a built-in example to explore the tool
Who Uses an HTML to Markdown Converter?
- Developers: migrate CMS or blog content into Markdown for static-site generators
- Technical writers: turn web pages into clean documentation source
- Content teams: archive articles as portable, future-proof Markdown
- Note-takers: save web clippings as Markdown for note apps like Obsidian and Notion
- Open-source maintainers: convert HTML help pages into README and wiki content
Free, Private and No Limits
Every feature of this HTML to Markdown converter is completely free: conversion, style options, GFM tables, copy, and download. No account needed, no usage limits, and no data ever sent to our servers. Paste, convert, and go.
Frequently Asked Questions
Is the HTML to Markdown converter free?
Is my HTML sent to a server?
Does it convert HTML tables to Markdown?
What is the difference between ATX and Setext headings?
# Title, and support all six levels. This is the most common style and the GitHub default. Setext headings underline the text with equals signs or dashes and only support level one and two.