iLoveMD
100% in your browser

Notion Export to Clean Markdown

Drop the .zip from Notion's “Export → Markdown & CSV” and get it back with de-hashed filenames, rewritten internal links, and preserved images — cleaned entirely in your browser, never uploaded.

  • Always free
  • No uploads
  • No sign-up
  • No tracking

← All conversion tools

Notion → Markdown .zip
No files selected

Notion Export

Cleaned Files

Export Your Results

Notion to Markdown Docs

Notion's “Export → Markdown & CSV” gives you a .zip that is technically Markdown but practically broken: every filename carries a 32-character page id, subpages sit in hash-named folders, and every internal link and image points at those hashed paths. This tool reads that .zip in your browser, strips the hashes, rewrites the links and images to the clean paths, preserves your images, and hands back a cleaned .zip — nothing is uploaded.

What Notion's export gets wrong

When you export a Notion workspace as Markdown, each page becomes a file named like Project Plan a1b2c3…d4e5.md — the trailing 32-hex string is the page's internal id. Pages with subpages also get a sibling folder of the same hashed name holding the children, and images live inside those folders. Notion then writes every internal link and image reference using those hashed, URL-encoded paths.

  • Cluttered filenames — every file and folder ends in a long hash.
  • Broken-looking links[Sub](Project%20Plan%20a1b2…/Child%20f6a7….md) instead of [Sub](Project Plan/Child.md).
  • Hard to browse — the hashes make the folder tree unreadable in any editor or static-site generator.

What this tool fixes clean

It produces a cleaned .zip that mirrors your workspace structure with:

  • De-hashed namesProject Plan a1b2…d4e5.mdProject Plan.md, folders too.
  • Rewritten internal links — every link between pages is repointed to the clean path, so cross-references keep working.
  • Preserved, re-linked images — image files are copied byte-for-byte and their references updated. Broken images are the #1 migration complaint; they survive here.
  • A file/folder that share a name coexist correctly — a page Notes.md and its subpage folder Notes/ both keep the name Notes, exactly as Notion intends.
Tip: drop the .zip exactly as Notion gave it to you — don't unzip it first. The tool needs the whole archive to rebuild the link graph.

Databases & what's preserved as-is

Notion databases export as a .csv plus a folder of one Markdown file per row (each row is itself a page with body content). This tool de-hashes and re-links those files but keeps them as files — it does not flatten a database into a single Markdown table, because that would silently drop each row's body content. If you want a database as a Markdown table, run the exported .csv through our CSV to Markdown tool.

Privacy & limits

The entire conversion runs in your browser via a vendored copy of JSZip — your export is never uploaded, and no part of it is sent to a server or any third party. Images are processed in memory and written straight back into the cleaned .zip.

  • Size limit: 50 MB for the input .zip (a safe ceiling for in-browser processing). Larger workspaces are rejected with a clear message rather than risking a browser crash.
  • Not a Notion export? If the .zip has no hashed Notion filenames, the tool tells you instead of touching your files.
  • Works offline once the page and (on first use) the JSZip library have loaded.

How to clean a Notion Markdown export

1

Export from Notion

In Notion, use “Export → Markdown & CSV” and save the .zip it produces. Don't unzip it.

2

Drop the .zip here

Drop the export onto the tool. It's parsed in your browser — nothing is uploaded.

3

Download the cleaned .zip

Get back the same workspace with de-hashed names, rewritten links, and preserved images, ready to use anywhere.

Frequently asked questions

Does my Notion export get uploaded?

No. The .zip is read and rewritten entirely in your browser with a vendored copy of JSZip. Nothing is sent to a server or any third party.

What exactly does it fix?

It strips the 32-character page ids from every filename and folder, rewrites all internal links and image references to the clean paths, and preserves your images byte-for-byte so nothing breaks.

Does it keep my images?

Yes. Image files are copied unchanged into the cleaned .zip and their references are repointed to the new paths.

What about databases?

Database .csv files and their per-row Markdown pages are de-hashed and re-linked but kept as files, so no row content is lost. To turn a database CSV into a Markdown table, use our CSV to Markdown tool.

Is there a size limit?

Yes, 50 MB for the input .zip — a safe ceiling for in-browser processing. Larger exports are rejected with a clear message rather than risking a crash.

Does it work offline?

Once the page has loaded and the JSZip library has loaded on your first conversion, yes — everything runs locally.