<h1 id="release-notes-v24">Release Notes v2.4</h1>
<h2 id="highlights">Highlights</h2>
<ul>
<li><strong>Dark mode</strong> is now the default on macOS</li>
<li>Import from <a href="https://notion.so">Notion</a> and Obsidian</li>
<li><input type="checkbox" checked disabled> Export to Word</li>
<li><input type="checkbox" disabled> Export to Google Docs</li>
</ul>
<h2 id="breaking-changes">Breaking changes</h2>
<table>
<thead><tr><th>Setting</th><th>Old</th><th>New</th></tr></thead>
<tbody><tr><td><code>theme</code></td><td><code>light</code></td><td><code>auto</code></td></tr></tbody>
</table>
<pre><code class="language-js">const cfg = { theme: 'auto' };</code></pre>
<blockquote><p>Upgrade with <code>npm i md2word@latest</code>.</p></blockquote>
Markdown to HTML converter
Paste Markdown, get clean semantic HTML. GitHub-flavored tables, task lists and fenced code, no inline styles, no wrapper divs. Copy the markup or download a file.
Paste Markdown
CommonMark and GitHub-flavored Markdown are both understood, including nested lists and footnotes.
Choose fragment or document
A body fragment to drop into your CMS, or a complete standalone page with a small stylesheet.
Copy or download
Copy the markup to your clipboard or save an .html file. It is plain text, nothing is uploaded.
What "clean HTML" means here
Every Markdown processor produces HTML somewhere along the way, so the question is never whether a tool can do it, but what the output looks like when you open it. Editors that export HTML tend to wrap every paragraph in three divs, attach inline style attributes, and paste their own CSS classes onto everything. That HTML is impossible to style, bloated to send, and unfriendly to screen readers and search engines.
MDtoDOCX emits the smallest correct markup for each construct. A paragraph is a <p>. A heading is an <h2> with an id derived from its text so you can link to it. Emphasis is <em> and <strong>, never <i> and <b>. There are no wrapper divs, no inline styles and no classes except the one that identifies a code block's language.
GitHub-flavored Markdown, fully
Pipe tables become <table> with a proper <thead> and <tbody>, and column alignment from the delimiter row is written as style="text-align" on the cells, the one place inline style is unavoidable. Task lists become list items with a disabled checkbox. Strikethrough becomes <del>. Autolinks are turned into anchors. Footnotes produce a footnote section with back-references.
Code blocks you can highlight
Fenced code is emitted as <pre><code class="language-js">, the convention every highlighter from Prism to highlight.js expects. Content inside is HTML-escaped once, so angle brackets in your code do not become tags. Pro can pre-highlight the code with token spans and a scoped stylesheet, useful when you cannot run JavaScript on the destination page, such as an email or a locked-down CMS.
Heading IDs and anchors
Heading IDs are generated the same way GitHub does it: lowercase, spaces to hyphens, punctuation removed, duplicates suffixed with a number. Links like [see setup](#setup) keep working after conversion. You can turn IDs off if your CMS generates its own.
Fragment or full document
The default output is a body fragment, which is what you want when pasting into WordPress, Ghost, Notion's HTML import, or a documentation site. Switch to "Full document" for a standalone page with a <head>, a viewport meta tag and a compact stylesheet that sets sensible type, table borders and code shading. That file opens correctly in any browser and is a reasonable thing to email.
Security
Raw HTML inside your Markdown is passed through, as CommonMark requires, but the converter runs entirely in your browser and never posts the result anywhere, so there is no server to attack. If you plan to publish user-supplied Markdown, run the output through a sanitiser on your side.
MDtoDOCX vs Pandoc vs editor "Export as HTML"
| What matters | MDtoDOCX | Pandoc | Typical editor export |
|---|---|---|---|
| Wrapper divs and inline styles | None | Minimal | Everywhere |
| GitHub task lists and tables | Yes | Yes | Often lost |
| Heading IDs | GitHub style | Pandoc style | Usually none |
| Code block language class | language-* | sourceCode classes | Varies |
| Standalone document option | Yes | Yes (-s) | Sometimes |
| Install anything | No | Yes | The editor |
| Privacy | Local | Local | Local |
Frequently asked questions
Is the Markdown to HTML converter free?
Does it add CSS classes or inline styles?
language-* class on code blocks and text-align on table cells that Markdown explicitly aligns. The output is meant to inherit your site's stylesheet.Which Markdown flavour is supported?
--- fences is stripped, not rendered.Can I paste the result into WordPress or Ghost?
How are heading IDs generated?
#anchor links keep working.