Skip to main content

Preset Stack

Use this inventory to answer four questions for every package behind @cbnventures/docusaurus-preset-nova: who installs it, how Nova represents it, when it runs, and what a site author does with it.

Installation ownership

  • Installed with Nova means the package is a direct dependency of the preset. A consuming site should not add it merely to use Nova's feature.
  • Supplied by the site means the package is a peer dependency. It must resolve from the consuming Docusaurus project.

The exact supported versions live only in the preset's package.json; this page deliberately does not duplicate them.

Docusaurus Plugins Installed with Nova

PackageRepresentation in NovaActivationSite-author usage
@docusaurus/plugin-content-docsplugins.docsAlways includedAuthor files under docs; configure forwarded docs options.
@docusaurus/plugin-content-blogplugins.blogIncluded unless falseAuthor files under blog; configure forwarded blog options.
@docusaurus/plugin-content-pagesplugins.pagesIncluded unless falseAuthor components or MDX under src/pages; configure pages options.
@docusaurus/plugin-sitemapplugins.sitemapIncluded unless falseConfigure output and route filtering through sitemap options.
@docusaurus/plugin-google-tag-manageranalytics.gtmOnly when configuredProvide a GTM containerId in Preset Options.
@docusaurus/plugin-svgrIncluded integrationAlways includedImport an SVG file as a React component; no separate plugin entry is needed.

Authoring and Theme Integrations Installed with Nova

PackageRepresentation in NovaActivationSite-author usage
@codesandbox/sandpack-reactNova CodeBlock live editorA code fence contains the live flagFollow Live Editor; no direct import is needed.
mermaidNova Mermaid MDX component and tooltip pluginRoot markdown.mermaid: true plus a Mermaid fenceFollow Mermaid Diagrams.
nprogressprogressBartrue or a configuration objectConfigure route-transition behavior in Progress Bar.
shikiNova pre-default rehype transformAutomatic for docs, blog, and MDX pagesAdd a language to a code fence; see Code Blocks.
@iconify/jsonBuild-time icon scanner datasetAutomatic; iconSafelist adds dynamic namesReference static prefix:name identifiers or safelist dynamic identifiers.
@iconify/reactOffline icon renderer in Nova theme and blocksAutomatic for icons selected by the scannerUse Nova icon-bearing config and blocks; do not import the transitive package.
@mdx-js/reactNova MDX providerAutomatic on MDX contentAuthor MDX normally; no direct setup is required.
rtlcssNova PostCSS RTL transformCurrent locale direction is rtlSet locale direction through Docusaurus i18n; Nova transforms CSS automatically.

SVGR Usage

SVGR is always registered by the preset. Import a local SVG as a component without adding @docusaurus/plugin-svgr to the site's plugin list.

src/pages/index.tsx
tsx
import Logo from '@site/static/img/logo.svg';

export default function Home() {
  return <Logo title="Site logo" />;
}

Iconify Usage

Nova scans docs, blog, src, and the resolved themeConfig for static Iconify identifiers. It reads @iconify/json only while building and registers the discovered icons for the offline @iconify/react renderer. This keeps entire icon collections out of the browser bundle.

docusaurus.config.ts
ts
{
  preset: 'envoy',
  iconSafelist: [
    'logos:slack',
    'mdi:rocket-launch',
  ],
}

Use iconSafelist only when an identifier is assembled dynamically and therefore cannot be found in source text.

Search Pipeline Installed with Nova

All packages in this table are dormant when search: false. Configure the feature through Search.

PackageRepresentation in NovaActivationSite-author usage
cheerioBuild-time HTML content extractorSearch enabled during a production buildNo direct use; Nova extracts titles, headings, metadata, and body text.
lunrSearch index and query engineSearch enabledConfigure indexed content and result behavior through search.
lunr-languagesNon-English analyzerssearch.language contains non-English codesList the required language codes in search.language.
mark.jsIn-page result highlighterhighlightSearchTermsOnTargetPage: trueKeep the default or disable target-page highlighting.

Nova and Docusaurus Infrastructure Installed with Nova

These packages support the preset's implementation. They do not create additional site configuration fields.

PackageRepresentation in NovaActivationSite-author usage
@cbnventures/novaShared logger/toolkit and theme-nova CLIBuild tooling and CLI commandsUse internationalization commands; no direct toolkit import is required.
@docusaurus/theme-commonDocusaurus theme components, hooks, and helpersAutomatic throughout the themeConfigure Nova's Theme Config; no direct import is required.
@docusaurus/theme-translationsUpstream theme translation registryTranslation loading and i18n CLIConfigure Docusaurus locales and run the Nova i18n commands.
@docusaurus/utils-validationPreset option schemasEvery Docusaurus config loadFix any reported invalid preset setting; no direct API use is needed.

CLI Dependencies Installed with Nova

These packages power the theme-nova executable shipped by the preset. They never enter the site bundle.

PackageRepresentation in NovaActivationSite-author usage
commanderCLI command parserAny theme-nova invocationChoose i18n sync, i18n check, or i18n coverage and their flags.
chalkCLI terminal stylingCLI writes status or diagnosticsNo direct use.
promptsInteractive CLI promptsi18n sync finds orphaned translationsConfirm whether real orphaned translations should be removed.

Peer Dependencies Supplied by the Site

PackageRepresentation in NovaActivationSite-author usage
@docusaurus/corePreset host and plugin lifecycleAlways requiredInstall Docusaurus in the consuming site and register the Nova preset.
reactComponent runtimeAlways requiredSupplied by the Docusaurus site; use React normally in pages and MDX components.
react-domBrowser and server rendererAlways requiredSupplied by the Docusaurus site; no Nova-specific setup is required.
@node-rs/jiebaOptional Chinese search tokenizersearch.language contains 'zh'Install it in the site only when Chinese search is enabled.
Chinese search only
bash
npm install @node-rs/jieba

Activation at a Glance

  • Automatic: docs, blog, pages, sitemap, SVGR, Shiki, icon scanning, theme infrastructure, bundle-size checking, and locale-aware RTL processing.
  • Nova preset option: GTM through analytics.gtm, search through search, route progress through progressBar, and dynamic icons through iconSafelist.
  • Root Docusaurus option: Mermaid parsing through markdown.mermaid: true.
  • Optional site install: @node-rs/jieba only for Chinese search.

The dependency ledger is checked against the preset's package.json in the test suite. Adding a runtime dependency or peer without documenting it causes the preset tests to fail.