Fonctionnalités


  • Nécessite très peu de frais généraux de la part du rédacteur de la documentation. Le texte brut fera l'affaire, Markdown est pris en charge et pour une sortie plus sophistiquée ou structurée, des balises HTML et/ou certaines des commandes spéciales de Doxygen peuvent être utilisées.
  • Multiplateforme : fonctionne sur Windows et de nombreuses versions d'Unix (y compris Linux et macOS).
  • Indexe, organise et génère une sortie consultable et référencée même à partir de code non documenté.
  • Génère une sortie XML structurée pour les sources analysées, qui peut être utilisée par des outils externes.
  • Prend en charge C/C++, Lex, Java, (Corba et Microsoft) Java, Python, VHDL, PHP IDL, C#, Fortran, Objective-C 2.0 et dans une certaine mesure les sources D.
  • Prend en charge la documentation des fichiers, des espaces de noms, des packages, des classes, des structures, des unions, des modèles, des variables, des fonctions, des définitions de type, des énumérations et des définitions.
  • Compatible Javadoc (1.1), qdoc3 (partiellement) et ECMA-334 (spécification C#).
  • Livré avec une interface graphique (Doxywizard) pour faciliter la modification des options et exécuter Doxygen. L'interface graphique est disponible sur Windows, Linux et macOS.
  • Génère automatiquement des diagrammes de classe et de collaboration au format HTML (sous forme de cartes d'images cliquables) et latex (sous forme d'images PostScript encapsulées).
  • Utilise l'outil point de la boîte à outils Graphviz pour générer des graphiques de dépendance d'inclusion, des diagrammes de collaboration, des graphiques d'appel, des graphiques de structure de répertoire et des graphiques de hiérarchie de classes graphiques.
  • Permet de regrouper des entités dans des rubriques et de créer une hiérarchie de rubriques.
  • Placement flexible des commentaires : vous permet de placer la documentation dans le fichier d'en-tête (avant la déclaration d'une entité), le fichier source (avant la définition d'une entité) ou dans un fichier séparé.
  • Génère une liste de tous les membres d'une classe (y compris les membres hérités) ainsi que leur niveau de protection.
  • Génère simultanément la documentation au format en ligne (page de manuel XHTML et UNIX) et au format hors ligne (latex et RTF) (l'un ou l'autre de ces formats peut être désactivé si vous le souhaitez). Tous les formats sont optimisés pour faciliter la lecture. De plus, le HTML compressé peut être généré à partir de la sortie HTML à l'aide de l'atelier d'aide HTML de Microsoft (Windows uniquement) et le PDF peut être généré à partir de la sortie latex.png.
  • Prise en charge de divers formats d'aide tiers, notamment l'aide HTML, les docsets, Qt-Help et l'aide Eclipse.
  • Inclut un préprocesseur C complet pour permettre une analyse correcte des fragments de code conditionnel et pour permettre l'expansion de tout ou partie des définitions de macros.
  • Détecte automatiquement les sections publiques, protégées et privées, ainsi que les sections de signal et d'emplacements spécifiques à Qt. L'extraction des membres de classe privés est facultative.
  • Génère automatiquement des références aux classes, fichiers, espaces de noms et membres documentés. La documentation des fonctions globales, des variables globales, des typedefs, des définitions et des énumérations est également prise en charge.
  • Les références aux classes de base/super et aux membres hérités/remplacés sont générées automatiquement.
  • Inclut un moteur de recherche rapide basé sur le classement pour rechercher des chaînes ou des mots dans la documentation des classes et des membres (basé sur PHP).
  • Inclut une fonction de recherche en direct basée sur JavaScript pour rechercher des symboles au fur et à mesure que vous tapez (pour les projets de petite à moyenne taille).
  • Vous pouvez saisir des balises HTML normales dans votre documentation. Doxygen les convertira automatiquement en leurs équivalents latex , RTF et pages de manuel.
  • Autorise les références à la documentation générée pour d'autres projets (documentés par Doxygen) (ou une autre partie du même projet) de manière indépendante de l'emplacement.
  • Permet l'inclusion d'exemples de code source qui sont automatiquement référencés avec la documentation.
  • L'inclusion de classes non documentées est également prise en charge, ce qui permet d'apprendre rapidement la structure et les interfaces d'un (gros) morceau de code sans examiner les détails de l'implémentation.
  • Permet le référencement automatique des entités (documentées) avec leur définition dans le code source.
  • Tous les fragments de code source sont mis en évidence par la syntaxe pour faciliter la lecture.
  • Permet d'inclure des définitions de fonctions/membres/classes dans la documentation.
  • Toutes les options sont lues à partir d'un fichier de configuration facile à éditer et (éventuellement) annoté.
  • La documentation et le moteur de recherche peuvent être transférés vers un autre emplacement ou une autre machine sans régénérer la documentation.
  • Prend en charge de nombreux codages de caractères différents et utilise UTF-8 en interne et pour la sortie générée.
  • Doxygen peut générer une mise en page que vous pouvez utiliser et modifier pour changer la mise en page de chaque page.
  • Il existe plus de 100 options configurables pour affiner la sortie.
  • Peut gérer facilement de grands projets.

Bien que Doxygen puisse désormais être utilisé dans tout projet écrit dans un langage pris en charge par Doxygen, il a été initialement conçu spécifiquement pour être utilisé dans des projets utilisant la boîte à outils Qt de Qt Software. J'ai essayé de rendre Doxygen « compatible Qt ». C'est-à-dire que Doxygen peut lire la documentation contenue dans le code source de Qt et créer un navigateur de classes qui ressemble beaucoup à celui généré par Qt Software. Doxygen comprend les extensions C++ utilisées par Qt telles que les signaux et les slots et de nombreuses commandes de balisage utilisées dans les sources Qt.

Doxygen peut également générer automatiquement des liens vers la documentation existante générée avec Doxygen ou avec le générateur de navigateur de classes non public de Qt. Pour un projet basé sur Qt, cela signifie que chaque fois que vous faites référence à des membres ou des classes appartenant à la boîte à outils Qt, un lien sera généré vers la documentation Qt. Cela se fait indépendamment de l'emplacement de cette documentation !