Diplodoc v5.0: A New Level of Performance

Article last updated at August 11, 2026

Key Improvements

Performance Optimization

  • Faster CLI tools (3x baseline speedup)
  • Multithreaded document processing with up to 10x speedup on multi-core systems
  • Caching and optimized resource loading
  • Optimized handling of large projects

Comparison with the previous version:

Performance improvement work has been underway since version 4.39. A baseline threefold speedup was achieved through optimized document processing algorithms, improved caching, and efficient resource usage. Parallel document processing further accelerates builds depending on the number of cores in the system. When working with large projects on multi-core servers, a 10x speedup is observed.

The system handles documentation with over 50,000 articles, including individual articles containing more than 10 MB of text and markup.

Extension API and Hook System

Documentation

  • An extension system for developers with full TypeScript support
  • Built-in hook system for extending functionality at various stages
  • Modular design for creating independent, reusable extensions
  • Documented API for creating plugins and integrations
  • Examples of integration with popular tools
  • Extension lifecycle management system

Several extensions have been developed on the new system, which can be used as examples for creating your own extensions:

  • GenericIncluder - an extension for automatic table of contents (TOC) generation. Analyzes the file system, finds Markdown files, and automatically creates a table of contents structure based on their location and content. When generating the table of contents, it takes into account the file title and its weight specified in the frontmatter.

  • GithubVcsConnector - an extension for collecting information about contributors and article authors from GitHub. Collects metadata about commits, authors, and contributors and displays it in the documentation interface.

  • AlgoliaSearch - integration with Algolia for full-text search. Indexes documentation content in Algolia, configures search suggestions and filters. Performs documentation search with support for multiple languages.

  • LocalSearch - an extension for local documentation search using the lunr.js library. Creates a client-side search index. Supports fuzzy search, phrase search, and relevance-based result ranking. For projects requiring offline operation or data confidentiality constraints.

These extensions demonstrate various capabilities of the new extension system and can serve as a starting point for developing your own plugins. Each of them implements its own set of hooks and uses different aspects of the extension API.

Improved Table of Contents (TOC) System

  • Extended variable templating support for the href and label fields
  • Automatic extraction of headings from files for the name field
  • Improved handling of includes in TOC with more careful file system operations

The table of contents (TOC) system now has extended variable templating support for dynamically generating links and labels. The name field automatically extracts the heading from the file referenced by the table of contents item. Improved handling of includes in TOC when working with the file system.

Redirect system

By default, a simple file-to-file redirect system is implemented, which works based on browser redirects. For more complex scenarios that require generating configurations for nginx or other proxy servers, a set of hooks has been added to the system for convenient work with redirects. Redirect functionality can be extended through external extensions based on the Extension API.

Improved configuration system

The naming system for startup parameters has been systematized:

  • --disableLiquid` → `--no-template
  • --lintDisabled` → `--no-lint
  • --needToSanitizeHtml false` → `--no-sanitize-html

This systematization makes the command-line interface more understandable and predictable for users.

Project build configuration via command-line parameters and via the configuration file has been synchronized. Now, for all main parameters in the configuration file, there is a corresponding command-line parameter. New parameters have been added:

  • ``--langs` - managing documentation languages
  • ``--search` - configuring search parameters
  • ``--changelogs` - managing the changelog list
  • ``--mtimes` - configuring timestamps

More details in the updated section YFM project settings

Other technical improvements

  • Landing pages support frontmatter for configuring metadata and behavior
  • Using Latex and Mermaid syntax is available by default
  • Vulnerabilities that allowed access to files outside the project have been fixed