Can notion-to-md Output Formats Other Than Markdown and Integrate With a CMS or Static Site?
Updated
Yes. notion-to-md is a Node.js library that fetches Notion pages and transforms them into Markdown, HTML, plain text, or fully custom output, and it is designed to plug into a CMS backend or a static site build. The condition is that you work in a Node.js environment and are willing to configure the plugin system — the default path produces Markdown, while other formats and destinations come from renderer and exporter plugins.
What the library actually does
notionconvert.com describes notion-to-md as "a flexible Node.js library to fetch and transform Notion pages into Markdown, HTML, or custom formats via a powerful plugin system." It is free and open-source. The site lists these capabilities:
- Customizable output formats — the extensible plugin system allows transformation to Markdown, HTML, plain text, or completely custom output formats.
- Integration with any system — the architecture allows integration with any CMS (WordPress, Webflow, etc.) or backend by handling content conversion and media processing.
- Automation — build pipelines that publish Notion content to static sites, documentation platforms, or databases.
- Node.js ecosystem fit — integrates into Node.js build processes and static site generators such as Next.js, Hugo, and Eleventy.
How non-Markdown output is produced
Output format is not a single switch; it is determined by which renderer and exporter plugins you use. The documentation's Concepts section separates Exporter Plugins from Renderer Plugins, alongside configuration, media handling, page references, context variables and templates, block transformers, annotation transformers, database property transformers, and frontmatter transformers. In practice:
| Goal | Mechanism named in the docs |
|---|---|
| Markdown output | Default renderer behavior |
| HTML or plain text | A renderer plugin that emits that format |
| Custom format | A renderer plugin written for your target structure |
| Send content somewhere (CMS, files, pipeline) | An exporter plugin |
The docs also include a plugin catalogue with separate media strategy, exporter, and renderer catalogues, plus a guide on creating a renderer plugin from scratch and one on modifying an existing renderer plugin. Those are the pages to read before committing to a custom format.
Integration paths, by destination
- Static site generators (Next.js, Hugo, Eleventy): run the conversion as part of the Node.js build process, then let the generator consume the resulting files.
- CMS backends (WordPress, Webflow, or others): use an exporter plugin to hand converted content to the CMS or your own backend, rather than writing files by hand.
- Databases or documentation platforms: the site explicitly frames automated pipelines for publishing to "multiple destinations like static sites, documentation platforms, or databases."
Media and links are part of the conversion
If your pages contain images or files, format choice is not the only decision. notion-to-md offers media handling strategies to "download, upload, or buffer Notion images and files, automatically updating links and managing cleanup." The blog includes a post on mastering media handling in v4 covering download, upload, and direct strategies, and a media strategy catalogue. Pick a strategy that matches where the output will live — a CMS that hosts its own assets needs different handling than a static build that copies files locally.
What to check before you rely on it
- Version. The documentation is labeled v4 (with a v4-0-0-alpha.5 changelog entry) and there is also a v3 section. Plugin APIs and configuration differ between major versions, so match guides to the version you install.
- Block coverage. The site states it parses and converts a wide range of Notion blocks including text, lists, images, code blocks, callouts, and databases. If your pages use unusual blocks, verify them against the block transformer documentation.
- Custom format effort. HTML and plain text are presented as plugin-driven outcomes, not built-in toggles. Budget time for the "create renderer plugin from scratch" guide if your target format is not covered by an existing catalogue entry.
- Setup and authentication. The site's Getting Started section is the entry point for installation and fetching pages; it does not publish pricing or login terms, so treat access requirements as something to confirm there rather than assume.
For a first test, convert one representative page to Markdown, then swap in a renderer plugin and an exporter plugin to confirm the same page reaches your CMS or static build intact — including images — before scaling to a full site.