Your country

Tools that support it use your country for local currency, number formats, units and paper size. Your choice is saved only in this browser.

Type a name or a two-letter code. Use the up and down arrow keys to move through the countries, Enter to choose one and Escape to close.

HTML to Markdown Converter

Paste HTML or formatted text and get clean, GitHub-ready Markdown.

Text No upload Works offline Free, no sign-up

The HTML is read without running scripts or loading images. Nothing is uploaded.

Markdown style

Links such as /about become https://example.com/about. The address is only used for that; nothing is fetched.

Next steps

About the HTML to Markdown Converter

Turn HTML into Markdown you can paste into GitHub, GitLab, Obsidian, Notion, a README or a static-site blog. Paste HTML source, open an .html file, or simply copy part of a web page, a Google Doc or a Word document and paste it here: the formatted text is read as HTML and converted to headings, bold and italic, links, images, lists, task lists, quotes, fenced code blocks with their language, and GitHub tables.

Clipboard HTML from Google Docs and Word is cleaned first, so bold written as a style, Word’s list paragraphs and Google’s redirect links come out as proper Markdown. The HTML is parsed without running scripts or loading images, and nothing is uploaded.

How to use it

  1. Paste HTML source into the box, or copy formatted text from a web page, Google Docs or Word and paste it (keep Paste formatted text as HTML on). You can also open or drop an .html file.
  2. Choose the Markdown style: heading style, bullet character, code fences, italic and bold markers, inline or reference links, images and tables.
  3. For a whole page, keep main content only to leave out menus, headers and footers, and enter the page address to complete relative links.
  4. Check the result in Preview, then Copy it or Download .md.

Examples

A heading, inline code and a link
Input
<h2>Install</h2><p>Run <code>npm i</code>, then read the <a href="https://example.com/docs">docs</a>.</p>
Result
## Install

Run `npm i`, then read the [docs](https://example.com/docs).
A table becomes a GitHub table
Input
<table><tr><th>Plan</th><th>Price</th></tr><tr><td>Free</td><td>₹0</td></tr></table>
Result
| Plan | Price |
| ---- | ----- |
| Free | ₹0    |
A checklist becomes a task list
Input
<ul><li><input type="checkbox" checked> Write tests</li><li><input type="checkbox"> Ship it</li></ul>
Result
- [x] Write tests
- [ ] Ship it
Reference links collect the addresses at the end
Input
<p>See <a href="https://example.com/a">A</a> and <a href="https://example.com/b">B</a>.</p>
Result
See [A][1] and [B][2].

[1]: https://example.com/a
[2]: https://example.com/b

Common uses

  • Moving a blog post, documentation page or help article into a Markdown-based site or wiki.
  • Turning notes written in Google Docs or Word into Markdown for GitHub, GitLab or Obsidian.
  • Converting an HTML email, newsletter or CMS export into readable plain-text Markdown.
  • Getting a table from a web page into a README.

What is converted

  • Headings, paragraphs, line breaks, bold, italic, inline code, quotes and dividers (CommonMark).
  • Lists, including nested lists and numbered lists that start at another number, indented the way CommonMark expects.
  • Links inline or as numbered references (one number per address); a link whose text is its address becomes an autolink such as <https://example.com>. A link around whole blocks, such as a card with a picture, a heading and a summary, links each of them, because one Markdown link cannot hold a heading or paragraphs. javascript: links are removed and Google’s redirect links point to the real page.
  • Images with their description and title, or just the description, or nothing. Embedded data: images are left out unless you keep them (they can be hundreds of kilobytes of text).
  • Code blocks fenced with `` or ~~~ (or indented), keeping the language from classes such as language-js and GitHub’s highlight-source-js`; the fence grows when the code itself contains a fence.
  • GitHub extensions: tables with column alignment, ~~strikethrough~~ and task lists ([x] and [ ]).
  • HTML that Markdown cannot express stays HTML, which Markdown allows: tables with merged cells or lists inside, <details> sections, and <sup>, <sub> and <kbd>.
  • Embedded videos and frames become links; scripts, styles, forms and hidden elements are dropped.

Pasting from Google Docs, Word and web pages

When you copy formatted text, the clipboard holds HTML as well as plain text. With Paste formatted text as HTML on, that HTML is put in the box and converted. Google Docs writes bold and italic as styles on every piece of text and nests lists in a way browsers repair; Word writes lists as numbered paragraphs. Both are cleaned up first with the same cleaner as the Word to HTML Converter. Images in Word’s clipboard point to temporary files on your computer and cannot be included.

From a web page, only the copied part is kept. For the HTML source of a whole page (Ctrl+U in most browsers), main content only keeps the <main> or <article> element, or else leaves out navigation, header, footer and sidebars.

HTML source copied from a code editor such as VS Code, or from a browser’s view-source page, is pasted as the source itself, although those apps also put a coloured copy of the code on the clipboard.

Limitations

  • Markdown has no colours, fonts, alignment of paragraphs, underlining or merged table cells: those are dropped, or (for tables) kept as HTML.
  • Each Markdown table needs a header row, so the first row of a table becomes the header.
  • Content that a page adds with JavaScript after loading is not in its HTML source; copy it from the page instead.
  • The preview does not load images from other websites; it shows their description instead.
  • Very large pages (several megabytes of HTML) can take a few seconds.

Privacy

Everything happens in your browser. What you enter or open here is not uploaded or stored by MySmartCoPilot.

Frequently asked questions

How do I convert a web page to Markdown?

Select the part of the page you want, copy it and paste it here: it is converted with its headings, links, lists and tables. For the whole page, open its source (Ctrl+U, or ⌥⌘U in Safari), copy all of it and paste it here, and enter the page address so relative links work.

Can I convert a Google Doc or Word document?

Yes. Select the text in Google Docs or Word, copy it and paste it into the box. Bold, italic, headings, lists, links and tables are kept. For a whole .docx file, the Word to HTML Converter can open it and give Markdown too.

Which Markdown flavour does it produce?

CommonMark with the GitHub Flavored Markdown extensions (tables, strikethrough and task lists), which GitHub, GitLab, Obsidian, VS Code and most static-site generators read. For strict CommonMark, untick ~~Strikethrough~~ and [x] task lists and set Tables to Keep as HTML (CommonMark has no table syntax but allows HTML).

Why are some characters written with a backslash, like \*?

A backslash keeps a character as text where Markdown would otherwise read it as formatting: a * around words, a # or 1. at the start of a line, or text such as <div>. Underscores inside words, as in snake_case, are left alone because Markdown never reads them as italics.

Why is my table still HTML?

Markdown tables cannot merge cells or hold lists, code blocks or several paragraphs per cell. Such tables are kept as clean HTML, which renders correctly on GitHub and in most Markdown apps. Choose Keep as HTML to do this for every table.

Is my HTML uploaded or run?

Neither. The HTML is parsed in your browser into a document that never runs scripts or loads images, and nothing is sent anywhere.

Quick answers and tool search

Type to search tools or to get a quick answer, for example 18% of 2500. Use the up and down arrow keys to move through the results, Enter to choose, and Escape to close.