Skip to main content

Getting Started with doxygen2docusaurus

license GitHub Repo stars

Dedicated Pages for Different Audiences

To accommodate the diverse requirements of its audience, this site provides distinct pages: User's Guide, Contributor's Guide and Maintainer's Guide. Each guide is tailored to ensure users can efficiently access the information and resources most relevant to their specific roles or requirements.

The doxygen2docusaurus project is a command-line tool that bridges the gap between Doxygen-generated API documentation and modern Docusaurus websites. It converts Doxygen XML output into CommonMark files optimised for Docusaurus, enabling seamless integration of comprehensive API reference documentation within your project's documentation site.

Features & Benefits

Professional documentation pages

The tool leverages Docusaurus's clean, modern interface to create visually appealing and professional-looking documentation pages.

doxygen2docusaurus function

Enhanced navigation experience

To improve the user navigation experience, for each reference sub-site, the tool generates a dropdown menu for the top navigation bar and a sidebar. For each page, it also creates the headers necessary for the table of contents.

doxygen2docusaurus navigation

Customisable topic organisation

The tool enables grouping of API reference documentation by topics, which can be customised to suit your project's requirements. This feature enhances the organisation of documentation, making it easier for users to locate relevant information. Each topic page is organised into clear sections, with comprehensive indices for all sections displayed at the beginning of the page for quick navigation.

doxygen2docusaurus topics

Streamlined documentation workflow

doxygen2docusaurus is a versatile CLI application that can be employed in virtually any scenario, from manual invocation to automated CI/CD environments, with the generated pages either forming part of the repository or being created dynamically during website publishing.

However, the recommended approach is to execute the tool on the development machine where the website is maintained, allowing the resulting CommonMark files to be seamlessly integrated into existing Docusaurus sites and stored within the project repository.

Whilst this approach requires additional repository space, the significant advantage lies in enabling straightforward tracking of documentation changes.

Installation

@xpack/doxygen2docusaurus is an npm package available from the npmjs.com public registry and may be installed via npm.

tip

The most straightforward method to obtain the installation command is from the website's homepage. Simply hover the mouse over the command, and a copy button will appear on the right side. Click it to copy the command.

For comprehensive installation instructions, please visit the Installation Guide page.

Status

The @xpack/doxygen2docusaurus project is functional but it is still young and may require further development and refinement.

Demo sites

During development, several sites were employed to test and validate the converter.

Doxygen website

The primary demonstration site is a replica of Doxygen's own website, which was originally divided into two separate sites: the user manual and the reference documentation. Both have been consolidated into a single Docusaurus site featuring two reference sub-sites.

The Doxygen replica site is publicly available in the xpack/web-doxygen repository and the site is available at https://xpack.github.io/web-doxygen/.

doxygen manual doxygen internals

LLVM API reference

The LLVM API reference is another example of a site that has been successfully converted using doxygen2docusaurus.

Unfortunately, the site is exceptionally large (20,000+ pages, 1GB+), and Docusaurus does not handle such large sites effectively (builds require considerable time and memory consumption is very high), rendering it unsuitable as an exemplar for a Docusaurus site.

The LLVM replica site is publicly available in the xpack/web-llvm repository.

µTest++ project

The first production-grade website featuring reference pages generated by doxygen2docusaurus is the µTest++ project, which is a C++ unit testing framework.

tsdoc2docusaurus

The tsdoc2docusaurus project is a companion project that provides functionality to convert TSDoc reference pages to Docusaurus .md files.

Whilst it is less refined and not yet available as an npm package, it is largely functional and can be employed to document TypeScript projects that utilise TSDoc comments. The API pages of this website serve as an example of its output.

Release schedule

There are no scheduled releases; the project adheres to a continuous release approach, with updates deployed as development progresses.

Releases

A comprehensive list of releases may be found on the Releases pages.

Change log

The release notes and change log may be accessed within the repository's CHANGELOG.md file.

Support & feedback

For prompt support and to provide feedback, it is recommended to utilise GitHub Discussions.

For more detailed information, please visit the Help Centre page.

Compatibility notices

According to SemVer rules:

Major version X (X.y.z | X > 0) MUST be incremented if any backwards incompatible changes are introduced to the public API.

The breaking changes introduced in each major release are documented in reverse chronological order. This information provides a comprehensive overview of significant modifications and is readily available in the respective release notes.

v1.x (2025-08-03)

The first public release.

Licence

Unless explicitly stated otherwise, the original content is distributed under the terms of the MIT Licence, with all rights reserved by Liviu Ionescu.

MacStadium

Credits

Special thanks to MacStadium for providing the Apple Silicon development infrastructure as part of their generous Free and Open Source Software programme.

Special thanks to the doxygen-awesome-css plugin for providing inspiration for the overall visual design of the pages.

Thanks to Shields IO for the badges.

Enjoyed Using This Project? Please Let Us Know!

If you have found this project valuable, we would appreciate hearing from you! Here are some ways you can demonstrate your support:

  • Donate: Every contribution, regardless of size, helps sustain the xPack . Your generosity maintains the development and ensures continued progress.
  • Star the project on GitHub: Assist others in discovering our work by giving it a star — it truly makes a difference!
  • Follow Us on X/Twitter: Stay informed about our latest updates, releases, and news by following our account.

Your support is greatly appreciated and motivates us to continue improving!