Guide · Business
How to Convert HTML to Markdown (and Back)
Updated 2026-08-09 · 5 min read
CMS editors speak HTML. A lot of writing tools, static sites, and README files speak Markdown. Moving between them is a translation, not a zip. You want headings to stay headings, links to keep their URLs, and the unpublished paragraph to stay off a converter you found in an ad. You can do that in the browser.
HTML Markdown Converter on DevOkk.com is a two-way paste. No account. This page is what survives the trip, what dies in a div, and when you should be escaping characters instead of changing formats.
Why this conversion exists
Writers copy from WordPress, Notion, or a design tool and land in a Markdown file. Developers copy a README into a CMS that only accepts HTML. Neither group wants to rebuild thirty links by hand.
The bad version of the job is an “HTML to Markdown” website that stores the paste. A draft with a client name, a launch date, or an unreleased URL is still a draft. DevOkk’s converter is built so the transform happens in the tab. Pages load over the network; the claim is not that your laptop is offline. The claim is that finishing the conversion does not require uploading the post.
If you already have the snippet and know Markdown, skip to the tool. If your last conversion ate a table and a video embed, stay here.
What Markdown can honestly hold
Common Markdown is a small language: headings, paragraphs, emphasis, lists, links, images, block quotes, code, and sometimes tables and footnotes depending on the dialect (GitHub Flavored Markdown is the one most developers mean).
HTML is larger. It has divs for layout, spans for color, inline styles, script, iframe, comments, and components that only exist in your CMS. A converter’s job is to keep the document meaning and drop or flatten the chrome.
Expect to keep:
h1–h6as#through######- Paragraphs and line breaks, with some whitespace normalized
a hrefas[text](url)imgaswhenaltandsrcare presentstrong/emas**and*- Lists, if they were real lists and not paragraphs with emoji bullets
- Code blocks, if they were
pre/codeand not a screenshot
Expect to lose or flatten:
- Column layouts and “cards”
- Most inline CSS
- Custom blocks (accordions, tabs, forms)
- Comments and editor metadata
- Tables that were really nested layouts
If the page is 80% layout, you are not converting an article. You are asking Markdown to be a page builder. It will not.
Convert a dump, then walk the links
Open HTML Markdown Converter. Paste the HTML you actually need - the article body, not the site chrome, not the cookie banner. Convert. Read the Markdown as a human.
Click every link in a preview if you have one, or at least scan the URLs. Relative links (../assets/hero.jpg) will still be relative. They will break if the Markdown file lives in a different tree than the HTML did. That is not a converter bug.
Images without alt become images without alt. Fix that in Markdown; it is cheaper than fixing it after publish.
Code samples that were HTML-escaped in the CMS may arrive as entities (<div>). If you need those characters visible as text inside HTML, that is a different tool: HTML Encoder. Conversion changes format. Encoding changes how bytes are written inside a format. Mixing the two in your head is how you double-escape a snippet and ship &lt;.
Placeholder copy in a layout you have not filled yet belongs in lorem, not in a production HTML export. See What Lorem Ipsum Is For if the problem is mockup text rather than markup.
The other direction: Markdown to HTML
Going back is usually cleaner, because you are expanding a small language into a larger one. You will get tags a browser understands. You will not get your CMS’s custom blocks back. You will not get the original pretty-printed attribute order.
Use Markdown → HTML when a tool only accepts HTML and you already wrote the post in Markdown. Preview the HTML in a real renderer before you paste it into a system that strips tags. Some CMS fields eat <script> (good) and also eat <iframe> (maybe bad, if you needed the embed).
Round-tripping HTML → Markdown → HTML is for getting to a simpler document, not for bit-identical backups. Keep the original export until you have checked the published page.
Dialect and entities
“Markdown” is a family. A table that works on GitHub may be ignored by a strict CommonMark library. Footnotes, strikethrough, and task lists are dialect features. If the destination is picky, convert, then simplify.
Entities ( , &) may decode into real characters in Markdown, which is usually what you want. They may also be the only thing standing between you and a broken attribute. If the paste is a fragment you will embed in HTML later, encode on purpose with HTML Encoder after you finish editing.
A converter will not sanitize input for XSS. Pasting a random email’s HTML into a preview that executes scripts is a bad idea in any tool. Prefer fragments you created, and preview as text first if you do not trust the source.
Limits of a paste box
A 200 KB article is fine. A 20 MB “Save as HTML” from a word processor, complete with VML and office namespaces, will make a mess. Strip to the body in the original editor first.
Very deep lists and broken tags produce best-effort output. If the HTML does not parse, fix the source. Do not upload it to a shadier converter because this one refused to guess.
Site-wide migrations need a script, fixtures, and a diff. Use the browser tool to design the mapping on one post, then automate.
Translate the body, leave the chrome
When headings, links, and paragraphs look right in the destination preview, you are done. Open HTML Markdown Converter and paste the article, not the whole page. If the next problem is characters that must stay escaped, switch to HTML Encoder instead of running another format conversion to paper over it.
Frequently asked questions
Does the HTML–Markdown converter require an account?
No. HTML Markdown Converter opens without registration. Paste on one side, copy from the other.
Is an unpublished draft uploaded to convert it?
The converter is built to transform markup in the browser. That is the reason to use it for a CMS export or a post that is not public yet.
What will I lose going from HTML to Markdown?
Layout that is not expressible in common Markdown: nested tables, inline styles, custom components, comments, and a lot of presentational div soup. You keep the document structure - headings, paragraphs, lists, links, emphasis, and usually images as ![]().
When should I encode entities instead of converting?
When you need to show markup as text, or to escape characters for a context that is still HTML. That is HTML Encoder, not a Markdown conversion. See also How to Encode HTML Entities.
Can I round-trip Markdown back to HTML and get the same file?
You will get equivalent structure, not a byte-identical file. Attribute order, implied tags, and original whitespace will change. Treat the output as a new document and diff it if you care.
Should I convert a whole site this way?
Use a local converter for a page or a post. A site migration belongs in a script you can run on a fixture set, with tests for the nasty templates. A browser tab is the wrong CI system.
Related guides
More reading that links back to the same tools and workflows.
How to Encode HTML Entities and Avoid XSS Pitfalls
Entity encoding for safe HTML display.
5 min read
What Lorem Ipsum Is For (and How to Generate It)
Placeholder text for mockups, generated locally.
4 min read
Canva vs Novoresume vs DevOkk: Resume Builders Compared
Canva is a design file. Novoresume-class sites are career SaaS with accounts. DevOkk is a no-signup browser layout. When each is the right resume tool - and when you are the product.
7 min read
Why ATS Software Rejects Your Resume PDF
Columns, icons-as-headings, and image-only PDFs. What applicant tracking systems actually parse, when a designed resume is fine, and how to keep work history off a career-site account.
7 min read