Markdown to HTML

Upload a Markdown file — see the rendered HTML instantly and download it as a ready-to-use document. Everything converts in your browser, and once you sign in, your documents reach Claude and ChatGPT through the MCP connector.

Markdown to Confluence, Markdown to Jira wiki markup, Markdown to Slack mrkdwn, Markdown to an EPUB book, Markdown to a Word document, HTML to Markdown, Plain text to Markdown, CSV to a Markdown table, JSON to Markdown, Notion export to Markdown, Confluence export to Markdown, Obsidian vault to Markdown, Word to Markdown, PowerPoint to Markdown, An EPUB book to Markdown, An OpenDocument file to Markdown, Rich text to Markdown, An Evernote export to Markdown, Excel to a Markdown table

What comes across

The Markdown is read as GitHub Flavored Markdown, with the extensions common in notes and documentation on top:

In the Markdown In the HTML
Headings <h1> to <h6>, each with an id such as doc-setup
A link to #setup Pointed at that heading, written GitHub's way or Obsidian's
Task lists, tables Checkboxes that cannot be clicked; tables that scroll on a narrow screen
Fenced code Highlighted for Python, JavaScript, SQL, Bash, YAML and about twenty more
A mermaid fence The diagram, drawn as SVG into the downloaded file
$…$ maths, footnotes MathML; notes numbered and listed at the end
> [!NOTE], ==mark==, H~2~O An alert box, <mark>, <sub>

Download .html saves one file: the document with its stylesheet inside, no script and no web font, in the light or dark palette the app is showing, and light when printed. A line at the foot names the document, gives the time it was converted and links to TransformPipe. The menu beside the button also offers Markdown, Markdown for Obsidian, plain text, Word, EPUB, Confluence, Jira, Slack and a PDF through the print dialog.

What is left behind

  • Front matter. A YAML block between --- lines at the top is removed.
  • Wikilinks. [[Install guide]] becomes the words "Install guide", and ![[diagram.png]] its file name in italics.
  • HTML outside the allow-list. <script>, <style> and <iframe> go with their contents, style and onclick attributes are dropped, and a tag such as <details> loses the tag but keeps its text.
  • Single line breaks. A newline inside a paragraph is a space, as on GitHub. End the line with two spaces or a backslash for a <br>.
  • Pictures as files. An image stays an <img> pointing at its address. A relative path such as img/chart.png shows only if that folder sits beside the downloaded file, because only the .md reaches the converter.

An example

The input:

---
title: Release notes
---

# Release 2.4

Read the [setup notes][setup] first.

- [x] Faster export
- [ ] Print in dark mode

| Format | Size |
| --- | ---: |
| HTML | 48 KB |

## Setup

Run `npm ci`.[^1]

[setup]: #setup
[^1]: Node 20 or later.

Inside the <article> of the downloaded file:

<h1 id="doc-release-24">Release 2.4</h1>
<p>Read the <a href="#doc-setup">setup notes</a> first.</p>
<ul>
<li><input checked="" disabled="" type="checkbox"> Faster export</li>
<li><input disabled="" type="checkbox"> Print in dark mode</li>
</ul>
<div class="md-table"><table>
<thead>
<tr>
<th>Format</th>
<th align="right">Size</th>
</tr>
</thead>
<tbody><tr>
<td>HTML</td>
<td align="right">48 KB</td>
</tr>
</tbody></table>
</div>
<h2 id="doc-setup">Setup</h2>
<p>Run <code>npm ci</code>.<sup class="md-fnref" id="doc-fnref-1"><a href="#doc-fn-1">1</a></sup></p>
<hr class="md-fnrule">
<ol class="md-footnotes">
<li id="doc-fn-1">Node 20 or later. <a href="#doc-fnref-1" class="md-fnback">↩</a></li>
</ol>

The front matter is gone, the link reaches the heading's real id, and the footnote has moved to the end.

