機能

  • ドキュメントの作成者からはほとんど手間がかかりません。プレーンテキストでも十分ですが、Markdownもサポートされており、より高度な、または構造化された出力のためには、HTMLタグやDoxygenの特殊コマンドの一部を使用できます。
  • クロスプラットフォーム対応:Windowsおよび多くのUnix系(Linux、macOSを含む)で動作します。
  • 未記述のコードからでも、インデックス付け、整理、および閲覧可能で相互参照された出力を生成します。
  • 解析されたソースから構造化されたXML出力を生成し、これは外部ツールで利用できます。
  • C/C++、Lex、Java、(CorbaおよびMicrosoft) Java、Python、VHDL、PHP IDL、C#、Fortran、Objective-C 2.0、およびある程度のD言語のソースコードをサポートしています。
  • ファイル、名前空間、パッケージ、クラス、構造体、共用体、テンプレート、変数、関数、typedef、列挙型、およびdefineのドキュメント作成をサポートしています。
  • Javadoc (1.1)、qdoc3 (部分的に)、およびECMA-334 (C#仕様) と互換性があります。
  • オプションの編集とDoxygenの実行を容易にするGUIフロントエンド(Doxywizard)が付属しています。このGUIはWindows、Linux、macOSで利用可能です。
  • HTML(クリック可能なイメージマップとして)および LaTeX(Encapsulated PostScript画像として)でクラス図とコラボレーション図を自動生成します。
  • Graphvizツールキットのdotツールを使用して、インクルード依存関係グラフ、コラボレーション図、呼び出しグラフ、ディレクトリ構造グラフ、およびグラフィカルなクラス階層グラフを生成します。
  • エンティティをトピックにグループ化し、トピックの階層を作成できます。
  • 柔軟なコメント配置:ヘッダーファイル(エンティティの宣言前)、ソースファイル(エンティティの定義前)、または個別のファイルにドキュメントを配置できます。
  • クラスのすべてのメンバー(継承されたメンバーを含む)のリストを、それぞれの保護レベルとともに生成します。
  • オンライン形式(XHTMLおよびUNIX manページ)とオフライン形式(LaTeXおよびRTF)でドキュメントを同時に出力します(必要に応じていずれかを無効にできます)。すべての形式は読みやすさのために最適化されています。
    さらに、MicrosoftのHTML Help Workshop(Windowsのみ)を使用してHTML出力から圧縮HTMLを生成でき、LaTeX出力からPDFを生成できます。
  • HTML Help、docsets、Qt-Help、eclipse helpなど、様々なサードパーティのヘルプ形式をサポートしています。
  • 条件付きコードフラグメントの適切な解析を可能にし、マクロ定義のすべてまたは一部の展開を可能にするフルCプリプロセッサを内蔵しています。
  • public、protected、privateセクション、およびQt特有のシグナル・スロットセクションを自動的に検出します。プライベートクラスメンバーの抽出はオプションです。
  • ドキュメント化されたクラス、ファイル、名前空間、メンバーへの参照を自動的に生成します。グローバル関数、グローバル変数、typedef、define、列挙型のドキュメント作成もサポートしています。
  • 基底/スーパークラスおよび継承/オーバーライドされたメンバーへの参照は自動的に生成されます。
  • クラスおよびメンバーのドキュメント内で文字列や単語を検索するための、高速なランクベースの検索エンジン(PHPベース)を内蔵しています。
  • 入力と同時にシンボルを検索するJavaScriptベースのライブ検索機能(小規模から中規模プロジェクト向け)を内蔵しています。
  • ドキュメントに通常のHTMLタグを入力できます。Doxygenはそれらを自動的に対応するLaTeX、RTF、manページ形式に変換します。
  • 他の(Doxygenでドキュメント化された)プロジェクト(または同じプロジェクトの別の部分)用に生成されたドキュメントへの参照を、場所に関係なく作成できます。
  • ドキュメントと自動的に相互参照されるソースコードの例を含めることができます。
  • 未記述のクラスの含めることもサポートされており、実装の詳細を調べることなく、(大規模な)コードの構造とインターフェースを迅速に学習できます。
  • (ドキュメント化された)エンティティと、ソースコード内のその定義との自動相互参照が可能です。
  • すべてのソースコードフラグメントは、読みやすさのために構文ハイライトされます。
  • ドキュメントに関数/メンバー/クラスの定義を含めることができます。
  • すべてのオプションは、編集しやすく、(オプションで)注釈付きの設定ファイルから読み込まれます。
  • ドキュメントと検索エンジンは、ドキュメントを再生成することなく、別の場所またはマシンに転送できます。
  • 多くの異なる文字エンコーディングをサポートし、内部的には生成される出力にはUTF-8を使用します。
  • Doxygenは、各ページのレイアウトを変更するために使用および編集できるレイアウトを生成できます。
  • 出力を微調整するための100以上の設定可能なオプションがあります。
  • 大規模なプロジェクトにも容易に対応できます。

Doxygenは現在、Doxygenがサポートする言語で書かれたあらゆるプロジェクトで使用できますが、元々はQt SoftwareのQtツールキットを使用するプロジェクト向けに特別に設計されました。私はDoxygenを「Qt互換」にしようと試みました。つまり、DoxygenはQtソースコードに含まれるドキュメントを読み取り、Qt Softwareによって生成されるものと非常によく似たクラスブラウザを作成できます。Doxygenは、シグナルやスロットなど、Qtが使用するC++拡張機能や、Qtソースで使用される多くのマークアップコマンドを理解します。

Doxygenはまた、DoxygenまたはQtの非公開クラスブラウザジェネレータで生成された既存のドキュメントへのリンクを自動的に生成できます。Qtベースのプロジェクトの場合、これはQtツールキットに属するメンバーやクラスを参照するたびに、Qtドキュメントへのリンクが生成されることを意味します。これは、そのドキュメントがどこにあるかに関係なく行われます!

次のセクションに進むか、インデックスに戻ります。