Header Doc |
||||||||||||||||||||
|
|
概要HeaderDocは、C/C++のヘッダーファイル中に埋め込まれた注釈から、C/C++のプログラミングドキュメントをHTMLファイルとして出力するプログラムです.HeaderDocコメントは、Javaソース・ファイル中のJavaDoc コメントに似ています.しかし、C/C++のソース解析を簡易化するために多少 JavaDoc のコメントタグと異なります.
単純なHeaderDocのコメントは以下のようになります.関数にHeaderDoc形式でコメントをつけています.
/*!
@function HMBalloonRect
@discussion Use HMBalloonRect to get information about the size of
a help balloon before the Help Manager displays it.
@param inMessage The help message for the help balloon.
@param outRect The coordinates of the rectangle that encloses the help
message. The upper-left corner of the rectangle has the
coordinates (0,0).
*/
OSErr HMBalloonRect (const HMMessageRecord *inMessage, Rect *outRect);
headerDoc2HTMLコマンドを使ってHTMLファイルに変換すると以下のような出力が得られます.
HMBalloonRect
OSErr HMBalloonRect (const HMMessageRecord Use HMBalloonRect to get information about the size of a help balloon before the Help Manager displays it. Parameters
さらに、gatherHeaderDocも含まれています. これはheaderDoc2HTMLによって生成されたすべてのドキュメンテーションのためのマスター目次を作成するユーティリィティ・スクリプトです. gatherHeaderDocの実行についての情報は次のセクションの中で説明します. スクリプトの実行HeaderDocは2つのスクリプトで構成されています. 与えられたヘッダーごとのドキュメンテーションを生成するheaderDoc2HTML.plと 出力されたドキュメンテーションを見つけて、それらを互いにリンクする目次を組み立てるgatherHeaderDoc.plを含んでいます。headerDoc2HTML.plの実行いったんHeaderDocコメントを含んでいるヘッダーを持てば、このようなHTML出力を生成するためにheaderDoc2HTML.plスクリプトを実行することができます.>headerDoc2HTML.pl MyHeader.hこれは" MyHeader.h"を処理し、入力ファイルと同じディレクトリーの中で"MyHeader"と呼ばれる出力ディレクトリーを作成します。あなたのウェブ・ブラウザ中の結果を見るためには、出力ディレクトリーの内部で見つかるファイルindex.htmlを開いてください。
上記のような単一の入力ファイルを指定する代わりに、入力ディレクトリーを指定することもできます。HeaderDocはすべての'.h'を処理します. 入力ディレクトリーを再帰的にファイルを検索して、HeaderDocコメントを含んでいるヘッダーごとのHTMLファイルの出力ディレクトリーの生成します。 出力用の別のディレクトリーを指定したい場合は以下のように"-o"スイッチで指定する事ができます. > headerDoc2HTML.pl -o /tmp MyHeader.hHeaderDocは、デフォルト設定だとファイルを処理するとターミナルへ処理するファイル名前リストします。"-q"スイッチはHeaderDocのこのターミナルへの出力を抑制させます. > headerDoc2HTML.pl -q MyHeader.h > headerDoc2HTML.pl -qo /tmp MyHeader.h 注意)-qオプションは現在のバージョンでは使えないようです.ターミナルへの出力がうるさい場合は以下のように/dev/nullへ出力すると良いでしょう. #headerDoc2HTML.pl -o /tmp MyHeader.h > /dev/null HeaderDocの構成するモジュールのバージョンをHeaderDocに報告させるスイッチ、"-v"が使えます.これはHeaderDocのバグを報告するための使う事ができます. headerDoc2HTML.pl -v gatherHeaderDoc.plの実行
このスクリプトは (目次ページの名前はデフォルトでMasterTOC.htmlです.コンフィグファイルで指定すると別のファイル名に変更できます.)また、すべてのドキュメンテーションに目次ページへのナビゲーションを容易にするための、トップリンクを追加します. (スクリプトと共に提供されるサンプルもの) 配付ファイルに同封されていたサンプルコードのドキュメンテーションを作る例を示します. この例は複数のヘッダーファイルを読み込みドキュメントと目次を生成します. > headerDoc2HTML.pl -o OutputDir ExampleHeaders > gatherHeaderDoc.pl OutputDir
ファイル Mac Perlでスクリプトを実行させるHeaderDocはMacPerl がインストールされていればマックOS9とそれ以前のMacOS上で走ります。
( MacPerl はCPANの移植ページから入手して下さい) MacPerl を使用してHeaderDocを実行するためにあなたが行う手順を示します.(俺はMacOSXでしか開発しないから訳さない)
設定ファイル一般に変更される変数に対する値をセットすることができます。現在、configurationファイルで以下の項目を変更できます.
HeaderDocは以下の順番で、上記の変数に対する値のための3つの場所のファイルを見ます:
変数は、これらの場所のうちのどこでも設定する事ができます。しかし、与えられた変数のために読まれた最後のファイルの値だけが、スクリプトの実行の出力に影響します。これらの変数(上に記述された)に対するデフォルト価値に満足していれば、設定ファイルを提供する必要がありません。あなたが単に1つ以上の値を変更したい場合は、単なるそれらの値を宣言する設定ファイルを提供してください。 設定ファイルのフォーマットは以下のようになっています key1 => value1 key2 => value2 以下に設定ファイルのサンプルを示します. ################################################################### # Sample configuration file for HeaderDoc2HTML and gatherHeaderDoc ################################################################### copyrightOwner => My Great Software Company defaultFrameName => default.html compositePageName => PrintablePage.html masterTOCName => TOCCentral.html apiUIDPrefix => greatSoftware HeaderDocコメントとタグHeaderDocコメントの形式はこんな感じです: /*! @function FunctionName @discussion This is a comment about FunctionName. */ それらの最も単純な形式(上記例)では、それらが、2点だけで標準のCコメントと異なります:
さらに、特定のフィールドを識別するためにHeaderDocコメントの中に追加の
/*!
@function HMBalloonRect
@abstract Reports size and location of help ballon.
@discussion Use HMBalloonRect to get information about the size
of a help balloon before the Help Manager displays it.
@param inMessage The help message for the help balloon.
@param outRect The coordinates of the rectangle that encloses the
help message. The upper-left corner of the rectangle
has the coordinates (0,0).
*/
タグは、"@"文字によって示されます。(@はホワイトスペースを抜かしたその行の最初の文字です) コメント中の第1のタグはAPIタイプの宣言(function、struct、enumなど)を発表します。次の2行のライン(@abstractや@discussionタグ)は、全体としてAPI要素に関するドキュメンテーションを提供します。@abstractは簡略なリストの中で使用することができ、API要素に関する詳細なドキュメンテーションの中で@discussionを使用することができます。 @abstractと@discussionタグはオプションであすが使う事を推奨されます。それらの使用は、簡略なページのようなHTML出力における様々な改良を可能にします。 タグが、それが仮定されるAPIタイプ・タグおよび名前(@function HMBalloonRectの上に)に続くテキストに付けられていない場合はabstractとして処理します。そのようなタグが付けられていないテキストで、HeaderDocは、どちらが最初に生じても次のHeaderDocタグへの、あるいはHeaderDocコメントの終了へのAPIタイプコメントの終了からabstractが伸びると仮定します。 HeaderDocは、コメントのスタイルのいくつかの変形を理解します。特にこのような1-ラインコメントを持つことができます: /*! @var settle_time Latency before next read. */ そして、多重ラインコメントの各ライン上でアスタリスクマークを使用する事ができます. /*! * @function HMBalloonRect * @abstract Reports size and location of help ballon. * @discussion Use HMBalloonRect to get information about the size of * a help balloon before the Help Manager displays it. * @param inMessage The help message for the help balloon. * @param outRect The coordinates of the rectangle that encloses the * help message. The upper-left corner of the rectangle * has the coordinates (0,0). */あなたがコメントのHTMLでライン・ブレークを指定したい場合、一つではなくライン間の2つのキャリッジリターンを使用してください。例えばこのコメント中のdiscussionのテキストでは: /*! * @function HMBalloonRect * @discussion Use HMBalloonRect to get information about the size of * a help balloon before the Help Manager displays it. * * By checking the help balloon size before display, you * can guard against... */ ...HTML出力で2つのパラグラフとしてフォーマットされるでしょう: HMBalloonRect OSErr HMBalloonRect (const HMMessageRecord *inMessage, Rect *outRect); Use HMBalloonRect to get information about the size of a help balloon before the Help Manager displays it.
By checking the help balloon size before display, you can guard against... ヘッダーファイルに関わるタグしばしば、個々のAPI要素のためのコメントに加えて全体としてヘッダーのためのコメントを加えたいと思うでしょう。例えば、ヘッダーが特定のマネージャー(マックOS用語です)用のAPIを宣言する場合、マネージャーに関する導入の情報を提供したいか、あるいはマネージャーのAPIの内の機能の多くに当てはまる問題について議論したいと思うかもしれません。同様にヘッダーがC++クラスを宣言する場合、そのsuper classあるいはsub classに関してのクラスについて議論することができます.@headerタグのために与える値は、headerDoc2HTMLによって生成されたHTMLページのタイトルとして役立ちます。@headeタグに関連させるテキストは、スクリプトが生産するHTMLウェブサイトの導入のページで使用されます。
Example: /*! @header Repast Manager The Repast Manager provides a functional interface to the repast driver. Use the functions declared here to generate, distribute, and consume meals. */ 言語別のタグタグは、個々のプログラミング言語に特有の物が大半です--例えば、@methodタグは、Cヘッダーでは使われません.どのタグが言語固有のタグでどのコンテキストで利用可能かに関する情報に関しては次のセクションを参照してください。HeaderDoc_C_TagSetC言語特有のタグを説明します.HeaderDoc_Objective-C_TagSetObjective-C言語特有のタグを説明します.HeaderDoc_C++_TagSetC++言語特有のタグを説明します. |
|||||||||||||||||||
|
||||||||||||||||||||