Convert WYSIWYG editor HTML to clean Markdown — supports 6 editors
Rich text editors produce HTML filled with editor-specific markup — proprietary classes, data attributes, inline styles, and wrapper elements. This HTML is tied to a specific editor and CMS. Markdown is the opposite: a plain-text format that's portable across any platform, readable in raw form, and works perfectly with version control (Git diffs are clean and meaningful).
Developers and content teams migrate to Markdown for three reasons: portability (move content between platforms without reformatting), developer experience (write docs alongside code in the same editor), and future-proofing (Markdown from 2004 still renders perfectly today; HTML tied to a 2018 editor may not).
| Editor | Used By | HTML Quirks | Migration Difficulty |
|---|---|---|---|
| TinyMCE | WordPress Classic, Joomla, Drupal | mce-* classes, data-mce-* attributes, wraps content in <p> | Easy |
| CKEditor 4/5 | Drupal, Magento, custom apps | cke_* classes, <figure> image wrapper, <oembed> embeds | Easy–Moderate |
| Quill | Modern web apps, Notion-style editors | ql-* classes, .ql-indent-N, .ql-align-*, nested <span> for formatting | Moderate |
| WordPress Gutenberg | WordPress 5.0+ | <!-- wp:paragraph --> comments, wp-block-* classes, has-* utility classes | Moderate |
| UEditor (Baidu) | Chinese CMS, enterprise apps | list-paddingleft-* classes, _src custom attributes, style tag stripping | Easy |
Step 1 — Export. Extract the HTML content from your current CMS or editor. For WordPress, use the native export tool. For custom apps, query the database directly. Save the raw HTML files — don't modify anything yet.
Step 2 — Select & Convert. Choose your editor from the dropdown above to enable editor-specific cleanup rules. Paste each article's HTML and copy the Markdown output. The converter strips mce-*, cke_*, ql-*, wp-block-* classes automatically.
Step 3 — Validate. Spot-check the converted Markdown. Images should use  syntax. Lists should have consistent indentation. Code blocks should use fenced ``` delimiters. Tables should render correctly in your Markdown preview.
Step 4 — Import. Drop the .md files into your static site generator (Hugo, Jekyll, Astro, Next.js, VitePress). Add frontmatter at the top of each file for title, date, and tags.
Markdown isn't always the right choice. If your content relies on complex table layouts (colspan/rowspan), custom HTML embeds, or precise inline styling, the conversion will lose fidelity. For these cases, keep the HTML and use a CMS that renders raw HTML alongside Markdown — most static site generators support both.
Select your editor type from the dropdown, switch to your editor's Source/HTML view, copy the raw HTML, and paste it here. The converter strips editor-specific markup (TinyMCE's mce-*, CKEditor's cke_*, Quill's ql-*, WordPress block comments, UEditor padding classes) and outputs clean Markdown.
TinyMCE, CKEditor 4/5, Quill, WordPress Block Editor (Gutenberg) and Classic Editor, UEditor (Baidu), and generic/unknown HTML. Each has tailored cleanup rules. If your editor isn't listed, "Generic HTML" still produces good results with standard Turndown.js conversion.
Yes. Select "WordPress" from the editor dropdown. The converter strips <!-- wp:... --> block comments, wp-block-* classes, and inline styles from both Gutenberg and Classic Editor output. The resulting Markdown works directly with Hugo, Jekyll, Astro, and other static site generators.
Make sure you've selected the correct editor from the dropdown. Each editor has specific cleanup rules. If you select "Generic HTML," no editor-specific cleanup is applied. Switch to your actual editor and the converter will strip its proprietary markup.
Pandoc is a powerful command-line tool but has no knowledge of editor-specific markup — it can't strip TinyMCE's mce-item classes or Quill's ql-indent attributes. This tool adds editor-aware preprocessing before the HTML-to-Markdown conversion, and it runs in your browser with zero setup.
Images convert to  syntax, preserving the original src and alt attributes. Embedded media (oEmbed, iframes) is converted to a Markdown link pointing to the media URL. You may need to manually replace temporary or CDN URLs with your final image paths after migration.