What Gets Converted and How
Headings (h1-h6) become # through ###### ATX-style markers (or underlined Setext style for h1/h2, if selected). Links and images keep their href/src and text/alt as [text](url) and . Ordered and unordered lists become numbered or bulleted Markdown lists, preserving nesting. Bold, italic, and inline code map to **bold**, *italic*, and `code`. Block-level code (<pre><code>) becomes a fenced code block, carrying over a language-xxx class as the fence's language tag when present, so a code sample copied from a syntax-highlighted page keeps its language annotation.
GitHub-Flavored Markdown Table Conversion
An HTML <table> converts to a proper pipe-delimited Markdown table, with the header row followed by a --- separator row and each data row as | cell | cell |, exactly the syntax GitHub, most static site generators, and most Markdown renderers expect for tables. This is a GitHub-Flavored Markdown (GFM) extension, not part of the original CommonMark spec, but it is the de facto standard virtually every Markdown-consuming tool supports today.
Code Block Handling
Choose fenced (```language ... ```) or indented (four-space indent) code block style. Fenced is the more common modern convention and the only style that can carry a language tag for syntax highlighting in the rendered output; indented code blocks are supported by CommonMark but can't express a language, so any language class on the source HTML is only preserved when using fenced style.
Common Use Cases
Migrating documentation or CMS content into a Markdown-based system (a static site generator, a README, a wiki) is the most common use, converting rendered HTML pages back into editable Markdown source. Cleaning up HTML copied from a rich-text editor or a scraped webpage into portable, version-control-friendly Markdown is another common workflow, especially useful before pasting content into a GitHub issue, pull request, or README where GFM tables and task lists render natively.
Known Limitations
Markdown can't express everything HTML can. Inline styles, complex multi-column layouts, embedded iframes/videos, and custom web components have no Markdown equivalent and are either dropped or reduced to their plain text content. Nested tables and tables inside list items can also lose some structure, since GFM tables themselves are a fairly limited, flat format. For content beyond what plain Markdown can represent, consider whether an HTML-in-Markdown escape hatch (raw HTML passthrough, which most Markdown renderers support) fits your use case better than a full conversion. Use it to turn html to md, as a gfm table converter for html to github flavored markdown, a turndown online alternative, a free html markdown converter free of signup, a way to convert webpage to markdown with html to markdown tables intact, or simply to strip html to markdown for cleaner source.