Migrating from GitBook
Move a GitBook docs site into HolyDocs using the current export-and-cleanup workflow.
Overview
GitBook migration is currently a manual export flow, not a one-command conversion. HolyDocs can host the exported content well, but you should expect to:
- Export Markdown from GitBook
- Initialize a HolyDocs project
- Rebuild navigation in
docs.json - Clean up GitBook-specific syntax
For most small and medium docs sites, this is still a straightforward migration.
Recommended Workflow
Export your GitBook space
In GitBook, go to your space settings and export the content as Markdown.
Place the files locally
Extract the export into a working directory in your repo. Keep the original folder around until you have verified the migration.
Initialize HolyDocs
Create a HolyDocs config in the same directory:
bashholydocs init
Rebuild navigation
Use your old SUMMARY.md structure as the source of truth and recreate the sidebar in docs.json.
Preview and fix syntax
Run holydocs check and holydocs dev, then update any GitBook-specific blocks that did not translate cleanly.
Deploy
Once everything looks right locally, connect the repo in HolyDocs and run holydocs deploy.
Current CLI Support
The holydocs migrate gitbook command is intentionally lightweight today:
bashholydocs migrate gitbook
It prints the current manual export steps. It does not automatically convert SUMMARY.md, .gitbook.yaml, or GitBook block syntax yet.
Navigation Mapping
GitBook commonly uses SUMMARY.md as the navigation source. In HolyDocs, you rebuild that structure in docs.json.
markdown# Table of contents## Getting Started* [Introduction](README.md)* [Quickstart](getting-started/quickstart.md)* [Installation](getting-started/installation.md)
json{ "navigation": { "groups": [ { "group": "Getting Started", "pages": [ "introduction", "getting-started/quickstart", "getting-started/installation" ] } ] }}
Map file paths to page slugs by removing the extension. README.md usually becomes introduction.mdx or index.mdx, depending on how you want the URL structure to work.
Syntax Cleanup
GitBook exports often contain syntax that should be rewritten into HolyDocs components.
Hint Blocks
markdown{% hint style="info" %}This is an informational hint.{% endhint %}
mdx<Callout type="info"> This is an informational hint.</Callout>
Tabs
markdown{% tabs %}{% tab title="JavaScript" %}```javascriptconst response = await fetch('/api');```{% endtab %}{% endtabs %}
mdx<Tabs> <Tab title="JavaScript"> ```javascript const response = await fetch('/api'); ``` </Tab></Tabs>
Details Blocks
html<details> <summary>Click to expand</summary> Detailed content here.</details>
mdx<Accordion title="Click to expand"> Detailed content here.</Accordion>
Verification Checklist
After migration, validate and preview your converted project:
bashholydocs checkholydocs dev
Open http://localhost:3333 and verify:
- Navigation structure matches the old GitBook layout
- Pages render without raw GitBook block syntax
- Images load correctly
- Internal links still point at valid pages
Common Issues
Search for {% in the exported content. Those blocks need manual conversion to HolyDocs components or plain Markdown.
Download the assets into your docs repo and replace the remote URLs with local /images/... paths where possible.
GitBook UI settings do not map automatically. Recreate branding in docs.json, especially name, logo, theme, and colors.primary.