Headerdoc のメモ書き
Headerdoc でリファレンスを作っているのですが、どうも Headerdoc 自体は保守されて色々拡張はされているみたいです。ただ気になるのは、 Apple が配布している SDK に含まれているヘッダーファイルには、なかなか Headerdoc の記述がない件…I/O Kit のファイルには思っきりあったし…orz ただ、Foundation や NSView などには見当たりません…
いろいろやってて気づいたことがあるので、メモ書き。なお、Headerdocのバージョンは8以上の話です。SnowLeopardではどうなんだっけね…
HeaderDocの基礎的なことは、 コマンドラインで作るAPIリファレンスの作成方法 - at_yasuの日記もといメモ書き に書いています。
新しいタグ
Headerdoc7 には無かったけど、Headerdoc8にて新実装したタグ。意訳なので注意。原文は、 Documentation Archive の Appendix A の new Tag です。
- @classdesign
- クラスのデザインを記述します
- @coclass
- 連動する、関連するクラスを記述します
- @dependency
- 強く依存しているクラスを記述します
- @exception
- function/method/class から出る例外を記述します
- @throw
- @exception と同様です
- @functiongroup
- function や method のグループタグです。 @group タグの function/method 版です。
- @methodgroup
- @functiongroup と同じです
- @group
- データや関数などをグループ化し、そして、テーブルコンテンツにグループ化した状態で表示します
- @helper
- ヘルパークラスを表します?
- @helps
- ヘルパークラスで補助するクラス一覧?
- @instancesize
- クラスインスタンスのサイズ
- @ownership
- String describing what class instantiates the current class (for example, I/O Kit nubs) *1
- @performance
- クラスのパフォーマンスを記述します。「例:“This class is not appropriate for use in high-performance environments”」
- @security
- このクラスについてのセキュリティ関連のことを記述します
- @superclass
- 親クラスを記述して下さい。サブクラスと同期し、表示します
gatherheaderdoc
headerdoc で出力したHTMLを解釈し、インデックスページを作成したり親子関係のリンクをはってくれたりします。ただし、初期のテンプレートだと日本語は文字化けてしまうので、テンプレートをいじくる必要有り。
gatherheaderdoc は、config ファイル内の「TOCTemplateFile」の値を見て読み込んでいます。
どこにも存在していない場合、「/Library/Preferences/com.apple.headerdoc.exampletocteplate.html」を読み込みます。
*1:I/O Kit の中枢部分とか〜、とか言ってるけど、何言ってるかよくわからん。クラスがフレームワーク内での存在位置を指してるのか?