You choose a generator once, when you run doxloop init --generator <name> (or accept the doxbrix default). It determines the file format your documentation is written in, the navigation and theme configuration format, and how you build and deploy the result.
Supported generators
| Generator | Package | Source format | Build output |
|---|---|---|---|
| Doxbrix | Included | Markdown and Doxbrix MDX | Doxbrix bundle (native deploy) |
| Docusaurus | @doxbrix/doxloop-generator-docusaurus | Markdown and MDX | build/ |
| MkDocs Material | @doxbrix/doxloop-generator-mkdocs | Material Markdown | site/ |
| Sphinx | @doxbrix/doxloop-generator-sphinx | reStructuredText | _build/html/ |
| Hugo | @doxbrix/doxloop-generator-hugo | Markdown | public/ |
| VitePress | @doxbrix/doxloop-generator-vitepress | Markdown | docs/.vitepress/dist/ |
| Markdoc | @doxbrix/doxloop-generator-markdoc | Markdoc | dist/ |
| Nextra | @doxbrix/doxloop-generator-nextra | MDX | out/ |
| Starlight | @doxbrix/doxloop-generator-starlight | Markdown and MDX | dist/ |
| Jekyll | @doxbrix/doxloop-generator-jekyll | Markdown and Liquid | _site/ |
| Prebuilt static HTML | @doxbrix/doxloop-generator-static | HTML | site/ |
Doxbrix is built into @doxbrix/doxloop and needs no extra install. Every other generator ships as its own package, so a project only carries the integration it actually uses.
Choosing
Use Doxbrix for native Doxbrix publishing (doxloop deploy) and interactive API endpoint blocks with a generated request example and "Try it" action. Choose another generator when an existing toolchain, plugin ecosystem, or specific static-hosting requirement matters more than native publishing — for example, MkDocs Material for an established Python-based docs site, or Hugo for an existing Hugo deployment pipeline.
Install a generator package
doxloop generator add mkdocsThis installs the package as a dev dependency using your project's detected package manager (pnpm, yarn, or npm, based on which lockfile is present). It does not change your project's selected generator — that's still whatever --generator you passed to init (or doxbrix by default). To start a new project with an external generator directly:
doxloop init . \
--source product=../my-product \
--generator mkdocsInspect generators
doxloop generator list
doxloop generator info mkdocs
doxloop generator doctorlist shows every official generator and its install state. info shows a specific generator's package, authoring skill, build command, and output directory. doctor checks the current project's selected generator is ready — installed, loadable, and (for external generators) its authoring skill present.
Remove a generator package
doxloop generator remove mkdocsFails if mkdocs is the project's currently selected generator; switch generators (see below) before removing its package.
Migrate to a different generator
Doxloop has no automatic generator migration — navigation, frontmatter, components, themes, and route rules aren't mechanically equivalent between generators.
doxloop init my-docs-v2 --source product=../my-product --generator hugoCopy the documentation object and sources array from your original .doxloop/project.json into the new project's file.
doxloop create "Preserve the existing documentation coverage and translate it into this generator's native format."Compare routes, navigation, metadata, components, and theme behavior between the two projects. Run doxloop test and the target generator's strict build.
Redirect changed public URLs before replacing the existing site. Keep the original project until the new site passes validation and route review.