Docusaurus is a React-based documentation framework. docmd provides a fast, zero-config alternative that compiles significantly faster and does not require React components to render rich documentation features.
1. Run the Migration Engine
Run the following command at the root of your existing Docusaurus project:
npx @docmd/core migrate --docusaurus
pnpm dlx @docmd/core migrate --docusaurus
yarn dlx @docmd/core migrate --docusaurus
bunx @docmd/core migrate --docusaurus
What Happens Automatically
- Backup: Your entire project directory (excluding
node_modules,.git,package.json, and lockfiles) is backed up safely into a newdocusaurus-backup/directory. - Content Migration: Your
docs/folder is restored to the project root directory. - Frontmatter Translation: Docusaurus
sidebar_labelfrontmatter tags are automatically translated todocmd’snav_title, and legacyidtags are safely stripped. - Config Generation: A
docmd.config.jsonis generated, extracting your sitetitleand static directory options fromdocusaurus.config.jsordocusaurus.config.ts.
2. Preview the Migration Output
Preview your Markdown content immediately in docmd:
npx @docmd/core dev
pnpm dlx @docmd/core dev
yarn dlx @docmd/core dev
bunx @docmd/core dev
3. Manual Configuration & Component Replacement
Docusaurus uses programmatic JavaScript configurations and React components that must be mapped to native Markdown and docmd containers.
Navigation Setup
Docusaurus sidebars are often auto-generated or declared in sidebars.js. Create a navigation.json inside your docs/ directory to define explicit sidebar navigation. See the Navigation Guide.
Replacing MDX & React Components
Convert custom <MyReactComponent /> tags into standard Markdown or use docmd’s native Containers.
Admonition Container Aliases
Docusaurus admonitions work out of the box without file modifications:
:::note→ renders ascallout info:::tip→ renders ascallout tip:::info→ renders ascallout info:::caution→ renders ascallout warning:::danger→ renders ascallout danger
For enhanced features (such as custom icons or custom badge colors), convert Docusaurus admonitions to native docmd syntax:
::: callout tip "Custom Title" icon:sparkles
This is a tip container.
:::
Tabbed Code Blocks
Docusaurus (React MDX):
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
<Tabs>
<TabItem value="apple" label="Apple" default>
Apple content.
</TabItem>
<TabItem value="orange" label="Orange">
Orange content.
</TabItem>
</Tabs>
docmd (Native Container):
::: tabs
== tab "Apple" icon:apple
Apple content.
== tab "Orange" icon:citrus
Orange content.
:::
Localisation (i18n)
If you used Docusaurus’s i18n features, move translated files from i18n/<locale>/docusaurus-plugin-content-docs/current/ into docmd’s locale directories (docs/en/, docs/de/, docs/zh/, etc.) and define locale codes in docmd.config.json. See the Localisation Guide.
Next Steps
- Customise site appearance in the Layout & UI Guide.
- Replace custom React hero landing pages with native Hero Containers.