Skip to main content

Plugin Options

Configure the Docusaurus content plugins that Nova includes. These fields live under the Nova preset's plugins option, but the values and defaults in this reference belong to the bundled Docusaurus plugins—not to Nova's visual preset system.

Two configuration layers

  • Preset Options documents settings Nova owns and labels their Nova defaults.
  • This page documents settings Nova forwards and labels their Docusaurus defaults.

Nova currently pins Docusaurus 3.10.2. The preset accepts additional upstream fields for forward compatibility, while nova-config.d.ts explicitly types the complete surface documented here.

Inclusion and Processing

docusaurus.config.ts
ts
presets: [[
  '@cbnventures/docusaurus-preset-nova',
  {
    preset: 'envoy',
    plugins: {
      docs: { /* Docusaurus docs options */ },
      blog: { /* Docusaurus blog options, or false */ },
      pages: { /* Docusaurus pages options, or false */ },
      sitemap: { /* Docusaurus sitemap options, or false */ },
    },
  },
]],
Nova preset fieldIncluded by NovaForwarded to
plugins.docsAlways@docusaurus/plugin-content-docs
plugins.blogUnless false@docusaurus/plugin-content-blog
plugins.pagesUnless false@docusaurus/plugin-content-pages
plugins.sitemapUnless false@docusaurus/plugin-sitemap

Nova preserves the supplied object and prepends its Shiki transform to beforeDefaultRehypePlugins for docs, blog posts, and MDX pages. Your own entries still run afterward. All other defaults below come directly from Docusaurus.

The repeated standard exclusions default means:

ts
[
  '**/_*.{js,jsx,ts,tsx,md,mdx}',
  '**/_*/**',
  '**/*.test.{js,jsx,ts,tsx}',
  '**/__tests__/**',
]

Docs Plugin

Files, Routes, and Navigation

OptionTypeDocusaurus defaultDescription
docs.idstring'default'Identify this plugin instance.
docs.pathstring'docs'Read docs from this site-relative directory.
docs.routeBasePathstring'docs'Mount docs at this URL base path. Use '/' for the site root.
docs.sidebarPathstring | falseundefinedLoad a sidebar file, disable sidebars with false, or autogenerate one.
docs.includestring[]['**/*.{md,mdx}']Include Markdown files matching these globs.
docs.excludestring[]Standard exclusionsExclude matching files after include.
docs.editUrlstring | functionundefinedBuild “Edit this page” links; omission disables them.
docs.editCurrentVersionbooleanfalsePoint edit links at current docs instead of stored version files.
docs.editLocalizedFilesbooleanfalsePoint edit links at localized files instead of source files.
docs.showLastUpdateTimebooleanfalseShow each document's last update time.
docs.showLastUpdateAuthorbooleanfalseShow each document's last update author.
docs.numberPrefixParserboolean | functiontrueUse the built-in numeric-prefix parser, disable it, or provide a parser.
docs.breadcrumbsbooleantrueRender breadcrumbs on docs pages.
docs.sidebarCollapsiblebooleantrueAllow readers to collapse sidebar categories.
docs.sidebarCollapsedbooleantrueStart collapsible sidebar categories closed.

Versioning

OptionTypeDocusaurus defaultDescription
docs.lastVersionstringDerivedPrefer this version in navigation; otherwise use the newest stored version.
docs.onlyIncludeVersionsstring[]undefinedBuild only this subset of available versions.
docs.disableVersioningbooleanfalseIgnore stored versions and build only current docs.
docs.includeCurrentVersionbooleantrueInclude the current, unreleased docs.
docs.versionsRecord<string, object>{}Override display and routing for individual versions.
docs.versions.<name>.pathstringDerived from versionOverride the URL path segment; the preferred version normally uses ''.
docs.versions.<name>.labelstringDerived from versionOverride badges and dropdown labels; current docs normally use 'Next'.
docs.versions.<name>.banner'none' | 'unreleased' | 'unmaintained'Derived by statusOverride the version-status banner.
docs.versions.<name>.badgebooleanMultiple versions onlyOverride whether the version badge appears on documents.
docs.versions.<name>.noIndexbooleanfalsePrevent search engines from indexing this version.
docs.versions.<name>.classNamestring'docs-version-<name>'Override the class added to the document element.
docusaurus.config.ts
ts
plugins: {
  docs: {
    sidebarPath: './sidebars.ts',
    versions: {
      current: {
        label: 'Next',
        banner: 'unreleased',
      },
      '1.0.0': {
        label: '1.x',
        banner: 'unmaintained',
      },
    },
  },
}

Tags and Markdown

