or run

npx @tessl/cli init
Log in

Version

Tile

Overview

Evals

Files

docs

client-hooks.mdindex.mdplugin-configuration.mdsidebar-system.mdversion-management.md
tile.json

index.mddocs/

Docusaurus Plugin Content Docs

The @docusaurus/plugin-content-docs is a TypeScript plugin for Docusaurus that provides comprehensive documentation functionality. It handles markdown processing, versioning, sidebar generation, internationalization, and routing for documentation sites, transforming markdown files into structured, searchable documentation with navigation and theming support.

Package Information

  • Package Name: @docusaurus/plugin-content-docs
  • Package Type: npm
  • Language: TypeScript
  • Installation: npm install @docusaurus/plugin-content-docs

Core Imports

import pluginContentDocs from "@docusaurus/plugin-content-docs";

For server-side utilities:

import {
  CURRENT_VERSION_NAME,
  VERSIONED_DOCS_DIR,
  filterVersions,
  readVersionNames
} from "@docusaurus/plugin-content-docs/server";

For client-side React hooks:

import {
  useDocsData,
  useActivePlugin,
  useVersions,
  useActiveVersion,
  useDoc,
  useDocsSidebar
} from "@docusaurus/plugin-content-docs/client";

Basic Usage

import type { Config } from '@docusaurus/types';

const config: Config = {
  plugins: [
    [
      '@docusaurus/plugin-content-docs',
      {
        id: 'default',
        path: 'docs',
        routeBasePath: 'docs',
        sidebarPath: './sidebars.js',
        showLastUpdateTime: true,
        showLastUpdateAuthor: true,
      },
    ],
  ],
};

export default config;

Architecture

The plugin is built around several key systems:

  • Plugin Architecture: Server-side plugin factory that integrates with Docusaurus build system
  • Content Processing: MDX-based markdown processing with front matter support and asset handling
  • Version Management: Multi-version documentation support with independent content paths and sidebars
  • Sidebar System: Automated and manual sidebar generation with hierarchical navigation
  • Client Integration: React hooks and components for accessing docs data and navigation state
  • Routing System: Dynamic route generation for docs, tags, and generated category indices
  • CLI Integration: Command-line tools for version management and content operations

Capabilities

Plugin Configuration

Core plugin factory function and options validation for setting up documentation functionality.

function pluginContentDocs(
  context: LoadContext,
  options: PluginOptions,
): Promise<Plugin<LoadedContent>>;

function validateOptions(
  args: OptionValidationContext<Options | undefined, PluginOptions>
): PluginOptions;

Plugin Configuration

Client-Side Hooks

React hooks for accessing documentation data, navigation state, and sidebar information in Docusaurus themes.

function useDocsData(pluginId: string | undefined): GlobalPluginData;
function useActivePlugin(options?: UseDataOptions): ActivePlugin | undefined;
function useVersions(pluginId: string | undefined): GlobalVersion[];
function useActiveVersion(pluginId: string | undefined): GlobalVersion | undefined;

Client Hooks

Version Management

Version handling system for managing multiple documentation versions with independent content and configuration.

function filterVersions(
  availableVersions: string[],
  options: Pick<PluginOptions, 'onlyIncludeVersions' | 'includeCurrentVersion' | 'lastVersion'>
): string[];

function readVersionNames(versionsJsonFile: string): Promise<string[]>;

Version Management

Sidebar System

Sidebar generation and processing system for creating hierarchical navigation structures from content organization.

function loadSidebars(
  sidebarFilePath: string | false | undefined,
  options: SidebarProcessorParams,
): Promise<Sidebars>;

const DefaultSidebarItemsGenerator: SidebarItemsGeneratorOption;

Sidebar System

Types

interface PluginOptions extends MetadataOptions, PathOptions, VersionsOptions, MDXOptions, SidebarOptions {
  id: string;
  include: string[];
  exclude: string[];
  docsRootComponent: string;
  docVersionRootComponent: string;
  docRootComponent: string;
  docItemComponent: string;
  docTagDocListComponent: string;
  docTagsListComponent: string;
  docCategoryGeneratedIndexComponent: string;
  sidebarItemsGenerator: SidebarItemsGeneratorOption;
  tagsBasePath: string;
}

interface LoadedContent {
  loadedVersions: LoadedVersion[];
}

interface GlobalPluginData {
  path: string;
  versions: GlobalVersion[];
  breadcrumbs: boolean;
}

interface GlobalVersion {
  name: string;
  label: string;
  isLast: boolean;
  path: string;
  mainDocId: string;
  docs: GlobalDoc[];
  draftIds: string[];
  sidebars?: {[sidebarId: string]: GlobalSidebar};
}

interface GlobalDoc {
  id: string;
  path: string;
  sidebar?: string;
  unlisted?: boolean;
}