はじめに
jsduckを使ってみたメモです
jsduckの導入に関してはこちらのサイトを参考にさせて頂きました
→JavaScript のコードからモダンなドキュメントをさくっと生成してくれる『JSDuck』の使い方 – 導入編
jsduck入れる
rubyとgem入れる
rubyとgem入ってなかったので入れてから試しましたが、そこに関しては本分ではないのでこちら↓に切り出しました
※今回のjsduckを使った環境はこっち↑で入れたrubyとgemにより動いてます
jsduck入れる
# /home/hoge/local/bin/gem install jsduck Fetching: rdiscount-2.1.6.gem (100%) Building native extensions. This could take a while... Fetching: json-1.8.0.gem (100%) Building native extensions. This could take a while... Fetching: parallel-0.7.1.gem (100%) Fetching: rkelly-remix-0.0.4.gem (100%) Fetching: dimensions-1.2.0.gem (100%) Fetching: jsduck-5.1.0.gem (100%) Successfully installed rdiscount-2.1.6 Successfully installed json-1.8.0 Successfully installed parallel-0.7.1 Successfully installed rkelly-remix-0.0.4 Successfully installed dimensions-1.2.0 Successfully installed jsduck-5.1.0 6 gems installed Installing ri documentation for rdiscount-2.1.6... unable to convert "\xD0" from ASCII-8BIT to UTF-8 for lib/home/hoge/local/lib/ruby/site_ruby/2.0.0/x86_64-linux/rdiscount.so, skipping Installing ri documentation for json-1.8.0... unable to convert "\xA0" from ASCII-8BIT to UTF-8 for lib/home/hoge/local/lib/ruby/site_ruby/2.0.0/x86_64-linux/json/ext/generator.so, skipping unable to convert "\xB0" from ASCII-8BIT to UTF-8 for lib/home/hoge/local/lib/ruby/site_ruby/2.0.0/x86_64-linux/json/ext/parser.so, skipping Installing ri documentation for parallel-0.7.1... Installing ri documentation for rkelly-remix-0.0.4... Installing ri documentation for dimensions-1.2.0... Installing ri documentation for jsduck-5.1.0... unable to convert "\x89" from ASCII-8BIT to UTF-8 for lib/jsduck/tag/icons/cfg.png, skipping unable to convert "\x89" from ASCII-8BIT to UTF-8 for lib/jsduck/tag/icons/css_mixin.png, skipping unable to convert "\x89" from ASCII-8BIT to UTF-8 for lib/jsduck/tag/icons/css_var.png, skipping unable to convert "\x89" from ASCII-8BIT to UTF-8 for lib/jsduck/tag/icons/event.png, skipping unable to convert "\x89" from ASCII-8BIT to UTF-8 for lib/jsduck/tag/icons/method.png, skipping unable to convert "\x89" from ASCII-8BIT to UTF-8 for lib/jsduck/tag/icons/property.png, skipping Installing RDoc documentation for rdiscount-2.1.6... unable to convert "\xD0" from ASCII-8BIT to UTF-8 for lib/home/hoge/local/lib/ruby/site_ruby/2.0.0/x86_64-linux/rdiscount.so, skipping Installing RDoc documentation for json-1.8.0... unable to convert "\xA0" from ASCII-8BIT to UTF-8 for lib/home/hoge/local/lib/ruby/site_ruby/2.0.0/x86_64-linux/json/ext/generator.so, skipping unable to convert "\xB0" from ASCII-8BIT to UTF-8 for lib/home/hoge/local/lib/ruby/site_ruby/2.0.0/x86_64-linux/json/ext/parser.so, skipping Installing RDoc documentation for parallel-0.7.1... Installing RDoc documentation for rkelly-remix-0.0.4... Installing RDoc documentation for dimensions-1.2.0... Installing RDoc documentation for jsduck-5.1.0... unable to convert "\x89" from ASCII-8BIT to UTF-8 for lib/jsduck/tag/icons/cfg.png, skipping unable to convert "\x89" from ASCII-8BIT to UTF-8 for lib/jsduck/tag/icons/css_mixin.png, skipping unable to convert "\x89" from ASCII-8BIT to UTF-8 for lib/jsduck/tag/icons/css_var.png, skipping unable to convert "\x89" from ASCII-8BIT to UTF-8 for lib/jsduck/tag/icons/event.png, skipping unable to convert "\x89" from ASCII-8BIT to UTF-8 for lib/jsduck/tag/icons/method.png, skipping unable to convert "\x89" from ASCII-8BIT to UTF-8 for lib/jsduck/tag/icons/property.png, skipping
unable to convert "\xD0" from ASCII-8BIT to UTF-8 for lib/home/hoge/local/lib/ruby/site_ruby/2.0.0/x86_64-linux/rdiscount.so, skipping
とか怪しいの出ましたがとりあえず試すだけなので気にせず次へ。。。
確認
# /home/hoge/local/bin/jsduck --version /home/hoge/local/lib/ruby/site_ruby/2.0.0/rubygems/custom_require.rb:36:in `require': cannot load such file -- rdiscount.so (LoadError) from /home/hoge/local/lib/ruby/site_ruby/2.0.0/rubygems/custom_require.rb:36:in `require' from /home/hoge/local/lib/ruby/gems/2.0.0/gems/rdiscount-2.1.6/lib/rdiscount.rb:106:in `<top (required)>' from /home/hoge/local/lib/ruby/site_ruby/2.0.0/rubygems/custom_require.rb:36:in `require' from /home/hoge/local/lib/ruby/site_ruby/2.0.0/rubygems/custom_require.rb:36:in `require' from /home/hoge/local/lib/ruby/gems/2.0.0/gems/jsduck-5.1.0/lib/jsduck/format/doc.rb:2:in `<top (required)>' from /home/hoge/local/lib/ruby/site_ruby/2.0.0/rubygems/custom_require.rb:36:in `require' from /home/hoge/local/lib/ruby/site_ruby/2.0.0/rubygems/custom_require.rb:36:in `require' from /home/hoge/local/lib/ruby/gems/2.0.0/gems/jsduck-5.1.0/lib/jsduck/assets.rb:8:in `<top (required)>' from /home/hoge/local/lib/ruby/site_ruby/2.0.0/rubygems/custom_require.rb:36:in `require' from /home/hoge/local/lib/ruby/site_ruby/2.0.0/rubygems/custom_require.rb:36:in `require' from /home/hoge/local/lib/ruby/gems/2.0.0/gems/jsduck-5.1.0/lib/jsduck/app.rb:3:in `<top (required)>' from /home/hoge/local/lib/ruby/site_ruby/2.0.0/rubygems/custom_require.rb:36:in `require' from /home/hoge/local/lib/ruby/site_ruby/2.0.0/rubygems/custom_require.rb:36:in `require' from /home/hoge/local/lib/ruby/gems/2.0.0/gems/jsduck-5.1.0/bin/jsduck:20:in `<top (required)>' from /home/hoge/local/bin/jsduck:19:in `load' from /home/hoge/local/bin/jsduck:19:in `<main>'
rdiscount.so見つからないと怒られる。。。汗
パスの問題っぽいけどとりあえずrdiscount.soとやらが本当にないのか確認
# locate rdiscount.so ない。。。けど、たぶんlocateDBを更新してないからなので再度チャレンジ # sudo updatedb # locate rdiscount.so /home/hoge/local/lib/ruby/gems/2.0.0/gems/rdiscount-2.1.6/ext/rdiscount.so /home/hoge/local/lib/ruby/gems/2.0.0/gems/rdiscount-2.1.6/lib/home/hoge/local/lib/ruby/site_ruby/2.0.0/x86_64-linux/rdiscount.so
ブツはありそうなので、とりあえずエラーを起こしてるファイルを確認
# vi /home/hoge/local/lib/ruby/site_ruby/2.0.0/rubygems/custom_require.rb →見た結果あまり関係なさそう # vi /home/hoge/local/lib/ruby/gems/2.0.0/gems/rdiscount-2.1.6/lib/rdiscount.rb →見た結果一番下に require 'rdiscount.so' の文字が。 さきほどlocateで確認したフルパスを入れて保存してみる require 'rdiscount.so' ↓ require '/home/hoge/local/lib/ruby/gems/2.0.0/gems/rdiscount-2.1.6/ext/rdiscount.so'
再度確認
# /home/hoge/local/bin/jsduck --version JSDuck 5.1.0
取りあえず動かすテストとしてはこれでOK。
フルパス入れて動くってことはやっぱパスの問題そーですね。
動かすテスト
参考サイトより、下記のコマンドでサンプル?のドキュメントができるようです
# pwd /home/hoge/ruby # /home/hoge/local/bin/jsduck --builtin-classes --output ./docs # ll drwxr-xr-x 7 hoge cam 4096 8月 25 20:07 2013 docs drwxr-xr-x 25 hoge cam 12288 8月 25 18:08 2013 ruby-2.0.0-p247 -rw-r--r-- 1 hoge cam 13652782 8月 25 18:02 2013 ruby-2.0.0-p247.tar.gz drwxr-xr-x 7 hoge cam 4096 1月 7 04:34 2012 rubygems-1.8.15 -rw-r--r-- 1 hoge cam 251305 1月 7 04:38 2012 rubygems-1.8.15.tgz drwxr-xr-x 7 hoge cam 4096 1月 25 14:21 2013 rubygems-1.8.25 -rw-r--r-- 1 hoge cam 380540 1月 26 00:55 2013 rubygems-1.8.25.tgz
普通に動いたので、作られた./docs/index.htmlをブラウザで見てみる
おお、jsのビルトインオブジェクトのドキュメントができてるぽい
適当なプロジェクトフォルダでドキュメントを作ってみる
※こちらも参考にさせて頂きました
# cd 適当なプロジェクトのpublickフォルダ # ll drwxr-xr-x 3 hoge hoge 4096 7月 22 20:21 2013 css -rw-r--r-- 1 hoge hoge 321 5月 2 13:20 2013 index.html drwxr-xr-x 4 hoge hoge 4096 8月 25 20:20 2013 js ここでテスト # jsduck ./js --output ./docs --title "test desuyo" # ll drwxr-xr-x 3 hoge hoge 4096 7月 22 20:21 2013 css drwxr-xr-x 7 hoge hoge 4096 8月 25 20:24 2013 docs -rw-r--r-- 1 hoge hoge 321 5月 2 13:20 2013 index.html drwxr-xr-x 4 hoge hoge 4096 8月 25 20:20 2013 js
さきほどと同じようにdocディレクトリが作られたので
中にあるindex.htmlをブラウザで見てみる
なにもでない。。。
javadoc的に特定のコメントを書かいてないので、そうかなーとは思ったけど
やっぱりそうですよね。。。
※適当なプロジェクトのディレクトリに移動したので./jsディレクトリ以下はちゃんと無数のjsがあります
下記のjsファイルをテスト的に作って再度チャレンジ
-
- test.js
/** * @method testFunction * test desuyo. * @param aa {String} * @param bb {Number} * @return cc {String} */ var testFunction = function(aa, bb){ // 特になにもしない var cc = 1; return cc; };
# rm -rf docs # jsduck ./js --output ./docs --title "test desuyo"
なるほどー。キレイですね。
とりあえず試しとしてはめでたしめでたし^□^b
補足
エラーになったのでrdiscount.rbを直接編集して絶対パスでrdiscount.soの場所を指定しましたが
locateした結果がおかしかったのでrdiscount.soを移動したら動きました
locate結果
# locate rdiscount.so
/home/hoge/local/lib/ruby/gems/2.0.0/gems/rdiscount-2.1.6/ext/rdiscount.so
/home/hoge/local/lib/ruby/gems/2.0.0/gems/rdiscount-2.1.6/lib/home/hoge/local/lib/ruby/site_ruby/2.0.0/x86_64-linux/rdiscount.so
rdiscount.soを移動
# cp -ap /home/hoge/local/lib/ruby/gems/2.0.0/gems/rdiscount-2.1.6/lib/home/hoge/local/lib/ruby/site_ruby/2.0.0/x86_64-linux/rdiscount.so .
パスの途中で*/home/hoge/local/lib/....と始まってるのでインストールをミスったのかも?