OptionTypeDocusaurus defaultDescription
docs.tagsstring | false | nullundefinedLoad a central tags file; omission still permits inline tag definitions.
docs.onInlineTags'ignore' | 'log' | 'warn' | 'throw''warn'Decide how Docusaurus reports inline tag definitions.
docs.tagsBasePathstring'tags'Mount tag pages under this docs-relative URL path.
docs.admonitionsboolean | objecttrueEnable admonitions or configure their keywords and default extension behavior.
docs.remarkPluginsarray[]Run these remark plugins after Docusaurus's pre-default phase.
docs.rehypePluginsarray[]Run these rehype plugins after Docusaurus's pre-default phase.
docs.recmaPluginsarray[]Run these recma plugins during MDX compilation.
docs.beforeDefaultRemarkPluginsarray[]Run these remark plugins before Docusaurus defaults.
docs.beforeDefaultRehypePluginsarray[]Run these rehype plugins before defaults; Nova prepends Shiki ahead of this list.

Components and Callbacks

OptionTypeDocusaurus defaultDescription
docs.docsRootComponentstring'@theme/DocsRoot'Wrap every page from this docs plugin instance.
docs.docVersionRootComponentstring'@theme/DocVersionRoot'Wrap every page in one docs version.
docs.docRootComponentstring'@theme/DocRoot'Wrap docs pages that use a sidebar.
docs.docItemComponentstring'@theme/DocItem'Render an individual document page.
docs.docTagDocListComponentstring'@theme/DocTagDocListPage'Render documents belonging to one tag.
docs.docTagsListComponentstring'@theme/DocTagsListPage'Render the docs tags index.
docs.docCategoryGeneratedIndexComponentstring'@theme/DocCategoryGeneratedIndexPage'Render generated category index pages.
docs.sidebarItemsGeneratorfunctionBuilt-in generatorCustomize the sidebar produced for autogenerated sections.

Blog Plugin

Files, Routes, and Listings

OptionTypeDocusaurus defaultDescription
blog.idstring'default'Identify this plugin instance.
blog.pathstring'blog'Read posts from this site-relative directory.
blog.routeBasePathstring'blog'Mount the blog at this URL base path.
blog.tagsBasePathstring'tags'Mount tag pages under this blog-relative path.
blog.pageBasePathstring'page'Mount paginated listing pages under this path.
blog.archiveBasePathstring | null'archive'Mount the archive here, or disable it with null.
blog.includestring[]['**/*.{md,mdx}']Include posts matching these globs.
blog.excludestring[]Standard exclusionsExclude matching files after include.
blog.postsPerPagenumber | 'ALL'10Control how many posts appear on each listing page.
blog.blogTitlestring'Blog'Set the blog's SEO title.
blog.blogDescriptionstring'Blog'Set the blog's SEO description.
blog.blogSidebarCountnumber | 'ALL'5Show this many recent posts in the sidebar; 0 disables it.
blog.blogSidebarTitlestring'Recent posts'Label the recent-posts sidebar.
blog.showReadingTimebooleantrueShow the calculated reading time.
blog.truncateMarkerRegExpBuilt-in HTML and JSX comment markersDetect the point separating a summary from the full post.
blog.sortPosts'ascending' | 'descending''descending'Sort posts by publish date.

Editing, Authors, and Tags

OptionTypeDocusaurus defaultDescription
blog.editUrlstring | functionundefinedBuild “Edit this page” links; omission disables them.
blog.editLocalizedFilesbooleanfalsePoint edit links at localized files.
blog.showLastUpdateTimebooleanfalseShow a post's last update time.
blog.showLastUpdateAuthorbooleanfalseShow a post's last update author.
blog.authorsMapPathstring'authors.yml'Load reusable author records from this blog-relative file.
blog.authorsBasePathstring'authors'Mount author pages under this blog-relative path.
blog.onInlineAuthors'ignore' | 'log' | 'warn' | 'throw''warn'Decide how Docusaurus reports inline author definitions.
blog.onUntruncatedBlogPosts'ignore' | 'log' | 'warn' | 'throw''warn'Decide how Docusaurus reports posts without a truncate marker.
blog.tagsstring | false | nullundefinedLoad a central tags file; omission still permits inline tag definitions.
blog.onInlineTags'ignore' | 'log' | 'warn' | 'throw''warn'Decide how Docusaurus reports inline tag definitions.

Feed

feedOptions defaults to an enabled RSS and Atom feed. Set feedOptions.type to null to disable feed generation.

