JsDoc Toolkit ― 2007年06月27日 01時30分29秒
JavaScriptでJavaScriptのドキュメントを生成する
JsDoc Toolkit(via: mal_blue@tumblr)
javadocやPHPDocといった、ドキュメントコメントからAPIドキュメントを生成するツールがある。
JavaScript向けにもPerlで作成されたJSDocがあるのだが、今回のネタ「JsDoc Toolkit」はこれのJavaScript実装だ。
追記(2007.06.27 02:13)
「JSDoc」のリンク先(あるSEのつぶやきさん)の記事は、MOONGIFTさんの記事なのだが、サイト構成が当時と変わっているためトップページへ飛ばされてしまう。なので現在のリンクを以下に示しておく。
- MOONGIFT: » JSDoc:オープンソースを毎日紹介
- MOONGIFT: » JSDoc レビュー:オープンソースを毎日紹介
- JSDoc Homepage - JavaScript Documentation Tool(本家)
すばらしい、と思いきや
たしかにアーカイブに含まれるソースは.jsファイルのみで、サイトにあるJsDoc Toolkit is written in 100% JavaScript.
に偽りはないっちゃないのだが、実行環境がRhinoに限定されているようなのだ。要するにJREがインストールされている上(これは別に問題ないか)、Rhino落としてきてコマンドラインから
> java -jar c:\Java\js.jar lib\JsDoc.js -t=templates\sunny tests\data\みたいにせにゃならんということだ。むぅ。
一応覗いてみるが
なんとかcscript環境下で使えるようにできんかと思って、ソースをちょっとだけ見てみたんだけど、
(new File(dirName)).mkdir();だの、
var out = new FileWriter(outpath);だのと、あまりにもあたりまえのようにJavaのクラスライブラリをさらっと使っているので、どれがJavaのAPIなのかを探るだけでもかなりホネで、なかなかしんどそうだ。
ファイルIOとコマンドライン引数の受け取りだけでもうまいこと抽象化しといてくれれば誰かが勝手にSpiderMonkey対応だのcscript対応だのjsdb対応だのしてくれると思うんだけどなぁ。
がんばってjava.io.*のエミュレーション層を作ってみようか。無理だ。
コメント
_ mal ― 2007年06月27日 13時54分17秒
_ mal ― 2007年06月27日 14時02分27秒
_ dara-j ― 2007年06月27日 15時21分50秒
> 中の人も諦め気味。
なるほど、「I decided to drop support for running JsDoc Toolokit in a web browser」とかおっしゃってますな。Javaアプリケーション簡単に作れるじゃん、て。
> この辺が Wrap できればなんとか...って絶対見落としあると思うけど。
グローバル関数をCamelCaseとかにしてるのでなかなか調べるのがしんどいですね。
> JsPlate.js の ReadFile に Win に対応しようとした痕跡がありますが。
あー、ありましたね。テンプレートをロードするのにXHR使おうとしてる見たいですね。
首尾よくラッパー作れても、メインスクリプトより先にラッパーをロードしなきゃなんないのでWinで単体動作させるならwsfかhta作ったほうがよいかも。
もう少しソースとにらめっこしてみます。
※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。
※なお、送られたコメントはブログの管理者が確認するまで公開されません。
トラックバック
このエントリのトラックバックURL: http://dara-j.asablo.jp/blog/2007/06/27/1608733/tb
※なお、送られたトラックバックはブログの管理者が確認するまで公開されません。
http://groups.google.com/group/jsdoc-2/browse_thread/thread/5fba1f05cad9aa1d
ざっと 0.5.2beta のソース見ただけですが、rhino 由来は readFile() と load() だけかな?
Java 由来は
FileWriter = Packages.java.io.FileWriter;
File = Packages.java.io.File;
FileSeparator = Packages.java.io.File.separator;
だけだと思うのでこの辺が Wrap できればなんとか...って絶対見落としあると思うけど。
JsPlate.js の ReadFile に Win に対応しようとした痕跡がありますが。