Limits

  • 10 MB per conversion, counted across all the files dropped at once. Several files become one document, with a horizontal rule between them.
  • .md, .markdown, .mdown and .mkd, or Markdown pasted as text. A .txt goes to the plain-text converter instead.
  • It runs in your browser, conversion and download alike. Signed out, the file is not uploaded; signed in, the document reaches your account only when you press Save, up to 4 MB.
  • A diagram has to parse. A Mermaid fence with a mistake in it stays as its source code.
  • One stylesheet. There is no setting for your own CSS or template.

Questions

How do I convert an .md file to HTML?

Drop an .md file on this page, or paste the Markdown. The preview shows the page, and Download .html saves it under the same name. No account is needed. To read a file rather than convert it, see How to open an .md file.

Is the HTML file self-contained?

Yes, apart from pictures linked by address. The stylesheet is inside, nothing is fetched for fonts or scripts, and diagrams and formulas are drawn in, so it opens the same way from an email or a disk with no network. Self-contained HTML explained goes further.

Can I copy the HTML instead?

Yes. The HTML source tab shows the whole file, with any diagram still as Mermaid source, and Copy HTML puts that on the clipboard. For a fragment to paste into a CMS, take what is inside <article>.

Does it support GitHub Flavored Markdown?

Yes: tables, task lists, ~~strikethrough~~, fenced code and bare links are read as GitHub reads them, with footnotes, alerts, maths and Mermaid on top.

Is my Markdown uploaded?

No. It is converted in your browser and kept in this browser's storage; it reaches a server only if you sign in and press Save. How to convert Markdown to HTML online shows how to check that for any converter.

Can I use my own CSS?

No. The file carries the document's own stylesheet. It is plain HTML, so the <style> block can be replaced afterwards.

What can it convert?

Twenty things, each with its own page under Converter in the header: Markdown to HTML, Word, Confluence, Jira, Slack or an EPUB book, and HTML, Word (.docx), PowerPoint (.pptx), Excel (.xlsx), OpenDocument (.odt), rich text (.rtf), EPUB, CSV or TSV, JSON, plain text, and an Evernote, Notion, Confluence or Obsidian export to Markdown. A PDF is only ever the way out — the print dialog makes one — and never the way in. Everything coming in ends as Markdown, which is what a document is stored, previewed and shared as here — so a Word file, a spreadsheet and an API response become the same kind of thing once they are in.

Does my file get uploaded anywhere?

Signed out, no. The file is read by this browser, converted here, and never sent to a server — close the tab and nothing of it remains anywhere but your own machine. Signed in, the Markdown source is stored in your account so the document can follow you to another device, and it stays private until you share it.

What exactly do I get when I download?

Whatever the conversion produced, first: an .html file when you converted to HTML, an .md file when you converted to Markdown. The arrow beside the button holds the others — Markdown, HTML, plain text, or the print dialog for a PDF. The HTML is one file with its styles inline: no scripts, no fonts to fetch, no requests of any kind, so it opens the same on a machine with no network. On paper it always flips to the light palette, because a dark page in print is a wall of ink.

Can I send a converted document to someone?

Sign in and share it, either as a link anyone can open or addressed to particular people, who then sign in with that address. A shared page is read-only: the document and a download, nothing else. Revoking drops the link, so one you have already sent stops working.

Is there a size limit?

10 MB a text file to convert — around 1.5 million words — 50 MB a Word, PowerPoint, Excel, EPUB or OpenDocument file, and 250 MB an export .zip, most of which is attachments; all of it because converting happens on your own machine. Keeping one in an account is capped at 4 MB, which is not our number: the platform refuses a larger request outright. A bigger file still converts, previews and downloads; it just stays out of the history, and the app says so instead of pretending it saved. An account holds 5,000 documents or 250 MB, whichever comes first. Reaching a limit refuses the write and says so; nothing you saved is ever quietly deleted to make room.

Can I convert files from a script?

Yes. Create an API key from the account menu and post Markdown to /api/v1/documents; there is also a command-line client and a GitHub Action that publishes the Markdown a pull request changed and comments the links on it. The documentation has the endpoints and the flags.

What does it cost?

Nothing. Converting and downloading work without an account at all; an account adds history, sharing and the API, within the limits above.