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