javafxdoc-style docs for Java code

http://blogs.sun.com/sundararajan/entry/javafxdoc_style_docs_for_java


JavaFXのドキュメントジェネレータ(javafxdoc)をJavadocのdocletに指定して,JavaFX APIのようなカッチョええJavadocを生成してみたよ的な話。
ちなみに,こんなの。


つい最近,「そろそろ標準docletはどうにかして欲しい」と思ってただけに,とてもタイムリー。使い方は簡単。JavaFXインスコして,$JAVAFX_HOME/lib/sharedからjavafxc.jarjavafxdoc.jarを引っこ抜く。あとは,これをdocletに指定するだけ。
コマンドラインは面倒臭いんで,Antの定義部を示す(パスとかはテキトウに読み替えて)。

<target name="javafxdoc">
  <javadoc sourcepath="${src.dir}/java" destdir="${javadoc.dir}"
           packagenames="com.hogehoge.*"
           Private="true"
           maxmemory="256m">
    <doclet name="com.sun.tools.xmldoclet.XMLDoclet">
      <path path="javafxc.jar"/>
      <path path="javafxdoc.jar"/>
    </doclet>
  </javadoc>
</target>


試してみた限りでは,日本語は通る/大抵のJavadocタグも使える/パッケージオーバビュー(package.html)もOK。でも...

  • overviewオプションを指定しても,どこに出てくるかわからない
  • 標準docletのほとんどのオプションが使えない(windowTitleとかもダメってあんまりだ)
  • パッケージオーバビューの展開位置が,ちょっとイマイチ。
  • やたらメモリ喰う(maxmemoryオプションの指定は必須)


などなどの不満もある。一番の問題はJavaFXスタイルのJavadocがホントウにカッチョええか?ということなのだが,正直なんとも言えない。:-)
でもまあ,標準docletは見飽きたんで,JavaFXスタイルは新鮮だった。それにフレーム使ってないのもエライ。


ps.
テキトウにエラーになるようにして,usage出してみた。Javadocそのものも,JavaFX用docletもあまりオプション豊富じゃない。でも,JavaFX docletは(その気になれば)XSLT指定できるようだ。

javafxdoc:
  [javadoc] Generating Javadoc
  [javadoc] Javadoc execution
  [javadoc] javadoc: エラー - フラグ -use は無効です。
  [javadoc] 使用法: javadoc [options] [packagenames] [sourcefiles] [@files]
  [javadoc] -overview <file>          HTML ファイルから概要ドキュメントを読み込む
  [javadoc] -public                   public クラスとメンバのみを示す
  [javadoc] -protected                protected/public クラスとメンバを示す (デフォルト)
  [javadoc] -package                  package/protected/public クラスとメンバを示す
  [javadoc] -private                  すべてのクラスとメンバを示す
  [javadoc] -help                     コマンド行オプションを表示して終了する
  [javadoc] -doclet <class>           代替 doclet を介して出力を生成する
  [javadoc] -docletpath <path>        doclet クラスファイルを探す場所を指定する
  [javadoc] -sourcepath <pathlist>    ソースファイルのある場所を指定する
  [javadoc] -classpath <pathlist>     ユーザクラスファイルのある場所を指定する
  [javadoc] -exclude <pkglist>        除外するパッケージリストを指定する
  [javadoc] -subpackages <subpkglist> 再帰的にロードするサブパッケージを指定する

  [javadoc] -breakiterator            BreakIterator で最初の文を計算する
  [javadoc] -bootclasspath <pathlist> ブートストラップクラスローダによりロードされた
  [javadoc]                       クラスファイルの位置をオーバーライドする
  [javadoc] -source <release>         指定されたリリースとソースの互換性が提供される
  [javadoc] -extdirs <dirlist>        拡張機能がインストールされた位置をオーバーライドする
  [javadoc] -verbose                  Javadoc の動作についてメッセージを出力する

  [javadoc] -locale <name>            en_US や en_US_WIN などの使用するロケール
  [javadoc] -encoding <name>          ソースファイルのエンコーディング名
  [javadoc] -quiet                    状態メッセージを表示しない
  [javadoc] -J<flag>                  <flag> を実行システムに直接渡す
  [javadoc]
  [javadoc] XML ドックレットによって提供される機能:
  [javadoc] -o <file>                 XML 出力ファイル
  [javadoc] -version                  @version パラグラフを含めます
  [javadoc] -author                   @author パラグラフを含めます
  [javadoc] -nosince                  @since 情報を除外します
  [javadoc] -nodeprecated             @deprecated 情報を除外します
  [javadoc] -nohtml                   HTML を生成しません
  [javadoc] -xsltfile <file>          HTML の生成に使用する XSLT ファイル
  [javadoc] -mastercss <file>         HTML の生成に使用する XSLT ファイル
  [javadoc] -extracss <file>          HTML の生成に使用する XSLT ファイル
  [javadoc] -extrajs <file>           HTML の生成に使用する XSLT ファイル
  [javadoc] -extrajs2 <file>          HTML の生成に使用する XSLT ファイル
  [javadoc] -xsl: XSLT プロパティーを設定します   name=value
  [javadoc] -d <directory>            出力ディレクトリ
  [javadoc] -i <file>                 XML 入力ファイル