@docusaurus/plugin-content-docs plugin can support multi-instance.
This feature is only useful for versioned documentations. It is recommended to be familiar with docs versioning before reading this page.
Sometimes you want a Docusaurus site to host 2 distinct sets of documentation (or more).
These documentations may even have different versioning/release lifecycles.
If you build a cross-platform mobile SDK, you may have 2 documentations:
- Android SDK documentation (
- iOS SDK documentation (
In such case, you can use a distinct docs plugin instance per mobile SDK documentation.
If each documentation instance is very large, you should rather create 2 distinct Docusaurus sites.
If someone edits the iOS documentation, is it really useful to rebuild everything, including the whole Android documentation that did not change?
Sometimes, you want some documents to be versioned, while other documents are more "global", and it feels useless to version them.
We use this pattern on the Docusaurus website itself:
Let's consider we 2 documentations:
- Product: some versioned doc about your product
- Community: some unversioned doc about the community around your product
You have to use twice the same plugin in your site configuration.
@docusaurus/preset-classic already includes a docs plugin instance for you!
When using the preset:
When not using the preset:
Don't forget to assign a unique
id attribute to plugin instances.
We consider that the
product instance is the most important one, and make it the "default" instance by not assigning any id.
Each instance will store versioned docs in a distinct folder.
The default plugin instance will use these paths:
The other plugin instances (with an
id attribute) will use these paths:
You can omit the
id attribute (defaults to
default) for one of the docs plugin instances.
The instance paths will be simpler, and retro-compatible with a single-instance setup.
Each plugin instance will have its own cli command to tag a new version. They will be displayed if you run:
To version the product/default docs plugin instance:
To version the non-default/community docs plugin instance:
Each docs-related theme navbar items take an optional
For example, if you want to have one version dropdown for each mobile SDK (iOS and Android), you could do: