Convert HTML documents, website content, or CMS exports to clean Markdown format. Useful for migrating content from one platform to another, archiving web pages as plain text, or extracting content for editing in a Markdown editor. The turndown library converts headings, paragraphs, lists, links, images, code blocks, and tables while stripping unnecessary HTML tags.
Paste your HTML
Paste HTML source code, a webpage section, an email template, or CMS-exported HTML. Full HTML documents and HTML fragments (without doctype) both work.
Click Convert
turndown parses the HTML and converts semantic elements to Markdown: <h1> → # Heading, <strong> → **bold**, <a href="..."> → [text](url), <ul><li> → - item, <code> → `code`.
Review the Markdown
Complex HTML layouts (multi-column, nested tables) may not convert perfectly — review the output and adjust manually. Simple content like articles, blog posts, and documentation converts cleanly.
Copy or download
Copy the Markdown to paste into a Markdown editor like Obsidian, Notion, or Bear, or download as a .md file.
All standard document elements: headings (h1–h6), paragraphs, bold/italic/strikethrough, links (with title attributes), images, ordered and unordered lists, nested lists, blockquotes, inline code, fenced code blocks, horizontal rules, and tables. Layout elements like div and span are treated as block/inline containers and their content is extracted without the tags.
Markdown table support requires each row to have the same number of columns, and nested tables are not expressible in Markdown. If the source HTML has merged cells (colspan/rowspan), complex nested tables, or inconsistent column counts, conversion will be imperfect. Simple data tables with consistent columns convert cleanly.
Yes, but the output will include navigation menus, footers, sidebars, and other non-content HTML that you'll need to remove manually. For extracting just the article content from a webpage, it's better to copy the main content area's HTML (inspect element → copy outer HTML of the article or main element) rather than the full page source.
CSS inline styles (font-weight: bold, font-style: italic) are not converted to Markdown equivalents — Markdown doesn't have a concept of arbitrary CSS. Only semantic HTML tags (<strong>, <em>, <b>, <i>) are reliably converted. For CMS-exported HTML that uses classes instead of semantic tags for formatting, the styling information is lost.
turndown converts semantic HTML elements. Non-semantic or unknown elements (custom web components, script/style tags, SVG elements) are kept as raw HTML in the Markdown output (which is valid — Markdown allows raw HTML). If you want truly plain text without any HTML, remove the raw HTML blocks manually after conversion.
Something not working? Report a bug