OptionTypeDocusaurus defaultDescription
blog.feedOptionsobjectEnabled defaultsConfigure generated RSS, Atom, and JSON feeds.
blog.feedOptions.typestring | string[] | 'all' | null['rss', 'atom']Generate selected formats, all formats, or no feed.
blog.feedOptions.titlestring'<site title> Blog'Override the feed title.
blog.feedOptions.descriptionstring'<site title> Blog'Override the feed description.
blog.feedOptions.copyrightstring''Set the feed copyright notice.
blog.feedOptions.languagestringCurrent localeOverride the feed language.
blog.feedOptions.createFeedItemsfunctionBuilt-in item generatorTransform, filter, or replace generated feed items.
blog.feedOptions.limitnumber | false | null20Limit feed posts; false or null includes all posts.
blog.feedOptions.xsltboolean | null | object{ rss: null, atom: null }Enable built-in stylesheets, disable them, or provide per-format paths.
docusaurus.config.ts
ts
plugins: {
  blog: {
    feedOptions: {
      type: 'all',
      limit: 50,
      xslt: true,
    },
  },
}

Markdown, Components, and Callbacks

OptionTypeDocusaurus defaultDescription
blog.admonitionsboolean | objecttrueEnable admonitions or configure their keywords and default extension behavior.
blog.remarkPluginsarray[]Run these remark plugins after Docusaurus's pre-default phase.
blog.rehypePluginsarray[]Run these rehype plugins after Docusaurus's pre-default phase.
blog.recmaPluginsarray[]Run these recma plugins during MDX compilation.
blog.beforeDefaultRemarkPluginsarray[]Run these remark plugins before Docusaurus defaults.
blog.beforeDefaultRehypePluginsarray[]Run these rehype plugins before defaults; Nova prepends Shiki ahead of this list.
blog.blogListComponentstring'@theme/BlogListPage'Render blog listing pages.
blog.blogPostComponentstring'@theme/BlogPostPage'Render individual posts.
blog.blogTagsListComponentstring'@theme/BlogTagsListPage'Render the blog tags index.
blog.blogTagsPostsComponentstring'@theme/BlogTagsPostsPage'Render posts belonging to one tag.
blog.blogAuthorsListComponentstring'@theme/Blog/Pages/BlogAuthorsListPage'Render the authors index.
blog.blogAuthorsPostsComponentstring'@theme/Blog/Pages/BlogAuthorsPostsPage'Render posts belonging to one author.
blog.blogArchiveComponentstring'@theme/BlogArchivePage'Render the archive page.
blog.readingTimefunctionBuilt-in locale-aware calculatorCustomize reading-time calculation or hide it for selected posts.
blog.processBlogPostsasync functionNo-opTransform, filter, or reorder loaded blog posts before rendering.

Pages Plugin

OptionTypeDocusaurus defaultDescription
pages.idstring'default'Identify this plugin instance.
pages.pathstring'src/pages'Read standalone pages from this site-relative directory.
pages.routeBasePathstring'/'Mount standalone pages under this URL base path.
pages.includestring[]['**/*.{js,jsx,ts,tsx,md,mdx}']Include matching component and Markdown files.
pages.excludestring[]Standard exclusionsExclude matching files after include.
pages.editUrlstring | functionundefinedBuild edit links for MDX pages; omission disables them.
pages.editLocalizedFilesbooleanfalsePoint edit links at localized files.
pages.showLastUpdateTimebooleanfalseShow an MDX page's last update time.
pages.showLastUpdateAuthorbooleanfalseShow an MDX page's last update author.
pages.admonitionsboolean | objecttrueEnable admonitions or configure their keywords and default extension behavior.
pages.remarkPluginsarray[]Run these remark plugins after Docusaurus's pre-default phase.
pages.rehypePluginsarray[]Run these rehype plugins after Docusaurus's pre-default phase.
pages.recmaPluginsarray[]Run these recma plugins during MDX compilation.
pages.beforeDefaultRemarkPluginsarray[]Run these remark plugins before Docusaurus defaults.
pages.beforeDefaultRehypePluginsarray[]Run these rehype plugins before defaults; Nova prepends Shiki ahead of this list.
pages.mdxPageComponentstring'@theme/MDXPage'Render standalone MDX pages.

Sitemap Plugin

OptionTypeDocusaurus defaultDescription
sitemap.filenamestring'sitemap.xml'Write the sitemap under this build-output filename.
sitemap.ignorePatternsstring[][]Exclude routes matching these globs.
sitemap.lastmod'date' | 'datetime' | nullnullSelect the last-modified format or omit the entry.
sitemap.changefreq'hourly' | 'daily' | 'weekly' | 'monthly' | 'yearly' | 'always' | 'never' | null'weekly'Set the change-frequency hint or omit it.
sitemap.prioritynumber | null0.5Set the relative priority from 0 to 1, or omit it.
sitemap.createSitemapItemsasync functionBuilt-in generatorCustomize generated entries with access to routes and the default implementation.

What Nova Adds Around These Plugins

The forwarded fields above do not describe the complete preset assembly. Nova also includes SVGR, icon scanning, the bundle-size guard, Mermaid tooltip handling, its theme runtime, and conditional Google Tag Manager support. Preset Stack lists every included package and explains activation, representation, and user-facing usage consistently.