HTML to Markdown Converter
Turn HTML into clean, portable Markdown. Paste or upload HTML, choose your heading style, bullet marker, and emphasis style, and copy or download the result — all in your browser.
100% Client-Side Processing
Your HTML is parsed and converted entirely in your browser. Nothing is uploaded to a server.
Options
HTML preview
For safety, <script> tags are removed before conversion and never executed.
Table of Contents
What is an HTML to Markdown Converter?
An HTML to Markdown converter reads HTML markup — headings, paragraphs, lists, links, images, tables, and code — and rewrites it as Markdown, the lightweight plain-text formatting syntax used in README files, documentation sites, static site generators, note-taking apps, and chat tools like Slack and Discord.
Instead of manually retyping formatted content as Markdown by hand, the converter walks the HTML structure and maps each element to its Markdown equivalent: `<h1>` becomes `#`, `<strong>` becomes `**bold**`, `<a>` becomes `[text](url)`, and so on — producing text you can paste straight into a Markdown editor.
How it Works
- Add your HTML: Paste HTML directly into the editor, or upload an .html file.
- Choose your options: Pick a heading style (ATX or Setext), a bullet list marker, an emphasis marker, and whether to include images.
- Preview and read the result: The tool parses your markup in your browser and shows the converted Markdown instantly, alongside a rendered preview of the original HTML.
- Copy or download: Copy the Markdown to your clipboard or download it as a .md file.
Features
- Paste HTML or upload an .html file
- Instant, live conversion as you type — no button to click
- Headings, bold, italics, strikethrough, and inline code
- Ordered and unordered lists, including nested lists
- Links and images with title attributes preserved
- Blockquotes and fenced code blocks with language hints
- Tables converted to GitHub-flavored Markdown tables
- Configurable heading style, bullet marker, and emphasis marker
- Live word and character counts
- Copy to clipboard or download as .md
- 100% client-side processing for privacy
Best Practices
- Preview the HTML first: check the rendered preview to confirm the source markup looks the way you expect before trusting the Markdown output.
- Pick ATX headings for portability: `#`-style headings work everywhere Markdown is supported, while Setext underlines only apply to H1 and H2.
- Match your project's style guide: if your docs already use `_italic_` and `+` bullets, set the emphasis and bullet markers to match so the output needs no cleanup.
- Simplify complex layouts before converting: deeply nested tables, embedded widgets, and multi-column layouts don't have a Markdown equivalent, so simplify the HTML first for the cleanest result.
- Check tables after conversion: Markdown tables are single-line cells — merged cells or multi-paragraph cells will be flattened, so review them before publishing.
Troubleshooting
Some formatting is missing from the output
Markdown only supports a limited set of formatting. Font colors, custom CSS classes, inline styles, and layout-only elements like <div> and <span> don't have a Markdown equivalent and are converted to plain text.
A table looks broken after conversion
Markdown tables can't represent merged cells (colspan/rowspan) or multi-line cell content. Simplify the table structure in the HTML first, or leave it as an HTML table inside the Markdown if your renderer supports that.
Nested lists look misaligned
Markdown list nesting relies on consistent indentation. If your Markdown renderer doesn't match this tool's indent width, adjust the spacing after conversion or check your renderer's list-nesting rules.
Special characters show up escaped with a backslash
Characters like *, _, `, [, and ] have special meaning in Markdown, so literal occurrences in your text are escaped with a backslash to keep the output rendering correctly.
Common Use Cases
- Writing documentation: convert HTML exported from a CMS or word processor into Markdown for a docs site, wiki, or static site generator.
- Migrating content: move blog posts or knowledge-base articles from an HTML-based platform into a Markdown-based one like Jekyll, Hugo, or Astro.
- Preparing README files: turn a formatted HTML snippet into Markdown ready to paste into a GitHub README or CONTRIBUTING guide.
- Sharing content in chat tools: convert a web page section into Markdown for Slack, Discord, or Notion, which all render Markdown natively.
- Feeding content to language models: Markdown is a compact, low-noise format that many LLM workflows prefer over raw HTML.
Frequently Asked Questions
No. <script> tags are removed before conversion, and the HTML is never executed as a live page.
Yes. Tables, strikethrough, and fenced code blocks follow the GitHub-flavored Markdown (GFM) conventions used by GitHub, GitLab, and most modern Markdown renderers.
Their text content is kept, but the wrapping element and any CSS classes or inline styles are discarded, since Markdown has no concept of arbitrary containers or styling.
Yes. Nested <ul> and <ol> elements are converted with indentation matching the parent list item.
Yes. <pre><code> blocks become fenced code blocks (using the language from a class like language-js if present), and inline <code> becomes backtick-wrapped code.
Yes. The emphasis marker option lets you choose asterisks (*italic*, **bold**) or underscores (_italic_, __bold__) for the whole document.
No. Everything happens locally in your browser, and nothing is uploaded or saved.