HTML to Markdown
Move HTML document fragments into a Markdown editor. The converter preserves basic document structure such as headings, paragraphs, lists, quotes, emphasis, links, and code. It does not recreate CSS styling or page layout, and the result is Markdown source rather than a rendered preview.
Key features
- Convert H1–H6 headings, paragraphs, quotes, emphasis, and nested lists.
- Use delimiters longer than the backticks inside code to preserve code spans and fenced blocks.
- Keep web, mail, and relative links while excluding active schemes such as javascript and data.
- Choose Markdown image references or alternate text only.
How to use
- Paste an HTML fragment. Entering a webpage address alone does not fetch its contents.
- Choose whether images become Markdown references or alternate text only.
- Run, copy the source, and check formatting and links in your destination Markdown editor.
Use cases
- Turn an HTML guide into a README draft
- Preserve headings, lists, and links from an HTML article
- Migrate HTML documentation containing code examples
Frequently asked questions
Does conversion execute scripts or load images?
No. The HTML is read inside a template that is never attached to the live page. Script, style, embedded-content, and hidden-attribute elements are excluded. Image URLs can remain in the output, but the converter does not fetch the images.
What happens to unsupported formatting?
CSS, interactive forms, JavaScript, and complex table layouts are not reproduced. Remaining text is generally kept, and tables are simplified into text rows. Strikethrough uses the ~~ extension and requires a compatible Markdown editor.
Are list numbering and code whitespace preserved?
Code blocks preserve spaces and blank lines, and nested lists use indentation. Ordinary HTML text whitespace is collapsed. Ordered-list start numbers are supported, but reversed lists and number jumps from individual li value attributes are not reproduced.
Which link and image URLs are supported?
HTTP, HTTPS, mailto, relative references, and fragments are supported. Other schemes and URLs containing control characters are omitted while display text remains. Relative links are not resolved against the original website, so check them in the new document location.
Why can a result be empty or conversion be limited?
Input containing only scripts, styles, or embedded content may produce an empty result. Input is limited to 100,000 UTF-16 code units and output to 1,000,000. Excessive nesting or node counts are also limited.
Privacy
Input and results are processed in browser memory. This tool does not upload or save their contents. Shared site advertising, visitor analytics, and aggregate tool-use events may operate separately; those events do not include your input.
Comments & questions