狠狠撸

狠狠撸Share a Scribd company logo
JSDoc ToolKit
~ javascript documentation ~




                           2011/12/26
                  h13i32maru@Twitter
                    maruyama-r@KLab
自己紹介
? 丸山 亮(h13i32maru) 最近はJSを触ってます
? KLab株式会社所属
32   http://blog.h13i32maru.jp

     http://twitter.com/h13i32maru

     https://www.facebook.com/ryo.maruyama

     https://github.com/h13i32maru
ドキュメント大事ですよね
でも书くのは面倒(??ω?`)
じゃあせめてクラス?メソッドの
リファレンスは書こう(???)
Hoge Doc
?   Java Docに代表されるHoge Docって結構ある

    ?   Java Doc

    ?   PHP Documenter

    ?   Py Doc

    ?   RDoc
JSDoc ToolKit
?   Javascript用ドキュメントツール

?   JSDocの後継

?   @hoge foo barスタイルのJava Doc風
/**
 * @class /ALLIANCE/作成
 * @author <a href="mailto:sano-n@klab.jp">Naohide Sano</a> (sano-
n)
 * @extends KNGP.GLPage
 */
var AllianceCreatePage = KNGP.GLPage.subclass(
/** @lends AllianceCreatePage.prototype */
{
    /**
     * Sets current step on the page.
     * And control UI enabling.
     * @private
     * @param {Number} step
     */
    _setStep: function(step) {
        //...
    }
}
アノテーション
?   動的言語ならではのアノテーション

    ?   @extends

    ?   @lends

    ?   @constructor

    ?   @class, @function, @?eld

    ?   @private
独自アノテーションも
追加したいな(??ω?`)
プラグイン
?   Javascriptでプラグインも簡単に作れる

?   ドキュメント生成時の各ライフサイクルをフック
JSDOC.PluginManager.registerPlugin(
	

 "JSDOC.tagSynonyms",
	

 {
	

 	

    onDocCommentSrc: function(comment) {
	

 	

    	

  comment.src = /slideshow/jsdoc-toolkit/13111272/comment.src.replace(/@methodOfb/i, "@function
n@memberOf");
	

 	

    	

  comment.src = comment.src.replace(/@?eldOfb/i, "@?eld
n@memberOf");
	

 	

    },
	

 	

	

 	

    onDocCommentTags: function(comment) {
	

 	

    	

  for (var i = 0, l = comment.tags.length; i < l; i++) {
	

 	

    	

  	

    var title = comment.tags[i].title.toLowerCase();
	

 	

    	

  	

    var syn;
	

 	

    	

  	

    if ((syn = JSDOC.tagSynonyms.synonyms["="+title])) {
	

 	

    	

  	

    	

     comment.tags[i].title = syn;
	

 	

    	

  	

    }
	

 	

    	

  }
	

 	

    }
	

 }
);
注意点
?   シノニムが結構ある

    ?   @returns == @return

    ?   @constructor == @constructs

    ?   @augments == @extends

    ?   etc...
おわり

More Related Content

JSDoc ToolKit