HTML to Markdown converter

Paste HTML (or copy part of any web page and paste it here) and get clean Markdown as you type: headings, bold and italic, nested lists, GitHub-style tables, fenced code blocks, links and images. The conversion runs in your browser, so nothing you paste is uploaded.

HTML, or paste rich text from a web page, Google Docs or Word · · clear

Rich text pasted from a page or document is converted from its HTML, so formatting is kept.

Markdown

What it converts

Scripts, styles, forms, buttons and embedded frames are dropped. Pasted HTML is parsed with the browser's DOMParser, which never runs scripts or loads images, and it never leaves your device.

Pasting from Google Docs, Word and web pages

When you copy formatted text, the clipboard holds an HTML version of it, and the box above reads that version instead of the plain text. Google Docs marks bold, italic, strikethrough and monospace text with inline styles rather than tags, wraps the whole selection in a bold tag that isn't bold, and writes sub-lists next to their parent item instead of inside it. The converter repairs all three before converting, so a Doc comes out with real **bold**, nested lists and a table header. Word's <o:p> tags and list items wrapped in paragraphs are cleaned up too.

Convert a web page by its URL

To turn a whole page into Markdown without copying it, use website to Markdown: it loads the page in real Chromium (so JavaScript sites work), keeps only the main article and gives you clean Markdown. From code, the /v1/content API does the same for a URL or for HTML you send, at 1 credit per page:

curl -X POST "https://shotmint.creasework.com/v1/content" -H "X-API-Key: YOUR_KEY" -H "Content-Type: application/json" \
  -d '{"html": "<h1>Hello</h1><p>From <b>HTML</b></p>", "main_content": false}'

The JSON answer has the Markdown in content, plus title, words and other metadata. Add "links": false to keep link text without URLs or images, which cuts the token count for LLM prompts (see web page to Markdown for LLMs). Keys get 25 free credits a month; €5 buys 2,000 more, with no subscription.

Get 25 free credits a month Read the API docs

FAQ

Why does my table have a header I didn't have? GitHub-flavored Markdown tables must start with a header row. When the HTML has none, the first row is used, which is usually what a header would have said anyway.

Why are some characters escaped with a backslash? Text such as 1. at the start of a line, * or _ would turn into formatting in Markdown, so it is escaped to show up exactly as in the HTML.

What happens to colors, fonts and sizes? Markdown has no syntax for them, so they are dropped. Underline is dropped too, except on links.

Can I go the other way? To turn Markdown into a document, use Markdown to PDF.

Related: google docs to markdown, PDF to Markdown, website to Markdown, URL to Markdown, extract text from a website, HTML to PDF, Word to PDF.

Related tools

Markdown to HTML · Markdown to Word · CSV to Markdown table · Website to Markdown · Markdown table generator · Google Docs to Markdown · Markdown to PDF · PDF to Markdown · DOCX to Markdown · Excel to Markdown Table · Markdown Table to CSV Converter · Markdown to DOCX · Markdown Viewer · Online Markdown Editor with Live Preview · URL to Markdown · Word to Markdown Converter · Word to HTML · HTML to Word · all free tools