機能

  • ドキュメント作成者の負担が非常に少ないです。プレーンテキストで十分で、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(クリック可能なイメージマップとして)および{\LaTeX}(Encapsulated PostScriptイメージとして)で、クラス図とコラボレーション図を自動的に生成します。
  • Graphvizツールキットのdotツールを使用して、インクルード依存グラフ、コラボレーション図、コールグラフ、ディレクトリ構造グラフ、およびグラフィカルなクラス階層グラフを生成します。
  • エンティティをトピックにグループ化し、トピックの階層を作成できます。
  • 柔軟なコメント配置:ドキュメントをヘッダーファイル(エンティティの宣言の前)、ソースファイル(エンティティの定義の前)、または別のファイルに配置できます。
  • クラスのすべてのメンバー(継承されたメンバーを含む)のリストを、保護レベルとともに生成します。
  • オンライン形式(XHTMLおよびUNIX manページ)とオフライン形式({\LaTeX}およびRTF)で同時にドキュメントを出力します(これらは必要に応じて無効にできます)。すべての形式は読みやすさのために最適化されています。
    さらに、圧縮されたHTMLは、MicrosoftのHTML Help Workshop(Windowsのみ)を使用してHTML出力から生成でき、PDFは{\LaTeX}出力から生成できます。
  • HTML Help、docsets、Qt-Help、eclipse helpなどのさまざまなサードパーティヘルプ形式をサポートしています。
  • 条件付きコードフラグメントの適切な解析と、マクロ定義の全部または一部の展開を可能にするフルCプリプロセッサが含まれています。
  • パブリック、プロテクト、プライベートセクション、およびQt固有のsignalとslotsセクションを自動的に検出します。プライベートクラスメンバーの抽出はオプションです。
  • ドキュメント化されたクラス、ファイル、名前空間、およびメンバーへの参照を自動的に生成します。グローバル関数、グローバル変数、typedef、define、および列挙型のドキュメント化もサポートされています。
  • 基底クラス/スーパークラスおよび継承/オーバーライドされたメンバーへの参照は自動的に生成されます。
  • クラスとメンバーのドキュメント内で文字列または単語を検索するための高速なランクベースの検索エンジンが含まれています(PHPベース)。
  • 入力中に記号を検索するJavaScriptベースのライブ検索機能が含まれています(小〜中規模プロジェクト向け)。
  • ドキュメントに通常のHTMLタグを入力できます。Doxygenはそれらを同等の{\LaTeX}、RTF、およびmanページ形式に自動的に変換します。
  • 他の(Doxygenでドキュメント化された)プロジェクト(または同じプロジェクトの別の部分)用に生成されたドキュメントへの参照を、場所非依存の方法で許可します。
  • ドキュメントと自動的に相互参照されるソースコード例の組み込みを許可します。
  • ドキュメント化されていないクラスの組み込みもサポートされており、実装の詳細を調べることなく、(大規模な)コードの構造とインターフェースをすばやく学習できます。
  • (ドキュメント化された)エンティティとソースコード内の定義との自動的な相互参照を許可します。
  • すべてのソースコードフラグメントは、読みやすくするために構文が強調表示されています。
  • ドキュメントへの関数/メンバー/クラス定義の組み込みを許可します。
  • すべてのオプションは、編集が容易で、(オプションで)注釈が付けられた構成ファイルから読み取られます。
  • ドキュメントと検索エンジンは、ドキュメントを再生成せずに別の場所またはマシンに転送できます。
  • 多くの異なる文字エンコーディングをサポートし、内部および生成された出力にUTF-8を使用します。
  • Doxygenは、各ページのレイアウトを変更するために使用および編集できるレイアウトを生成できます。
  • 出力を微調整するための100を超える設定可能なオプションがあります。
  • 大規模プロジェクトにも容易に対応できます。

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

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

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