Skip to content
EVOA Toolbox

HTML to Markdown

Convert HTML to tidy Markdown, including tables, lists and code blocks. Scripts and styles are dropped. Runs in your browser.

Processed locally in your browser. Your text is not uploaded.

Loading tool…

What this tool does

Paste HTML and get readable Markdown back. Headings, paragraphs, links, images, emphasis, ordered and unordered lists, blockquotes, code blocks and tables are converted to their Markdown equivalents, and the result is ready for a README, a wiki, a static-site generator or a note-taking app.

It is handy for moving content out of a CMS or a saved web page, cleaning up HTML copied from an e-mail, or turning a snippet of documentation into something you can diff in version control. You can pick ATX (# Heading) or Setext (underlined) headings, fenced or indented code blocks, and the bullet character for lists.

The conversion uses the Turndown library plus a built-in table rule that produces GitHub-style pipe tables. Script, style and iframe elements are removed before conversion, and the HTML is parsed as an inert document, so pasted markup is never executed.

How to use it

  1. 1Paste HTML into the left box, or press Example to see a sample.
  2. 2Pick heading style, code block style and bullet marker in the options.
  3. 3Leave Tables on to convert <table> to pipe tables, or turn it off to keep plain text.
  4. 4Copy the Markdown or download it as a .md file.

Supported formats

Input: an HTML fragment or full page as text. Output: Markdown (CommonMark with GitHub-style tables, strikethrough and task-list checkboxes).

Privacy

This tool runs in your browser. The data you provide is processed on your device and is not sent to our servers.

Limitations

  • Markdown cannot express everything HTML can: colours, classes, inline styles, columns and most layout markup are lost.
  • Table cells are flattened to one line; nested lists, block elements or images inside cells lose their structure. Merged cells (colspan/rowspan) are not represented.
  • A table with no header row uses its first row as the header, because pipe tables require one.
  • Pasting a whole web page includes navigation and footers as text; paste just the part you want.
  • Relative links stay relative because the original page address is unknown.

FAQ

Are scripts or styles in my HTML run or kept?

No. <script>, <style>, <noscript>, <iframe>, <object> and <embed> elements are removed before conversion, and the HTML is parsed without being executed.

Does it convert tables?

Yes. Tables become GitHub-style pipe tables with a separator row after the header. Pipe characters inside cells are escaped, and line breaks inside cells become spaces.

Can I copy from a web page and paste here?

Pasting rendered text into the box inserts plain text, not HTML. Use your browser's view-source or developer tools to copy the element's HTML, then paste that.

Which Markdown flavour is produced?

Mostly CommonMark, with ~~strikethrough~~, [x] task checkboxes and pipe tables as used by GitHub.

Related tools