HTML to Markdown Converter
Convert HTML into clean Markdown in the browser. Useful for migrating content from CMSes, web pages, or HTML emails.
How FormatArc converts HTML to Markdown
Conversion details
FormatArc uses turndown configured with ATX headings (#), fenced code blocks (```), '-' bullet markers, '_' for emphasis, and '**' for strong. <h1> to <h6> map to # to ######, <strong> to **text**, <em> to _text_, <code> to inline backticks, <pre><code> to fenced blocks, <a href> to [text](url), and <img src alt> to . <table> elements convert to GFM pipe tables; cell newlines are collapsed to spaces and pipe characters ( | ) are escaped with a backslash.
Limitations
Table rowspan and colspan attributes are dropped — only the cell contents survive, and the structure is flattened. <script>, <style>, and <noscript> elements are removed entirely. Inline CSS (style attribute) is ignored. <iframe>, <embed>, and <video> remain as raw HTML in the output. URL fetch and file upload are not supported (CORS constraints); paste HTML directly into the input area.
Privacy & local processing
All HTML is converted to Markdown in your browser by static JavaScript. The HTML content is not uploaded to any server, and no signup or API key is required. FormatArc is built with Next.js static export, so this page ships only static HTML and client-side code.
Also available as CLI and Chrome extension
Need the same conversion in a build pipeline or terminal? FormatArc ships as a CLI on npm (npx formatarc html-to-md input.html). For browser-based formatting without leaving the active tab, FormatArc also has a Chrome extension that formats JSON and YAML in place. See the related articles below for details.