JsDoc Toolkitを使う!
http://w.atwiki.jp/aias-jsdoctoolkit/
JsDoc Toolkitを使う!
ja
2011-09-02T22:08:03+09:00
1314968883
-
ダウンロード
https://w.atwiki.jp/aias-jsdoctoolkit/pages/63.html
#include_js(http://www12.atwiki.jp/aias-jsdoctoolkit/?cmd=upload&act=open&page=%E3%83%88%E3%83%83%E3%83%97%E3%83%9A%E3%83%BC%E3%82%B8&file=common1.js)
&small(){[[トップページ]] >}
#divclass(page_title){
&this_page()
}
このページでは、管理人が作成したテンプレートとプラグインを公開します。
#divclass(additional){{
-ここで公開されているプログラムの使用は商用・個人を問わず自由です。ただしそこから発生する結果について作成者は一切の責任を負わないものとします。
-バグなどお気付きの点がありましたら&mailto(aiaswood@aias-wood.jp){こちら}までお願いします。
}}
#divclass(cont_title){目次}
#divclass(contents){
#contents()
}
**テンプレート
-テンプレートの指定方法については、&link_anchor(templates,page=コマンドラインオプション){こちら}を参照してください。
-独自のテンプレートを作成する方法については、[[こちら>テンプレート]]以下を参照してください。
***&aname(aias-frame,option=nolink){aias-frame}
//&newimage(2009/09/10 00:00:00,time=168,image=http://www1.atwiki.jp/guide/pub/new.gif)
クラスリストページとクラス詳細ページをフレームで分割して表示する、JavaDocなどに近い出力形式のテンプレートです。
-ダウンロード
--&link(1.6.1){http://www12.atwiki.jp/aias-jsdoctoolkit/?cmd=upload&act=open&pageid=63&file=aias-frame-1.6.1.zip}
--&link(1.6.0){http://www12.atwiki.jp/aias-jsdoctoolkit/?cmd=upload&act=open&pageid=63&file=aias-frame-1.6.0.zip}
--&link_anchor(aias-frame,page=プログラムの更新履歴){更新履歴}
-スクリーンショット [ &blanklink(デモページ #1){http://aias-wood.jp/jsdoc-toolkit/demo/aias-frame/aias-frame-sample/} ][ &blanklink(デモページ #2){http://aias-wood.jp/jsdoc-toolkit/demo/aias-frame/jsdoctk-doc/} ][ &blanklink(デモページ #3){http://aias-wood.jp/jsdoc-toolkit/demo/aias-frame/aias-frame-pub/?StringBuffer} ]
#image(aias-frame_screenshot_thmb7.gif,http://aias-wood.jp/jsdoc-toolkit/demo/aias-frame-sample/,blank,title=クリックするとデモページが別ウィンドウで開きます。)
-機能
--左側のクラスリストを展開し、クラスメンバ(プロパティ、メソッドなど)を表示することができます。各項目は詳細ページへのリンクになっています。
#image(aias-frame-classlist6.gif)
--[[ネームパス]]または名称(階層情報を含まない単純なクラス名やメソッド名など)で、クラスリストの表示内容をフィルタリングする機能を持っています。フィルタリングはキー入力があるたびにインクリメンタルに実行されるため、目的のクラスやクラスメンバを素早く検索することができます。
#image(aias-frame-filter4.gif)
---マッチング方式は前方一致と部分一致を選択できます。
---フィルタリングのためのネームパスの区切り文字はスコープに関係なく&tt(){"."}です。例えばインスタンスメソッドでも&tt(){classname.methodname}のように入力してください。
--他のクラスから継承したクラスメンバの折りたたみ/展開表示の切り替えが可能です。
#image(aias-frame-expand-collapse4.gif)
-- -pオプションでプライベートメンバを出力している場合、詳細ページの「プライベートメンバを隠す」チェックボックスのon/offでプライベートメンバの表示/非表示を切り替えることができます。
--インタフェース/抽象クラス/静的クラスの宣言、@protectedタグ等の独自タグ、継承先クラスの出力など、&link_anchor(symbolExtensions){symbolExtensions}プラグイン(バージョン1.2.0~)が提供する様々な拡張機能の表示をサポートします。
--@exampleタグに記述されたサンプルコードを、ソースファイルHTMLと同じスタイルでハイライト表示します。
--説明文中に<code>タグで挿入されたソースコードを、「インライン」のサンプルコードとしてソースファイルHTMLと同じスタイルでハイライト表示します。
--「定義」項目のリンクやクラスメンバ名の右側に表示されているアイコンをクリックすると、ソースファイル内のそれらが定義された位置へ画面が移動します。
---この機能を有効にするには、このページで配布している拡張された&link_anchor(publishSrcHilite){publishSrcHilite}プラグイン(バージョン1.1.0~)が導入されている必要があります。
---定義位置はドックコメントを元に判定されるため、その項目にドックコメントが付加されていない場合は位置不明としてソースファイルの先頭に移動します。
--独自の記法で、プロパティ付きの戻り値のドキュメント化をサポートします。&br()[[@returns]]タグの説明文が"."で始まっている場合、その値は直前の"."で始まっていない@returnsタグのプロパティとしてドキュメント化されます。コードの例とその出力結果は以下のとおりです。
#divclass(bq){{{{
#divclass(comment){{
/**
 (br,1)* 幅と高さを返す。
 (br,1)* &spanclass(tag){@returns} {Object} サイズ情報を持つオブジェクト
 (br,1)* &spanclass(tag){@returns} {Number} .width 幅
 (br,1)* &spanclass(tag){@returns} {Number} .height 高さ
 (br,1)*/
}}
Rectangle.prototype.getSize = function() {
}}}}
#image(aias-frame-retprop2.gif)
--[[@link]]タグにおいて記述された内容が[[ネームパス]]と一致しなかった場合、それらを同一クラス内の他のメンバへのリンクと解釈し、クラス詳細ページ内への内部リンクを出力します。したがってクラス内の他のメンバへのものであれば、名称を記述するだけでリンクを作ることができます。ただし、以下の点に注意してください。
---インスタンスメンバ以外の場合、ネームパスの区切りに使用されているプリフィックス(&tt(){./-/event:})をつけてください。これらのプリフィックスは出力時には取り除かれます。
---リンクの作成はリンク先のメンバが実在するかどうかを考慮せずに機械的に行われます。
--概要ページの追加をサポートします。次の手順で作業してください。&br()1. 概要ページに出力したい内容を@fileOverviewタグと同様の形式で独立したテキストファイルに記述し、保存します。 (br,3)ファイル名は任意ですが、文字エンコーディングは-eオプションと一致している必要があります。&br()2. -Dオプションのoverviewプロパティに、作成したファイルのパスを指定します。
---ファイルパスは絶対パスもしくはテンプレートディレクトリからの相対パスで指定してください。
---実在のファイルパスでなくても、-Dオプションのoverviewプロパティに&tt(){false}以外の何らかの値が設定されていれば、デフォルトの概要ページが出力されます。
---JsDoc Toolkitのバグにより、(1)のような":"を含むファイルパスはコマンドライン上の指定では正しく解釈されません。この問題を回避するため、aias-frameは(2)のようにパスの2文字目が"?"だった場合はそれを":"に置き換えてファイルを読み込むようになっています。尚、コンフィグファイルを使用している場合はこの問題は発生しません。
#divclass(bq){{{{
(1)‐D="overview:c:\overview.js"
(2)‐D="overview:c?\overview.js" --> c:\overview.js
}}}}
---概要ページのドックコメント内では、@appNameタグという特殊なタグを使用できます。@appNameタグにはアプリケーション名を設定することが想定されており、その内容は概要ページやドキュメント全体のタイトルとして出力されます。(ただし-Dオプションのtitleプロパティが指定されている場合は、そちらが優先されます。)
---&blanklink(デモページ#1){http://aias-wood.jp/jsdoc-toolkit/demo/aias-frame/1.6.0/aias-frame-sample/}で使用されている概要ページ用のドックコメントファイルをサンプルとして&link(こちら){http://www12.atwiki.jp/aias-jsdoctoolkit/?cmd=upload&act=open&pageid=63&file=sample.js}からダウンロードできます。
-- -Dオプションで以下のプロパティを使用できます。
#divstyle(width:600px;margin-left:3px;){
|copyright|コピーライト表示|
|css|CSSファイルのパスを指定し、テンプレートに独自のCSS定義を追加します。ファイルパスは絶対パスまたはテンプレートディレクトリからの相対パスで指定してください。&br()CSSファイルの内容はテンプレートに含まれる全てのページに適用されます。|
|lang|ドキュメントで使用される言語を指定します。デフォルトは日本語です。&br()ja : 日本語&br()en : 英語|
|overview|概要ページのソースとなるファイルを指定します。詳細は上の説明をご覧ください。|
|title|ドキュメントのタイトル|
}
--ドキュメント内の見出しなどで使用されているキーワードは&tt(){keywords_ja.js}、&tt(){keywords_en.js}内にパラメータ化されており、簡単に変更することができます。
&br()
***jsdoc-ja&newimage(2009/09/10 00:00:00,time=168,image=http://www1.atwiki.jp/guide/pub/new.gif)
標準テンプレートである"''jsdoc''"内のキャプションなどを日本語に置き換えたものです。ページ構成や機能はjsdocとほぼ同じです。
-ダウンロード
--&link(1.3.0){http://www12.atwiki.jp/aias-jsdoctoolkit/?cmd=upload&act=open&pageid=63&file=jsdoc-ja-1.3.0.zip}
--&link(1.2.1){http://www12.atwiki.jp/aias-jsdoctoolkit/?cmd=upload&act=open&pageid=63&file=jsdoc-ja-1.2.1.zip}
--&link_anchor(jsdoc-ja,page=プログラムの更新履歴){更新履歴}
-スクリーンショット(&blanklink(デモページ){http://aias-wood.jp/jsdoc-toolkit/demo/jsdoc-ja-shape/})
#image(jsdoc-ja_screenshot_thmb4.gif,http://aias-wood.jp/jsdoc-toolkit/demo/jsdoc-ja-shape/,blank,title=クリックするとデモページが別ウィンドウで開きます。)
-機能
--ソースコードには任意の文字エンコーディングを使用できます。
-- -Dオプションで以下のプロパティを使用できます。
#divstyle(width:400px;margin-left:3px;){
|copyright|コピーライト表示|
|title|ドキュメントのタイトル|
}
--日本語化した部分は&tt(){keywords.js}内にパラメータ化されており、簡単に変更することができます。
&br()
**プラグイン
-プラグインの詳細は[[こちら>プラグインの追加]]を参照してください。
***一括ダウンロード
このページで公開されている全てのプラグインの最新バージョンをまとめてダウンロードできます。
-[[ダウンロード>http://www12.atwiki.jp/aias-jsdoctoolkit/?cmd=upload&act=open&pageid=63&file=all-plugins-1.3.0.zip]]
&br()
***additionalOptions --- いくつかのオプションを追加する
//&newimage(2009/09/10 00:00:00,time=168,image=http://www1.atwiki.jp/guide/pub/new.gif)
JsDoc Toolkitのコマンドラインオプションとして以下を追加します。これらは&tt(){-D}オプションによるカスタムオプションとして指定してください。
#divstyle(width:600px;margin-left:10px;){{
|A|trueを指定すると、名前が"_"から始まるメンバをprivateメンバとして''扱いません''。|
|anonymous|trueを指定すると、無名関数を&tt(){$anonymous}という名前で出力します。&br()(通常、無名関数は出力されません。)|
|shortExplain|trueを指定すると、生成されたシンボルの短い説明をログに出力します。|
}}
>記述例
>java -jar jsrun.jar app\run.js myscripts\ -D="A:true" -D="anonymous:true" -D="shortExplain:true" ...
-ダウンロード
--&link(1.0.0){http://www12.atwiki.jp/aias-jsdoctoolkit/?cmd=upload&act=open&pageid=63&file=additionalOptions-1.0.0.zip}
--&link_anchor(additionalOptions,page=プログラムの更新履歴){更新履歴}
&br()
***browserObjects --- ブラウザ組み込みオブジェクトシンボルの自動生成
ドックコメントをwindowやdocumentなどブラウザ組み込みオブジェクトのメンバに対して記述したい場合があります。例えば下のようなときです。
#divclass(bq){{{{
#divclass(comment){{
/** 初期化処理を実行する。 */
}}
window.onload = function() { .... };
}}}}
しかし通常の処理では、上のドックコメントは出力されません。windowオブジェクトの定義がコード内に存在しないため、不正な記述とみなされるからです。[[@name]]タグでwindowオブジェクトを定義することもできますが、やや煩雑です。''browserObjects''プラグインは上のようなコードが存在すると、必要なオブジェクトのクラスシンボルを自動的に作成します。&br()
このプラグインがサポートするブラウザ組み込みオブジェクトは以下のとおりです。
#divstyle(width:400px;margin-left:12px;){
|window, document, navigator, frames, screen, location, history|
}
-ダウンロード
--&link(1.0.1){http://www12.atwiki.jp/aias-jsdoctoolkit/?cmd=upload&act=open&pageid=63&file=browserObjects-1.0.1.zip}
--&link_anchor(browserObjects,page=プログラムの更新履歴){更新履歴}
&br()
***easyLink --- リンクを簡単に作成する
タグの説明文中のリンク作成をより簡単に記述できるようにするプラグインです。標準仕様では説明文中に[[@link]]タグまたは<a>HTMLタグを直接書くことでリンクを作成しますが、このプラグインを適用するとリンク先を&tt(){[[}と&tt(){]]}で囲むだけでリンクを定義することができるようになります。
※従来どおり@linkタグや<a>タグを直接記述することも可能です。
-ダウンロード
--&link(1.0.0){http://www12.atwiki.jp/aias-jsdoctoolkit/?cmd=upload&act=open&pageid=63&file=easyLink-1.0.0.zip}
--&link_anchor(easyLink,page=プログラムの更新履歴){更新履歴}
-機能
--リンク先のプロトコルがhttp/https/ftp、またはメールアドレスの場合、何もしなくてもリンクとして自動認識されます。&underline(){ただしリンク先文字列の両端にはスペースまたは改行をおいてください。}
--リンクを明示的に指定するには、リンク先を&tt(){[[}と&tt(){]]}で囲みます。それらはドキュメント出力時にプラグインによって<a>タグに置き換えられます。(URLかメールアドレスかはプラグインが自動的に判断します。)
|&nowiki(){[[http://www12.atwiki.jp/aias-jsdoctoolkit/]]}|&nowiki(){<a href="http://www12.atwiki.jp/aias-jsdoctoolkit/" >http://www12.atwiki.jp/aias-jsdoctoolkit/</a>}|
|&nowiki(){[[aias@aias-wood.jp]]}|&nowiki(){<a href="mailto:aias@aias-wood.jp" >aias@aias-wood.jp</a>}|
--&tt(){>}を使用すると、リンクに表示するテキストを指定できます。
|&nowiki(){[[JsDoc Toolkitを使う!>http://www12.atwiki.jp/aias-jsdoctoolkit/]]}|&nowiki(){<a href="http://www12.atwiki.jp/aias-jsdoctoolkit/" >JsDoc Toolkitを使う!</a>}|
--&tt(){>}の代わりに&tt(){>>}を使用すると、別ウィンドウで開くリンクを作成します。表示テキストを書かず&tt(){>>}を文頭にすると、(最初の例のように)URLを表示テキストとして使用します。
|&nowiki(){[[JsDoc Toolkitを使う!>>http://www12.atwiki.jp/aias-jsdoctoolkit/]]}|&nowiki(){<a href="http://www12.atwiki.jp/aias-jsdoctoolkit/" target="_blank" >JsDoc Toolkitを使う!</a>}|
|&nowiki(){[[>>http://www12.atwiki.jp/aias-jsdoctoolkit/]]}|&nowiki(){<a href="http://www12.atwiki.jp/aias-jsdoctoolkit/" target="_blank" >http://www12.atwiki.jp/aias-jsdoctoolkit/</a>}|
--[[ネームパス]]を&tt(){[[}と&tt(){]]}で囲んで記述すると、それらはプラグインによって[[@link]]タグに置き換えられます。
|&nowiki(){[[TheClass#theMethod]]}|{@link TheClass#theMethod }|
&br()
***&aname(publishSrcHilite,option=nolink){publishSrcHilite} --- ソースファイルのハイライト処理
//&newimage(2009/09/10 00:00:00,time=168,image=http://www1.atwiki.jp/guide/pub/new.gif)
ソースファイルのハイライト処理を実行する標準プラグイン''publishSrcHilite''を拡張し、より詳細なスタイル設定ができるようにしたものです。オリジナルのpublishSrcHilite.jsを上書きして使用してください。
-ダウンロード
--&link(1.1.1){http://www12.atwiki.jp/aias-jsdoctoolkit/?cmd=upload&act=open&pageid=63&file=publishSrcHilite-1.1.1.zip}
--&link(1.1.0){http://www12.atwiki.jp/aias-jsdoctoolkit/?cmd=upload&act=open&pageid=63&file=publishSrcHilite-1.1.0.zip}
--&link_anchor(publishSrcHilite,page=プログラムの更新履歴){更新履歴}
-機能
--プラグインのソース内の&tt(){JsHilite.styles}オブジェクトの各プロパティの内容を書き換えることで、出力されるソースファイルのCSS設定を変更することができます。プロパティ名とその意味は下表のとおりです。
#divstyle(width:400px;){
|body|bodyタグのCSSスタイル|
|keyWord|JavaScriptキーワードのCSSスタイル|
|docCmt|ドックコメントのCSSスタイル|
|docTag|ドックコメント内のタグのCSSスタイル|
|comment|ドックコメントでない通常のコメントのCSSスタイル|
|number|数値のCSSスタイル|
|string|文字列のCSSスタイル|
|regExp|正規表現のCSSスタイル|
|lineNum|行番号のCSSスタイル|
|selLineColor|選択行の行番号の文字列色|
|selLineBgColor|選択行の行番号の背景色|
}
--プラグインのソース内の&tt(){JsHilite.tabToSpace}プロパティ値には、ソースファイル内のタブをいくつの半角スペースに置き換えるかを設定します。ただし0未満の値が設定された場合はタブがそのまま出力されます。
--ソースファイル内でシンボルの記述された位置の行番号を、シンボルオブジェクトのプロパティとして追加します。ただし行の割り出しはドックコメントの位置を元に行われるため、ドックコメントがついていないシンボルでは番号は付加されません。&br()このプラグインが適用された&tt{Symbol}オブジェクトには以下のプロパティが追加されます。
#divstyle(width:600px;){
|srcLineNum|行番号。不明な場合は-1。|
|srcAnchor|出力されたソースファイルHTML内で、行番号の位置を表すアンカー名。(例:"#line100")|
}
--出力されたソースファイルHTMLに対し上のsrcAnchorの値をアンカーとして指定した場合、該当する行をページの先頭にし、行番号を強調表示します。
&br()
***&aname(symbolExtensions,option=nolink){symbolExtensions} --- シンボルの機能拡張
//&newimage(2009/09/10 00:00:00,time=168,image=http://www1.atwiki.jp/guide/pub/new.gif)
&tt(){Symbol}オブジェクトにいくつかの機能追加を行うプラグインです。(最終的にドキュメントに出力されるためには、テンプレート側の対応が必要です)
-ダウンロード
--&link(1.2.2){http://www12.atwiki.jp/aias-jsdoctoolkit/?cmd=upload&act=open&pageid=63&file=symbolExtensions-1.2.2.zip}
--&link(1.2.1){http://www12.atwiki.jp/aias-jsdoctoolkit/?cmd=upload&act=open&pageid=63&file=symbolExtensions-1.2.1.zip}
--&link_anchor(symbolExtensions,page=プログラムの更新履歴){更新履歴}
-機能
--''独自タグの追加''&br()symbolExtensionsプラグインは下表に示す独自のタグをサポートします。タグの書き方は&blanklink(こちら){http://aias-wood.jp/jsdoc-toolkit/demo/aias-frame/1.5.1/aias-frame-sample/}のデモのソースコード表示を参考にしてください。
|タグ名|説明|h
|@abstract|@privateや@finalタグのような書き方でクラスメンバに指定し、そのメンバが抽象メンバであり、継承クラスが実装しなければならないことを示します。@abstractタグが記述されたメンバを持つクラス(またはそれを継承し、抽象メンバを実装していないクラス)は自動的に抽象クラスとなります。&br()@abstractタグが記述された&tt(){Symbol}オブジェクトには以下のプロパティが追加されます。 (br,4)- &tt(){isAbstract} 抽象メンバであればtrue|
|@abstractClass|@abstractClassタグは、そのシンボルが「抽象クラス」であることを示します。このタグは@classや@namespaceの位置に、それらの代わりに記述してください。&br()なおこのタグが記述されていない場合でも、抽象メンバを持っているクラス(またはそれを継承し、抽象メンバを実装していないクラス)は自動的に抽象クラスとなります。&br()抽象クラスとして定義された&tt{Symbol}オブジェクトには以下のプロパティが追加されます。 (br,4)- &tt(){isAbstractClass} 抽象クラスであればtrue|
|@implements|クラスコンストラクタのドックコメント内に、そのクラスが実装しているインタフェースのネームパスを記述します。1つのタグにカンマ区切りで複数のネームパスを書くことができます。(もちろん複数のタグに分けてもかまいません)&br()@implementsタグが記述された&tt{Symbol}オブジェクトは、以下のプロパティを持ちます。 (br,4)- &tt(){interfaces} このクラスが実装しているインタフェースのネームパスの配列 &br()また、@implementsタグが記述されたクラスを継承したクラスの&tt{Symbol}オブジェクトには以下のプロパティが追加されます。 (br,4)- &tt(){inheritedInterfaces} このクラスの継承元クラスが実装している全インタフェースのネームパスの配列|
|@interface|@interfaceタグは、そのシンボルが「インタフェース」であることを示します。このタグは@classや@namespaceの位置に、それらの代わりに記述してください。&br()@interfaceタグが記述された&tt{Symbol}オブジェクトには以下のプロパティが追加されます。 (br,4)- &tt(){isInterface} インタフェースであればtrue  (br,4)- &tt(){implementers} このインタフェースを実装しているクラスのネームパスの配列 |
|@protected|@protectedタグは、そのメンバが自身と同じクラスか、それを継承したクラスのインスタンスからのみ参照可能であることを示します。@protectedタグは&tt{Symbol}オブジェクトに&tt(){isProtected}プロパティとして反映されます。|
|@readOnly|プロパティに対して記述し、そのプロパティが読み取り専用であることを示します。&br()@readOnlyタグが記述された&tt{Symbol}オブジェクトには以下のプロパティが追加されます。 (br,4)- &tt(){isReadOnly} 読み取り専用であればtrue|
|@staticClass|@staticClassタグは、そのシンボルが(組み込みのMathオブジェクトのように)コンストラクタを持たずインスタンスを生成できない「静的クラス」であることを示します。このタグは@classや@namespaceの位置に、それらの代わりに記述してください。&br()@staticClassタグが記述された&tt{Symbol}オブジェクトには以下のプロパティが追加されます。 (br,4)- &tt(){isStaticClass} 静的クラスであればtrue|
|@todo|そのシンボルに関するTODOを記述するのに使用します。複数指定が可能です。&br()タグの内容はシンボルの&tt(){todo}プロパティに配列として格納されます。|
|@virtualClass|@virtualClassタグは、そのシンボルが「仮想クラス」であることを示します。「仮想クラス」とはプロパティ値やメソッドパラメータ・戻り値などに無名オブジェクトが使用される場合に、ドキュメント作成の便宜上それを仮にクラスとして定義するものです。したがってソース上にこのクラスを定義する実体は存在せず、[[@name]]タグによる宣言とともに使われます。このタグは@classや@namespaceの位置に、それらの代わりに記述してください。&br()@virtualClassタグが記述された&tt{Symbol}オブジェクトには以下のプロパティが追加されます。 (br,4)- &tt(){isVirtualClass} 仮想クラスであればtrue|
--''@constantタグの書式拡張''&br()@constantタグの後にデータ型/定数値/説明文をまとめて記述できるよう、タグの仕様を拡張しました。以下に示すの例1、例2は同じ内容のドックコメントと解釈されます。(ただし標準仕様では定数値を記述する書式は無いため、そこだけは異なります。)&br()データ型、定数値、説明文はそれぞれ省略することも可能です。ただし過去のバージョンとの互換性のため、例3のようにデータ型と定数値を両方省略した場合、タグの後ろに続くコメントは定数値を表すものと解釈されます。
#divclass(bq){{{{
例1:
#divclass(comment){{
/** &spanclass(tag){@constant} {Number}(0.05) 消費税の税率 */
}}
Taxes.CONSUMPTION_TAX = 0.05;
&br()&br()
例2:
#divclass(comment){{
/**
 (br,1)* 消費税の税率
 (br,1)* &spanclass(tag){@constant}
 (br,1)* &spanclass(tag){@type} Number
 (br,1)*/
}}
Taxes.CONSUMPTION_TAX = 0.05;
&br()&br()
例3:
#divclass(comment){{
/** &spanclass(tag){@constant} 0.05 */
}}
Taxes.CONSUMPTION_TAX = 0.05;
}}}}
---定数値は&tt{Symbol}オブジェクトに&tt(){constantValue}プロパティとして反映されます。
--''@fieldタグの書式拡張#1''&br()@fieldタグを使用してプロパティのデータ型/初期値/説明文をまとめて記述できるよう、タグの仕様を拡張しました。以下に示すの例1、例2は同じ内容のドックコメントと解釈されます。データ型/初期値/説明文はそれぞれ省略可能です。
#divclass(bq){{{{
例1:
#divclass(comment){{
/** &spanclass(tag){@field} {Boolean}(false) 納税済みフラグ */
}}
this.isPaid = false;
&br()&br()
例2:
#divclass(comment){{
/**
 (br,1)* 納税済みフラグ
 (br,1)* &spanclass(tag){@type} Boolean
 (br,1)* &spanclass(tag){@default} false
 (br,1)*/
}}
this.isPaid= false;
}}}}
--''@fieldタグの書式拡張#2''&br()@fieldタグを連続して記述することで、プロパティ値となっている無名オブジェクトのメンバを表現することができます。下の例のように説明文の後もしくは2つ目以降の@fieldタグの説明文が"."から開始されていれば、それに続く最初の空白文字まで無名オブジェクトのプロパティの名前、その後が説明文とみなされます。逆にこの書式に従っていない場合、2つ目以降の@fieldタグは無視されます。
#divclass(bq){{{{
#divclass(comment){{
/**
 (br,1)* テンプレート定義オブジェクト
 (br,1)* &spanclass(tag){@type} Object
 (br,1)* &spanclass(tag){@field} {String} .name テンプレート名
 (br,1)* &spanclass(tag){@field} {String} .version バージョン
 (br,1)* &spanclass(tag){@field} {String} .ext 出力ファイルの拡張子
 (br,1)* &spanclass(tag){@field} {String} .outDir 出力ディレクトリ
 (br,1)*/
}}
publish.conf = {
 (br,4)name: (4)"aias-frame",
 (br,4)version: (1)"1.5.0",
 (br,4)ext: (5)".html",
 (br,4)outDir: (2)JSDOC.opt.d || SYS.pwd+"../out/aias-frame/"
 (br)};
}}}}
---上の例では省略されていますが、データ型の後ろに初期値を記述することも可能です。
---パースされた@fieldタグ(DocTagオブジェクト)は1つ目の@fieldタグに追加される&tt(){properties}プロパティに配列として設定されます。DocTagオブジェクトの&tt(){name}プロパティにはコメントに記述したプロパティの名前が、"."を除去した形式で設定されます。
--''継承先クラス情報の追加''&br()&tt{Symbol}オブジェクトに&tt(){inheritedTo}プロパティが追加されます。このプロパティはこのシンボルを継承するシンボルの[[ネームパス]]の配列です。
--''@propertyタグのバグ修正''&br()オリジナルの[[@property]]タグのパース処理に存在する、プロパティが全てスタティックメンバと判定されてしまうバグの修正です。
&br()
***tagLineBreak --- 1行に複数のタグを書けるようにする
標準仕様ではタグは行の先頭から記述することになっていますが、ドックコメントの行数が多くなって読みにくくなるときがあります。このプラグインを追加すると、行の途中からタグを複数記述できるようになります。ただしタグとタグの間には1つ以上のスペースを空けてください。
-ダウンロード
--&link(1.0.0){http://www12.atwiki.jp/aias-jsdoctoolkit/?cmd=upload&act=open&pageid=63&file=tagLineBreak.zip}
--&link_anchor(tagLineBreak,page=プログラムの更新履歴){更新履歴}
&br()
***tagSynonyms --- タグに別名をつける
標準機能の一部として組み込まれているプラグインファイル"''tagSynonyms.js''"に、下表の別名定義を追記したものです。&br()
ダウンロードしたファイルを既存ファイルに上書き保存してお使いください。また、あなた自身の別名を加え、更にカスタマイズすることをお勧めします。
-ダウンロード
--&link(1.0.0){http://www12.atwiki.jp/aias-jsdoctoolkit/?cmd=upload&act=open&pageid=63&file=tagSynonyms.zip}
--&link_anchor(tagSynonyms,page=プログラムの更新履歴){更新履歴}
-追加された別名
#divstyle(width:400px;margin-left:3px;){
|標準タグ名|別名|h
|@constant|@final, @const|
|@param|@arg|
}
----
2011-09-02T22:08:03+09:00
1314968883
-
プログラムの更新履歴
https://w.atwiki.jp/aias-jsdoctoolkit/pages/65.html
#include_js(http://www12.atwiki.jp/aias-jsdoctoolkit/?cmd=upload&act=open&page=%E3%83%88%E3%83%83%E3%83%97%E3%83%9A%E3%83%BC%E3%82%B8&file=common1.js)
&small(){[[トップページ]] > [[ダウンロード]] >}
#divclass(page_title){
&this_page()
}
このページは[[ダウンロード]]で公開されているプログラムの更新履歴一覧です。
#divclass(cont_title){目次}
#divclass(contents){
#contents()
}
**テンプレート
***&aname(aias-frame,option=nolink){aias-frame}
-&color(#ff6600){''1.6.1''} (2010/04/05)
--説明文中に<code>タグで記述されたソースコードのハイライト表示機能を追加。
--細かい機能追加、不具合修正など
-&color(#ff6600){''1.6.0''} (2010/01/18)
--「プライベートメンバを隠す」チェックボックスを追加。
--概要ページの出力機能を追加。
--@exampleタグによるサンプルコードのハイライト表示機能を追加。
--ソースファイルのシンボル宣言位置へ移動するリンクを詳細ページ内に追加。
-- -Dオプションにcssプロパティを追加。
--名前空間階層内でクラスが子階層を持っていた場合にエラーとなる不具合を修正。
--細かい機能追加、不具合修正など
-''1.5.1'' (2009/12/16)
--名前空間シンボルの詳細ページに、直下の名前空間とクラスの一覧を表示する機能を追加。
--多階層の名前空間でフィルタ機能を使用した場合にエラーが発生する不具合を修正。
--組み込みオブジェクトが全て名前空間として出力される不具合を修正。
--細かい機能追加、不具合修正など
-''1.5.0'' (2009/12/07)
--クラス一覧ページ、ファイル一覧ページの内容を全体的に変更。
--symbolExtensionsプラグイン(バージョン1.2.0)の拡張機能に対応。
--シンボルへのリンク上にカーソルが乗ったとき、そのシンボルの簡易情報をポップアップ表示する機能を追加。
--IE6/7で内部リンクの一部が正常に動作していなかった不具合を修正。
--細かい機能追加、不具合修正など
-''1.4.0'' (2009/11/17)
--デザインを全体に変更
--symbolExtensionsプラグイン(バージョン1.1.0)の拡張機能に対応。
--テンプレートのソースファイルを分割し、コメントを日本語化。
--細かい機能追加、不具合修正など
-''1.3.0'' (2009/10/30)
--デザインを全体に変更
--@linkタグの内容をページ内リンクに変換する機能を追加
--カスタムパラメータlangを追加
--細かい機能追加、不具合修正など
-''1.2.2'' (2009/10/10)
--クラスフィルタで正しいマッチング結果とならない不具合を修正
-''1.2.1'' (2009/10/09)
--クラスフィルタのマッチング方式に部分一致を追加
-''1.2.0'' (2009/09/21)
--クラスリストのフィルタリング機能を追加
--細かい不具合修正など
-''1.1.1'' (2009/09/10)
--JsDoc Toolkit 2.3.2 までの更新に対応
-''1.1.0'' (2009/08/25)
--クラスリストにクラスメンバ表示機能を追加
--ドキュメント内のキーワードをパラメータ化
--細かい不具合修正など
-''1.0.0'' (2009/07/25)
--新規作成
***&aname(jsdoc-ja,option=nolink){jsdoc-ja}
-&color(#ff6600){''1.3.0''} (2011/09/02)
--JsDoc Toolkit 2.4.0 ベースに移行
-&color(#ff6600){''1.2.1''} (2009/09/08)
--JsDoc Toolkit 2.3.2 ベースに移行
-''1.2.0'' (2009/07/04)
--symbolExtensionsプラグインへの対応を追加
-''1.1.0'' (2009/06/27)
--JsDoc Toolkit 2.3.0 ベースに移行
-''1.0.0'' (2009/06/14)
--新規作成
**プラグイン
***&aname(additionalOptions,option=nolink){additionalOptions}
-&color(#ff6600){''1.0.0''} (2010/04/04)
--新規作成
***&aname(browserObjects,option=nolink){browserObjects}
-&color(#ff6600){''1.0.1''} (2009/07/23)
--ブラウザ組み込みオブジェクトにhistoryを追加
--メンバのいないオブジェクトが出力されることがあるバグを修正
-''1.0.0'' (2009/07/09)
--新規作成
***&aname(easyLink,option=nolink){easyLink}
-&color(#ff6600){''1.0.0''} (2009/09/22)
--新規作成
***&aname(publishSrcHilite,option=nolink){publishSrcHilite}
-&color(#ff6600){''1.1.1''} (2010/04/04)
--出力されたソースファイルHTMLに対し、アンカーで指定された行をページの先頭にし、行番号を強調する機能を追加。
-&color(#ff6600){''1.1.0''} (2010/01/18)
--ソースファイル内でシンボルの記述された位置を判定し、行番号をシンボルオブジェクトのプロパティとして出力する機能を追加。
--ソースコードHTML内の行番号の表示スタイルを変更。
-''1.0.1'' (2009/08/26)
--@linkタグがハイライトされていなかった不具合を修正
--連続したタグが正しくハイライトされていなかった不具合を修正
--IE6でマルチバイト文字のフォントが正しく表示されないことがある現象に対応
-''1.0.0'' (2009/07/26)
--新規作成
***&aname(symbolExtensions,option=nolink){symbolExtensions}
-&color(#ff6600){''1.2.2''} (2010/04/04)
--additionalOptionsプラグインの機能に対応し、Aオプションがtrueの場合に@propertyタグ内の"_"で始まるメンバがprivateメンバと判定されないように改修。
-&color(#ff6600){''1.2.1''} (2010/01/18)
--@fieldタグの拡張で、通常の説明文の後に"."付きの@fieldタグを書いた場合もプロパティのプロパティとみなされるように改修。
-''1.2.0'' (2009/12/07)
--@abstractタグ、@abstractClassタグ、@readOnlyタグ、@virtualClassタグのサポートを追加。
--@constantタグの仕様拡張
--@fieldタグの仕様拡張
--@implementsタグで複数のインタフェース名が記述されたときに正しく解釈されないケースがあったのを修正。
-''1.1.0''(2009/11/16)
--@implementsタグ、@interfaceタグ、@staticClassタグ、@todoタグのサポートを追加。
--@propertyタグでprivateと識別されたシンボルのネームパスの区切りが"-"になる不具合を修正
-''1.0.2'' (2009/10/10)
--@propertyタグで、先頭が"_"で始まっているメンバのスコープがprivateと識別されるように修正
-''1.0.1'' (2009/07/06)
--シンボルが名前空間のとき、@propertyタグで記述されたメンバがスタティックになるように修正
-''1.0.0'' (2009/07/04)
--新規作成
***&aname(tagLineBreak,option=nolink){tagLineBreak}
-&color(#ff6600){''1.0.0''} (2009/06/15)
--新規作成
***&aname(tagSynonyms,option=nolink){tagSynonyms}
-&color(#ff6600){''1.0.0''} (2009/06/15)
--新規作成
----
2011-09-02T16:19:36+09:00
1314947976
-
トップページ
https://w.atwiki.jp/aias-jsdoctoolkit/pages/1.html
#divid(site_desc){
**このサイトについて
}
「JsDoc Toolkitを使う!」は、JavaScriptドキュメンテーションツールであるJsDoc Toolkitの使い方を紹介するサイトです。JsDoc Toolkitは非常に優れたツールですが、まとまった日本語の情報が少ないようなので何となく作ってみました。
#divclass(additional){
-このサイトの内容はあくまで管理人個人の理解に基づくものです。ご利用は自己責任でお願いします。
-記載されている情報はバージョン&color(#ff6600){''2.4.0''}時点のものです。
}
**JsDoc Toolkitとは
[[JsDoc Toolkit>>http://code.google.com/p/jsdoc-toolkit/]]は、JavaScriptソースコードに記述されたコメントを元に、HTML形式のドキュメントを生成するオープンソースのフリーソフトウェアです。作者はMichael Mathews、ライセンスはMITライセンスです。
#divclass(additional){
-JavaScriptのドキュメント作成ツールとしては[[JSDoc>>http://jsdoc.sourceforge.net/]]が良く知られていますが、JsDoc ToolkitとJSDocは全く別のものです。(ちなみにMichael MathewsはJSDocの主要な開発者の一人だったようです)なおJSDocは既に開発を停止しており、JsDoc Toolkitはその後継プロジェクトとされています。
}
JsDoc Tooikitはそれ自身がJavaScriptで記述されており、JavaによるJavaScriptの実装である[[Rhino>>https://developer.mozilla.org/ja/Rhino]]上で動作します。従ってJsDoc Tooikitを使用するにはJavaの実行環境(JRE)が必要です。
#divclass(additional){
-JsDoc Toolkitのインストールについては、[[こちら>インストール]]を参照してください。
}
ドキュメント生成のためのコメント(ドックコメントと呼びます)記法はJavaDocをベースにしており、比較的容易に習得することができます。ドックコメント付きのソースコードと、そこからJsDoc Toolkitによって生成されたドキュメントのスクリーンショットを下に示します。
#region(close, << クリックするとソースコードを展開します...)
#divclass(bq){{{{
#divclass(comment){{
/**
 (1)* 新しいStringBufferオブジェクトを作成する。
 (1)* &spanclass(tag){@class} 文字列をバッファリングし、文字列の効率的な結合を行うクラス
 (1)* &spanclass(tag){@param} {String} [str] バッファリングする文字列
 (1)* &spanclass(tag){@example} alert(new StringBuffer("このように").append("文字列を").append("結合します。").toString());
 (1)*/
}}
function StringBuffer(str) {
#divclass(comment){{
 (4)/**
 (5)* バッファされている文字列の配列
 (5)* &spanclass(tag){@type} String[]
 (5)* &spanclass(tag){@private}
 (5)*/
}}
 (4)this._str = str?[str]:[];
}
#divclass(comment){{
/**
 (1)* バッファに文字列を追加する。
 (1)* &spanclass(tag){@param} {String} str バッファリングする文字列
 (1)* &spanclass(tag){@return} {StringBuffer} このオブジェクトへの参照
 (1)*/
}}
StringBuffer.prototype.append = function(str) {
 (4)this._str.push(str);
 (4)return this;
};
#divclass(comment){{
/**
 (1)* バッファリングされた文字列を結合して返す。
 (1)* &spanclass(tag){@return} {String} 結合された文字列
 (1)*/
}}
StringBuffer.prototype.toString = function() {
 (4)return this._str.join("");
};
}}}}
#divclass(space){}
#endregion
#region(open, << クリックするとスクリーンショットを展開します...)
#image(screenshot.gif,http://aias-wood.jp/jsdoc-toolkit/demo/jsdoc-pub/symbols/StringBuffer.html,blank,title=クリックするとデモページを開きます。)
#endregion
#divclass(space){}
#divclass(additional){
-ドックコメントの書き方については、[[こちら>ドックコメントの書き方]]を参照してください。
-ドキュメントの作成手順については、[[こちら>ドキュメントの作成]]を参照してください。
}
JsDoc Tooikitの特徴のひとつは、独自のテンプレートシステムによるドキュメント表示形式の柔軟性です。テンプレートはスキンのようなもので、JsDoc Tooikitのコア機能である構文解析機能から完全に独立しています。このためユーザはテンプレートを切り替えることで、JsDoc Tooikitのソースコードに手を入れることなく独自のドキュメントスタイルを利用できるようになっています。
例えば上に挙げたソースコードを管理人が作成したテンプレート&link_anchor(aias-frame,page=ダウンロード){aias-frame}を使って出力すると、次のようになります。
#divclass(space){}
#region(open, << クリックするとスクリーンショットを展開します...)
#image(aias-frame_screenshot_top8.png,http://aias-wood.jp/jsdoc-toolkit/demo/aias-frame/aias-frame-pub/?StringBuffer,blank,title=クリックするとデモページを開きます。)
#endregion
#divclass(space){}
#divclass(additional){
-テンプレートなどによるJsDoc Toolkitのカスタマイズについては、[[こちら>カスタマイズ]]を参照してください。
-管理人が作成したテンプレートなどを[[こちら>ダウンロード]]からダウンロードできます。
}
&include(コンテンツ)
** リンク
-JsDoc Toolkit official site&br()&blanklink(){http://code.google.com/p/jsdoc-toolkit/}
-JsDoc Toolkit Users Group&br()&blanklink(){http://groups.google.com/group/jsdoc-2}
----
2011-08-30T23:20:01+09:00
1314714001
-
コマンドラインオプション
https://w.atwiki.jp/aias-jsdoctoolkit/pages/54.html
#include_js(http://www12.atwiki.jp/aias-jsdoctoolkit/?cmd=upload&act=open&page=%E3%83%88%E3%83%83%E3%83%97%E3%83%9A%E3%83%BC%E3%82%B8&file=common1.js)
&small(){[[トップページ]] > [[ドキュメントの作成]] >}
#divclass(page_title){
&this_page()
}
このページでは、コマンドラインからJsDoc Toolkitを実行しドキュメントを作成する方法について説明します。
#divclass(additional){
-公式サイトのhttp://code.google.com/p/jsdoc-toolkit/wiki/CommandlineOptionsを元に作成しました。
}
#divclass(cont_title){目次}
#divclass(contents){
#contents()
}
***サンプルの動作環境について
このページに記載されているサンプルは、以下の動作環境を想定しています。
-OS:Windows (コマンドプロンプト)
-JRE:JRE 6 &spanclass(additional){※「%JREインストールディレクトリ%¥bin」にpathが設定済みとする}
-カレントディレクトリ:JsDoc Toolkitのインストールディレクトリ
**記述例
>java -jar jsrun.jar app\run.js c:\example\js\ -t=templates\jsdoc -d=c:\out\example -a
#divclass(space)
JsDoc ToolkitはJavaで実装されたJavaScript実行環境である"Rhino"上で動作します。RhinoはJsDoc Toolkitの配布パッケージに含まれており、実行アプリケーション"jsrun"から起動されます。そしてjsrunはJsDoc Toolkitのメインスクリプトである"run.js"へのパスをパラメータにとります。&br()したがってコマンドは必ず下のように開始されなければなりません。
>java &spanclass(emph2){-jar jsrun.jar app\run.js} ...
**入力ファイルの指定
オプションを除くコマンドライン引数は、入力ファイルまたはディレクトリへのパスの指定と解釈されます。ディレクトリを指定した場合、配下のファイル全てが入力対象となります。(ただし条件があります。&tt(){-r}オプションと&tt(){-x}オプションを参照してください。)
入力ファイルとディレクトリは複数指定でき、ファイルとディレクトリを混在させることも可能です。
>java -jar jsrun.jar app\run.js &spanclass(emph2){one\file.js two\file.js} -t=templates\jsdoc
>java -jar jsrun.jar app\run.js &spanclass(emph2){myscripts\} -t=templates\jsdoc
>java -jar jsrun.jar app\run.js &spanclass(emph2){myscripts\ one\file.js} -t=templates\jsdoc
**オプション
全てのオプションは&tt(){-x}または&tt(){-x=value}という形式で指定されます。(=の両側にスペースを入れないでください。)またオプションの出現順は特に意味を持ちません。
|~オプション名|説明|h
|&tt(){-a&br()--allfunctions}|ドックコメントが付いていない関数(メソッド)も出力します。このオプションを指定しない場合、ドックコメントが付いている要素だけが出力対象となります。&br()- 詳細は&link_anchor(allfiles){こちら}を参照してください。|
|&tt(){-c&br()--conf}|オプション設定を含むコンフィグファイルのパスを指定します。&br()- コンフィグファイルの書き方は&link_anchor(conffile){こちら}を参照してください。|
|&tt(){-d=<PATH>&br()--directory=<PATH>}|出力ディレクトリを指定します。省略した場合、JsDoc Toolkitのインストールディレクトリ直下の"out"ディレクトリに出力されます。&br()- 詳細は&link_anchor(outdir){こちら}を参照してください。|
|&tt(){-D="myVar:My value"&br()--define="myVar:My value"}|ドキュメントの中で使用できるパラメータを独自に定義します。テンプレートを自作した場合などに使われます。このオプションは複数指定が可能です。|
|&tt(){-e=<ENCODING>&br()--encoding=<ENCODING>}|入力および出力ファイルの文字エンコーディングを指定します。|
|&tt(){-E="REGEX"&br()--exclude="REGEX"}|指定された正規表現にマッチするファイルを処理対象から除外します。このオプションは複数指定が可能です。|
|&tt(){-h&br()--help}|ヘルプメッセージを表示し、終了します。|
|&tt(){-m&br()--multiples}|このオプションを指定すると、シンボルが重複して記述されている場合でも警告を出力しません。記述は最初に見つかったものが優先されます。 (2.4.0~)|
|&tt(){-n&br()--nocode}|コードを全て無視し、[[@name]]タグと共に記述された内容だけでドキュメントを作成します。|
|&tt(){-o=<PATH>&br()--out=<PATH>}|ログの出力先ファイルを指定します。(デフォルトでは、ログは標準出力に出力されます。)|
|&tt(){-p&br()--private}|privateなスコープの要素([[@private]]タグか[[@inner]]タグがつけられた、あるいはアンダースコア( _ )から始まる名前を持つ)をドキュメントに出力します。|
|&tt(){-q&br()--quiet}|このオプションを指定すると、警告も含め処理中のメッセージを全て出力しません。|
|&tt(){-r[=<DEPTH>]&br()--recurse[=<DEPTH>]}|ソースディレクトリを何階層まで下にたどるかを指定します。&br()- 詳細は&link_anchor(recursing){こちら}を参照してください。|
|&tt(){-s&br()--suppress}|このオプションを指定すると、ソースコードを出力しません。|
|&tt(){-S&br()--securemodules}|ソースコードを&blanklink(SecurableModules){https://wiki.mozilla.org/ServerJS/Modules/SecurableModules}パターンで記述されたものとしてパースします。 (2.2.0~)|
|&tt(){-t=<PATH>&br()--template=<PATH>}|出力フォーマットを定義するテンプレートを指定します。このオプションは''必須''です。&br()- 詳細は&link_anchor(templates){こちら}を参照してください。|
|&tt(){-T&br()--test}|全てのユニットテストを実行し、終了します。|
|&tt(){-u&br()--unique}|標準テンプレートjsdocで、各クラスの詳細ページが必ずユニークになるようにファイルを作成します。大文字小文字を区別しないファイルシステムにおいて、クラス名に大文字小文字しか違いのないクラスの詳細ページファイル名が重複しないようにするためのオプションです。 (2.3.0~)|
|&tt(){-v&br()--verbose}|処理内容について詳細なメッセージを出力します。|
|&tt(){-x=<EXT>[,EXT]...&br()-ext=<EXT>[,EXT]...}|読み込みの対象とするファイル拡張子を指定します。(デフォルトでは&tt(){js}のみです。)&br()- 詳細は&link_anchor(extension){こちら}を参照してください。|
|&tt(){-Z}|ソースコードから生成された全ての&tt(){Symbol}オブジェクトの内容をコンソールにダンプします。|
***&aname(templates,option=nolink){テンプレートを指定する}
出力ファイルを生成するには、ドキュメントのフォーマットを規定するテンプレートの指定が必須です。使いたいテンプレートを指定するには&tt(){-t}オプションを使用します。
>java -jar jsrun.jar app\run.js myscripts\ &spanclass(emph2){-t=templates\jsdoc}
注意:&tt(){-t}オプションにはファイル名ではなく''ディレクトリ''を指定しなければならず、かつそのディレクトリには"publish.js"という名前のファイルが存在しなければなりません。
#divclass(additional){
-テンプレートの仕様、作成方法については[[こちら>テンプレート]]を参照してください。
}
***&aname(outdir,option=nolink){出力ディレクトリを指定する}
デフォルトでは作成されたドキュメントはJsDoc Toolkitがインストールされているディレクトリ直下の"out"ディレクトリに出力されます。出力ディレクトリを変更するには、&tt(){-d}オプションを使用します。
>java -jar jsrun.jar app\run.js myscripts\ -t=templates\jsdoc &spanclass(emph2){-d=my_docs myscripts\}
***&aname(recursing,option=nolink){ディレクトリを再帰的にたどる}
入力パスとして''ディレクトリ''を指定した際、デフォルトの動作ではJsDoc Toolkitはディレクトリ直下にある拡張子が".js"の全ファイルを入力ファイルとしますが、サブディレクトリをそれ以上たどることはありません。&br()
JsDoc Toolkitに対しサブディレクトリを更に下へ進ませたい場合は、&tt(){-r}オプションを使用します。このオプションはデフォルトでは10階層までのサブディレクトリを走査し入力ファイルを収集しますが、下のように階層数を明示指定することもできます。
>java -jar jsrun.jar app\run.js &spanclass(emph2){-r=4} myscripts\ -t=templates\jsdoc
***&aname(extension,option=nolink){ソースファイルの拡張子をカスタマイズする}
デフォルトではJsDoc Toolkitはファイル拡張子が".js"(大文字小文字は区別しません)のファイルだけを入力ファイルとして読み込みます。異なる拡張子を指定したい場合は、&tt(){-x}オプションを使用します。例えば拡張子".sc"のファイルの場合は、以下のようにします。
>java -jar jsrun.jar app\run.js &spanclass(emph2){-x=sc} myscripts\ -t=templates\jsdoc
下のように複数の拡張子を指定することもできます。
>java -jar jsrun.jar app\run.js &spanclass(emph2){-x=sc,js,txt} myscripts\ -t=templates\jsdoc
注意:&tt(){-x}オプションの値にはドット(.)をつけないでください。例えば&tt(){-x=.sc}は正常に動作しません。&br()
***&aname(allfiles,option=nolink){ドックコメントの書かれていない関数を出力する}
デフォルトでは、ドキュメントに出力されるのはドックコメントが書かれている要素だけです。コメントされていない関数(メソッド)もドキュメントに含めるには、&tt(){-a}オプションを指定します。
>java -jar jsrun.jar app\run.js -t=templates\jsdoc &spanclass(emph2){-a} myscripts\
注意:&tt(){-a}オプションを使用しても、ドックコメントが付いていない変数(プロパティ)は出力されません。
***&aname(conffile,option=nolink){コンフィグファイルを使う}
同じコマンドを何度も入力するのが面倒になってきたら、&tt(){-c}オプションでコンフィグファイルを使用することもできます。
>java -jar jsrun.jar app\run.js &spanclass(emph2){-c=sample.conf}
コンフィグファイルの内容は、下に示すようなJSONに良く似た形式のテキストデータです。全体が1つの"オブジェクト"となっており、各オプションが"プロパティ"に相当します。
#divclass(additional){
-サンプルのコンフィグファイルが「conf¥sample.conf」という名前でJsDoc Toolkitの配布パッケージに同梱されています。
}
>{
>&space(2)// source files to use
>&space(2)_: ["myscripts\\", "one\\file.js"],
>&space(2)
>&space(2)// document all functions, even uncommented ones
>&space(2)a: true,
>&space(2)
>&space(2)// including those marked @private
>&space(2)p: true,
>&space(2)
>&space(2)// some extra variables I want to include
>&space(2)D: {generatedBy: "Michael Mathews", copyright: "2008"},
>&space(2)
>&space(2)// use this directory as the output directory
>&space(2)d: "docs",
>&space(2)
>&space(2)// use this template
>&space(2)t: "templates\\jsdoc"
>}
上のコンフィグファイルは、コマンドラインで下のように記述したのと同じ意味です。
>java -jar jsrun.jar app\run.js myscripts\ one\file.js -a -p -D="generatedBy:Michael Mathews" -D="copyright:2008" -d=docs -t=templates\jsdoc
コンフィグファイルのポイントをまとめると以下のようになります。
-プロパティ"_"には入力ファイルパスを配列で指定します。ファイルが1つであっても配列で指定してください。
-&tt(){-D}オプションは1つのオブジェクトとし、名前と値のセットを記述します。
-Windows環境の場合、パス区切り文字(¥)をエスケープしてください。
-コンフィグファイル内の指定とコマンドライン上のオプション指定が重複した場合、コマンドラインの方が優先されます。
**サンプルシェルスクリプト
バージョン2.2.0以降のJsDoc Toolkitには、サンプルシェルスクリプト&tt(){jsrun.sh}が同梱されています。参考にしてみてください。
**関連項目
-[[JsDoc Toolkit Ant Task]]は、JsDoc ToolkitをAntタスクとして実行できるようにするラッパープログラムです。
----
2011-08-30T23:18:22+09:00
1314713902
-
組み込みオブジェクト リファレンス
https://w.atwiki.jp/aias-jsdoctoolkit/pages/58.html
#include_js(http://www12.atwiki.jp/aias-jsdoctoolkit/?cmd=upload&act=open&page=%E3%83%88%E3%83%83%E3%83%97%E3%83%9A%E3%83%BC%E3%82%B8&file=common1.js)
&small(){[[トップページ]] > [[カスタマイズ]] >}
#divclass(page_title){
&this_page()
}
このページではテンプレートで使用できるJsDoc Toolkitの組み込みオブジェクトとそのメンバの一部を説明します。&br()
-JsDoc Tookitのソースコードから直接作成した、より詳細なドキュメントは&blanklink(こちら){http://aias-wood.jp/jsdoc-toolkit/demo/aias-frame/jsdoctk-doc/}をご覧下さい。
#divclass(cont_title){目次}
#divclass(contents){
#contents()
}
**JSDOC 名前空間
JsDoc Toolkitが提供する各クラスのコンテナとして機能する名前空間です。クラスコンストラクタのほか、以下のプロパティが定義されています。特に&tt(){opt}プロパティはテンプレート作成者にとって重要です。
|~プロパティ|説明|h
|&tt(){<Object>&br()JSDOC.''opt''}|optプロパティは無名オブジェクトで、プロパティとして[[コマンドラインオプション]]の設定値を持っています。プロパティ名はコンフィグファイルで使用されている名称と同じです。&br()ユーザが設定した入力ファイルパスの配列は"_"プロパティにセットされています。またJsDoc Toolkitがそれをパースした実際のソースファイルのリストは、''srcFiles''プロパティに格納されています。|
|&tt(){<String>&br()JSDOC.''VERSION''}|JsDoc Toolkitのバージョン|
**JSDOC.JsPlate クラス
JsPlateクラスはテンプレートファイルにシンボルオブジェクトなどのデータを適用し、整形されたドキュメントを生成します。
|~コンストラクタ|説明|h
|&tt(){new ''JsPlate''(templateFile)}|引数にテンプレートファイルのパスを取り、JsPlateオブジェクトを作成します。|
|~メソッド|説明|h
|&tt(){<String>&br()object.''process''(data[,compact])}|テンプレートにデータを渡し、生成されたドキュメント文字列を返します。compact=trueとすると、テンプレートから改行と空白を削除して出力します。|
**JSDOC.SymbolSet クラス
SymbolSetはSymbolオブジェクトのコレクションクラスです。通常JsDoc Toolkitによって1つだけインスタンスが作成され、[[publish.js]]内の&tt(){publish}関数は引数としてこのインスタンスを受け取ります。
|~メソッド|説明|h
|&tt(){<JSDOC.Symbol>&br()object.''addSymbol''(symbol)}|Symbolオブジェクトを追加します。追加しようとしているシンボルと同じ[[ネームパス]]を持つシンボルが既に登録されている場合、ネームパスと関連付けられたオブジェクト内の参照は新たに追加されたSymbolオブジェクトに移ります。|
|&tt(){<void>&br()object.''deleteSymbol''(alias)}|シンボルの[[ネームパス]]を引数として受け取り、対応するSymbolオブジェクトの登録を削除します。|
|&tt(){<Symbol>&br()object.''getSymbol''(alias)}|シンボルの[[ネームパス]]を引数として受け取り、対応するSymbolオブジェクトを返します。ネームパスに対応するシンボルが存在しない場合の戻り値はundefinedです。|
|&tt(){<Symbol>&br()object.''getSymbolByName''(name)}|シンボルの名前(nameプロパティ)を引数として受け取り、対応するSymbolオブジェクトの内最初に見つかったものを返します。ネームパスに対応するシンボルが存在しない場合の戻り値はundefinedです。|
|&tt(){<Boolean>&br()object.''hasSymbol''(alias)}|シンボルのネームパスを引数として受け取り、対応するシンボルが存在すればtrueを、しなければfalseを返します。|
|&tt(){<String[]>&br()object.''keys''()}|オブジェクトに登録されている全てのSymbolオブジェクトのネームパスの配列を返します。|
|&tt(){<String>&br()object.''renameSymbol''(oldAlias,newAlias)}|&tt(){oldAlias}で登録されたシンボルのネームパスを&tt(){newAlias}に置換し、新しいネームパスを返します。このメソッドがSymbolオブジェクトのaliasプロパティそのものを書き換えてしまう点に注意してください。|
|&tt(){<Symbol[]>&br()object.''toArray''()}|オブジェクトに保持されている全てのSymbolオブジェクトの配列を返します。|
**JSDOC.Symbol クラス
Symbolクラスは1つのシンボルを表します。通常このクラスのインスタンスはSymbolSetオブジェクトのメソッドから取得されます。
|~プロパティ|説明|h
|~&tt(){<String>&br()object.''alias''}|このシンボルの完全な[[ネームパス]]。ただしファイルシンボルの場合はファイルパスが設定されます。|
|&tt(){<JSDOC.DocTag>&br()object.''augments''}|[[@augments]]タグから作成された、このシンボルの継承元クラス情報を保持するDocTagオブジェクトの配列|
|&tt(){<String>&br()object.''author''}|作者情報。[[@author]]タグが複数記述されていた場合、カンマ区切りの文字列に結合されています。|
|&tt(){<String>&br()object.''classDesc''}|クラスの説明文。[[@class]]タグまたは[[@namespace]]タグの説明文が設定されています。|
|&tt(){<JSDOC.DocComment>&br()object.''comment''}|このシンボルのドックコメントをパースしたDocCommentオブジェクト|
|&tt(){<String>&br()object.''defaultValue''}|デフォルト値。[[@default]]タグの内容が設定されています。|
|&tt(){<String>&br()object.''deprecated''}|非推奨情報。[[@deprecated]]タグが複数記述されていた場合、改行文字区切りの文字列に結合されています。|
|&tt(){<String>&br()object.''desc''}|シンボルの説明文。ドックコメントの先頭に書かれたタグなしの説明文や、[[@description]]タグの説明文が設定されています。またシンボル種別が&tt(){FILE}の場合、[[@fileOverview]]タグの説明文が設定されています。&br()これらが複数記述されていた場合、改行文字区切りの文字列に結合されています。|
|&tt(){<JSDOC.DocTag[]>&br()object.''example''}|サンプルコード。[[@example]]タグをパースしたDocTagオブジェクトの配列です。|
|&tt(){<JSDOC.DocTag[]>&br()object.''exceptions''}|例外。[[@throws]]タグをパースしたDocTagオブジェクトの配列です。|
|&tt(){<Object[]>&br()object.''inherits''}|[[@borrows]]タグから作成された、メンバの借用関係を示す無名オブジェクトの配列。無名オブジェクトは以下のプロパティを持ちます。 (br,4)&tt(){alias} -- 借用元メンバのネームパス (br,4)&tt(){as (3)} -- 借用先メンバのネームパス|
|&tt(){<JSDOC.Symbol[]>&br()object.''inheritsFrom''}|[[@augments]]タグから作成された、このシンボルの継承元クラスを表すシンボルオブジェクトの配列|
|&tt(){<String>&br()object.''isa''}|シンボルの種別を表す文字列 (br,4)&tt(){CONSTRUCTOR} -- クラス(コンストラクタ)、名前空間 (br,4)&tt(){FILE (7)} -- ファイル。[[@fileOverview]]タグの内容を持ちます。 (br,4)&tt(){FUNCTION (3)} -- 関数、メソッド、イベント (br,4)&tt(){OBJECT (5)} -- 上記以外のオブジェクト(変数、プロパティなど)|
|&tt(){<Boolean>&br()object.''isConstant''}|このシンボルが定数ならtrue|
|&tt(){<Boolean>&br()object.''isEvent''}|このシンボルがイベントならtrue|
|&tt(){<Boolean>&br()object.''isInner''}|このシンボルが内部関数ならtrue|
|&tt(){<Boolean>&br()object.''isNamespace''}|このシンボルが名前空間ならtrue|
|&tt(){<Boolean>&br()object.''isPrivate''}|このシンボルのスコープがprivateならtrue|
|&tt(){<Boolean>&br()object.''isStatic''}|このシンボルが静的メンバならtrue|
|&tt(){<String>&br()object.''memberOf''}|このシンボルがメンバとして定義されているシンボルのネームパス|
|&tt(){<JSDOC.Symbol[]>&br()object.''methods''}|このシンボルがメンバとしているメソッドシンボルの配列。他のクラスから継承しているものも含みます。|
|&tt(){<String>&br()object.''name''}|このシンボルの名前。&tt(){alias}がネームパスによるシンボルのユニークな識別子であるのに対し、nameプロパティにはメソッド名のような単純な名称が設定されます。|
|&tt(){<JSDOC.DocTag[]>&br()object.''params''}|シンボルのパラメータを表すDocTagオブジェクトの配列|
|&tt(){<JSDOC.Symbol[]>&br()object.''properties''}|このシンボルがメンバとしているプロパティシンボルの配列。他のクラスから継承しているものも含みます。|
|&tt(){<String[]>&br()object.''requires''}|このシンボルが依存するシンボルのネームパスの配列|
|&tt(){<JSDOC.DocTag[]>&br()object.''returns''}|メソッドの戻り値。[[@returns]]タグをパースしたDocTagオブジェクトの配列です。|
|&tt(){<String[]>&br()object.''see''}|関連項目へのリンクを含むHTMLテキストまたはシンボルのネームパスの配列|
|&tt(){<String[]>&br()object.''since''}|このシンボルが使用可能になったバージョンに関する情報。[[@since]]タグが複数記述されていた場合、カンマ区切りの文字列に結合されています。|
|&tt(){<String>&br()object.''srcFile''}|このシンボルのソースファイルのパス|
|&tt(){<String>&br()object.''type''}|データ型(クラスの場合はネームパス)|
|&tt(){<String>&br()object.''version''}|バージョン。[[@version]]タグが複数記述されていた場合、カンマ区切りの文字列に結合されています。|
|~メソッド|説明|h
|&tt(){<JSDOC.Symbol>&br()object.''clone''()}|このシンボルの複製を返します。|
|&tt(){<Boolean>&br()object.''is''(what)}|引数で指定したシンボル種別文字列が&tt(){isa}プロパティと一致していればtrueを返します。|
|&tt(){<Boolean>&br()object.''isBuiltin''()}|このシンボルがJavaScriptの組み込みの関数やオブジェクトを表していればtrueを返します。|
|&tt(){<JSDOC.Symbol[]>&br()object.''getEvents''()}|このシンボルに含まれる全てのイベントシンボルの配列を返します。|
|&tt(){<JSDOC.Symbol[]>&br()object.''getMethods''()}|このシンボルに含まれる全てのメソッドシンボルの配列を返します。|
|&tt(){<Boolean>&br()object.''hasMember''(name)}|引数で指定された名前か[[ネームパス]]のシンボルをメンバを持っていればtrueを返します。|
|&tt(){<Boolean>&br()object.''hasMethod''(name)}|引数で指定された名前かネームパスのメソッドを持っていればtrueを返します。|
|&tt(){<Boolean>&br()object.''hasProperty''(name)}|引数で指定された名前かネームパスのプロパティを持っていればtrueを返します。|
**JSDOC.DocComment クラス
DocCommentオブジェクトはシンボルと関連付けられたドックコメントをパースした結果を保持します。シンボルオブジェクトの&tt(){comment}プロパティから取得できます。
|~プロパティ|説明|h
|&tt(){<String>&br()object.''src''}|ドックコメントのソーステキスト|
|&tt(){<DocTag[]>&br()object.''tags''}|ドックコメントに含まれるタグオブジェクトの配列|
|~メソッド|説明|h
|&tt(){<JSDOC.DocTag[]>&br()object.''getTag''(title)}|タグタイトル(タグ名から"@"を除いた文字列)を受け取り、このドックコメント内で該当するタグを表すDocTagオブジェクトの配列を返します。|
**JSDOC.DocTag クラス
DocTagオブジェクトはドックコメント内のタグをパースした結果をプロパティに保持しています。以下のプロパティに実際に値が設定されているかどうかは、タグの種類に依存します。
|~プロパティ|説明|h
|&tt(){<String>&br()object.''title''}|タグタイトル(タグ名から"@"を除いた文字列)|
|&tt(){<String>&br()object.''desc''}|説明文|
|&tt(){<String>&br()object.''type''}|データ型。[[@property]]タグなどデータ型定義が記述されているタグで値が設定されます。|
|&tt(){<String>&br()object.''name''}|データの名前。[[@param]]タグなどデータ名定義が記述されているタグで値が設定されます。|
|&tt(){<String>&br()object.''isOptional''}|[[@param]]タグにおいて、パラメータが省略可能ならtrueが設定されます。|
|&tt(){<String>&br()object.''defaultValue''}|[[@param]]タグにおいて、パラメータのデフォルト値が設定されます。|
|~メソッド|説明|h
|&tt(){<String>&br()object.''toString''()}|オブジェクトの文字列表現として、&tt(){desc}プロパティの値を返します。|
**JSDOC.PluginManager 名前空間
JSDOC.PluginManagerはプラグインの登録とイベントの発生を管理します。プラグインについての詳細は[[こちら>プラグインの追加]]を参照してください。
|~メソッド|説明|h
|&tt(){<void>&br()JSDOC.PluginManager.''registerPlugin''(name,functionMap)}|プラグインをシステムに登録します。引数&tt(){name}には登録される全プラグインの中で重複しない登録名を、&tt(){functionMap}には各イベントへのハンドラ関数をプロパティに持つオブジェクトを指定します。|
|&tt(){<void>&br()JSDOC.PluginManager.''run''(eventName,handlerArg)}|引数&tt(){eventName}で指定したイベントを発生させます。実行されるハンドラ関数には引数として&tt(){handlerArg}で指定したデータが渡されます。|
**SYS 名前空間
SYS名前空間は様々なシステム情報をプロパティに持ちます。特に&tt(){pwd}プロパティはテンプレート作成者にとって重要です。
|~プロパティ|説明|h
|&tt(){<String>&br()SYS.''os''}|OS情報。アーキテクチャ、名称、バージョンをカンマ区切りで結合した文字列です。|
|&tt(){<String>&br()SYS.''slash''}|パス区切り文字|
|&tt(){<String>&br()SYS.''userDir''}|現在の作業ディレクトリ|
|&tt(){<String>&br()SYS.''javaHome''}|Javaのホームディレクトリ|
|&tt(){<String>&br()SYS.''pwd''}|app/run.jsの絶対パス|
**IO 名前空間
IO名前空間はファイルの読み書きを実行するメソッドのコレクションです。
|~メソッド|説明|h
|&tt(){<void>&br()IO.''copyFile''(inFile,outDir[,outFileName])}|ファイルをコピーします。引数&tt(){outFileName}を省略した場合はコピー元のファイル名がそのまま使われます。|
|&tt(){<Boolean>&br()IO.''exists''(path)}|指定されたパスが存在すればtrueを返します。|
|&tt(){<void>&br()IO.''include''(relativePath)}|&tt(){SYS.pwd}からの相対パスで指定されたファイルをロードします。|
|&tt(){<void>&br()IO.''includeDir''(relativePath)}|&tt(){SYS.pwd}からの相対パスで指定されたディレクトリに含まれるスクリプトファイル(拡張子が.jsのファイル)を全てロードします。|
|&tt(){<String[]>&br()IO.''ls''(dir[,recurse])}|指定されたディレクトリの配下を再帰的に検索し、ファイルパスのリストを返します。引数&tt(){recurse}は検索する階層数を表し、デフォルトは1です。|
|&tt(){<void>&br()IO.''makeDir''(path)}|ディレクトリを作成します。|
|&tt(){<void>&br()IO.''mkPath''(path)}|パス階層を作成します。|
|&tt(){<String>&br()IO.''readFile''(path)}|ファイルを読み込み、内容を文字列として返します。|
|&tt(){<void>&br()IO.''saveFile''(outDir,fileName,content)}|&tt(){content}で指定した文字列をファイルに保存します。|
|&tt(){<void>&br()IO.''setEncoding''(encoding)}|ファイルの文字コーディングを設定します。デフォルトは"utf-8"です。|
**LOG 名前空間
LOG名前空間はログメッセージの出力に関する機能を提供します。
|~メソッド|説明|h
|&tt(){<void>&br()LOG.''warn''(msg[,e])}|警告メッセージを出力します。eに例外オブジェクトを指定すると、ファイル名と行数が出力されます。|
|&tt(){<void>&br()LOG.''inform''(msg)}|情報メッセージを出力します。(-v[[コマンドラインオプション]]が指定されている場合のみ有効)|
**Dumper名前空間
オブジェクト、配列などのデータの内容をダンプする機能を提供します。この名前空間をテンプレートから使用する場合、テンプレート自身で以下のようにjsファイルをロードしておく必要があります。
>IO.include("frame/Dumper.js");
|~メソッド|説明|h
|&tt(){<String>&br()Dumper.''dump''(data)}|指定されたデータを展開し、内容を文字列化して返します。|
**Link クラス
LinkクラスはシンボルやファイルへのHTMLリンク(<a>タグ)を作成する機能を提供します。Linkオブジェクトのメソッドのほとんどは自分自身への参照を返すため、以下のようにリンクの設定処理をチェーンした後、最終的に&tt(){toString}メソッドでタグ文字列を出力するのが標準的な使用方法です。
#divclass(bq){{{{
#html2(){
new <span class="obj" >Link</span>().toSymbol(<span class="str" >"MySymbol"</span>).withText(<span class="str" >"マイシンボル"</span>).toTarget(<span class="str" >"_blank"</span>).toString();
}
}}}}
上の処理は次のようなHTMLテキストを出力します。(シンボルの出力先設定は標準テンプレートと同一と仮定)
><a href="./symbols/MySymbol.html" target="_blank" >マイシンボル</a>
-Linkオブジェクトを正常に動作させるには、&tt(){publish}関数に&tt(){conf}プロパティが存在していなくてはなりません。詳細は[[こちら>publish.js]]を参照してください。
|~コンストラクタ|説明|h
|&tt(){new ''Link''()}|Linkオブジェクトを作成します。|
|~プロパティ|説明|h
|&tt(){<String>&br()Link.''base''}|相対パスでリンク先を指定する際のベースパス|
|&tt(){<JSDOC.SymbolSet>&br()Link.''symbolSet''}|シンボルセット。[[ネームパス]]からシンボルを取得するために使用します。Linkクラスをテンプレートから使用する場合、&tt(){publish()}関数が受け取った&tt(){SymbolSet}オブジェクトを事前にこのプロパティに設定しておく必要があります。|
|~メソッド|説明|h
|&tt(){<Link>&br()object.''target''(targetName)}|<a>タグのtarget属性の値を設定します。|
|&tt(){<Link>&br()object.''toFile''(filePath)}|リンク先として通常のファイルパスを設定します。|
|&tt(){<Link>&br()object.''toSrc''(fileName)}|リンク先としてソースファイル名を設定します。これはハイライトされたソースコードファイルへのリンクとなります。|
|&tt(){<String>&br()object.''toString''()}|オブジェクトの文字列表現として、現在の設定に基づいて作成された<a>タグのHTMLテキストを返します。|
|&tt(){<Link>&br()object.''toSymbol''(alias)}|リンク先としてシンボル(のネームパス)を設定します。|
|&tt(){<Link>&br()object.''withText''(text)}|リンク表示されるテキストを設定します。設定しない場合はリンク先のパスが使われます。|
**関数
|~関数|説明|h
|&tt(){<Object>&br()''copy''(obj)}|引数で渡されたオブジェクトに対して、「深いコピー」による複製を作成して返します。ただし引数がオブジェクトでなかった場合は値をそのまま返します。&br()この関数を使用する場合、循環参照による無限ループに注意してください。|
|&tt(){<Boolean>&br()''defined''(value)}|引数&tt(){value}が未定義(undefined)でなければtrueを返します。|
|&tt(){<Boolean>&br()''isUnique''(array)}|引数で渡された配列の要素に重複がなければtrueを返します。|
|&tt(){<void>&br()''Namespace''(name[,func])}|名前空間階層を作成します。引数&tt(){name}には"ns1.ns2.ns3"のように、名前空間の階層を"."区切りで指定します。名前空間が既に存在していれば何もせず、存在していなければ新しい名前空間を作成します。第2引数&tt(){func}は省略可能で、名前空間作成後に実行される関数を設定することができます。|
**組み込みクラスの拡張
***ReqExp クラス
|~メソッド|説明|h
|&tt(){<String>&br()RegExp.''escapeMeta''(str)}|引数で渡された文字列中に含まれる正規表現メタ文字を全て\でエスケープした文字列を返します。|
*** String クラス
|~メソッド|説明|h
|&tt(){<Number[]>&br()object.''balance''(opener,closer)}|この文字列中で開始文字&tt(){opener}と終了文字&tt(){closer}に囲まれる範囲を最大マッチで検索し、文字インデックス番号として返します。戻り値は数値の配列で、インデックス0が開始文字の番号を、インデックス1が終了文字の番号を表します。&br()文字が見つからないなど範囲を確定できなかった場合、戻り値の番号には全て-1が設定されます。|
|&tt(){<String>&br()object.''trim''()}|文字列の両端にある空白文字(スペースや改行)を除去した文字列を返します。|
**関連項目
-[[テンプレート]]
-[[publish.js]]
-[[JsPlateファイル]]
-[[プラグインの追加]]
----
2010-04-05T22:29:55+09:00
1270474195
-
コンテンツ
https://w.atwiki.jp/aias-jsdoctoolkit/pages/19.html
**コンテンツ
#divclass(list_noindent){{{
-[[トップページ]]&newimage(time=168,page=トップページ,image=http://www1.atwiki.jp/guide/pub/new.gif)
-[[インストール]]&newimage(time=168,page=インストール,image=http://www1.atwiki.jp/guide/pub/new.gif)
-[[ドックコメントの書き方]]&newimage(time=168,page=ドックコメントの書き方,image=http://www1.atwiki.jp/guide/pub/new.gif)
#divclass(list_indent){
-[[タグリファレンス]]&newimage(time=168,page=タグリファレンス,image=http://www1.atwiki.jp/guide/pub/new.gif)
-[[ネームパス]]&newimage(time=168,page=ネームパス,image=http://www1.atwiki.jp/guide/pub/new.gif)
-[[インライン・ドックコメント]]&newimage(time=168,page=インライン・ドックコメント,image=http://www1.atwiki.jp/guide/pub/new.gif)
-[[メタタグ]]&newimage(time=168,page=メタタグ,image=http://www1.atwiki.jp/guide/pub/new.gif)
}
-[[ドキュメントの作成]]&newimage(time=168,page=ドキュメントの作成,image=http://www1.atwiki.jp/guide/pub/new.gif)
#divclass(list_indent){
-[[コマンドラインオプション]]&newimage(time=168,page=コマンドラインオプション,image=http://www1.atwiki.jp/guide/pub/new.gif)
-[[JsDoc Toolkit Ant Task]]&newimage(time=168,page=JsDoc Toolkit Ant Task,image=http://www1.atwiki.jp/guide/pub/new.gif)
}
-[[カスタマイズ]]&newimage(time=168,page=カスタマイズ,image=http://www1.atwiki.jp/guide/pub/new.gif)
#divclass(list_indent){{
-[[テンプレート]]&newimage(time=168,page=テンプレート,image=http://www1.atwiki.jp/guide/pub/new.gif)
#divclass(list_indent){
-[[publish.js]]&newimage(time=168,page=publish.js,image=http://www1.atwiki.jp/guide/pub/new.gif)
-[[JsPlateファイル]]&newimage(time=168,page=JsPlateファイル,image=http://www1.atwiki.jp/guide/pub/new.gif)
}
-[[プラグインの追加]]&newimage(time=168,page=プラグインの追加,image=http://www1.atwiki.jp/guide/pub/new.gif)
-[[組み込みオブジェクト リファレンス]]&newimage(time=168,page=組み込みオブジェクト リファレンス,image=http://www1.atwiki.jp/guide/pub/new.gif)
-&blanklink(組み込みオブジェクト リファレンス<JsDoc Toolkit版>){http://aias-wood.jp/jsdoc-toolkit/demo/aias-frame/jsdoctk-doc/}&newimage(2009/09/10 00:00:00,time=168,image=http://www1.atwiki.jp/guide/pub/new.gif)
}}
-[[ダウンロード]]&newimage(time=168,page=ダウンロード,image=http://www1.atwiki.jp/guide/pub/new.gif)
}}}
2010-04-05T22:28:55+09:00
1270474135
-
@example
https://w.atwiki.jp/aias-jsdoctoolkit/pages/28.html
&small(){[[トップページ]] > [[ドックコメントの書き方]] > [[タグリファレンス]] >}
#divclass(page_title){
&this_page()
}
@exampleタグには、コンストラクタ、関数(またはメソッド)、変数の使い方を解説する小さなコードを記述できます。
-http://code.google.com/p/jsdoc-toolkit/wiki/TagExample
**構文
>@example snippet
-snippet -- 必須:使用法を解説するごく小さいコード
-@exampleタグは複数記述できます。
**例
#divclass(bq){{{{
#divclass(comment){{
/**
 (br,1)* &spanclass(tag){@example}
 (br,1)* var bleeper = makeBleep(3);
 (br,1)* bleeper.flop();
 (br,1)*/
}}
}}}}
**注意
@exampleタグではサンプルコードを説明文中へ「インライン」に挿入することは想定されていません。その場合は(例えば<code>タグなどの)HTMLタグを使用する必要があります。
----
2010-02-27T13:55:44+09:00
1267246544
-
メニュー
https://w.atwiki.jp/aias-jsdoctoolkit/pages/2.html
***サイト内検索
#search2(or,submit=検索, title=,size=60,ignore=own)
----
&include(コンテンツ)
----
**リンク
-[[JsDoc Toolkit official site>>http://code.google.com/p/jsdoc-toolkit/]]
-[[JsDoc Toolkit Users Group>>http://groups.google.com/group/jsdoc-2]]
----
**更新履歴
#recent(20)
----
-管理人:aiaswood
-ご意見・お問い合わせ等は&br()&mailto(aiaswood@aias-wood.jp){こちら}までどうぞ
#divclass(hide) {
-今日:&counter(today)
-昨日:&counter(yesterday)
-合計:&counter(total)
-&counter(total,page=トップページ),&counter(total,page=インストール),&counter(total,page=ドックコメントの書き方),&counter(total,page=タグリファレンス),&counter(total,page=ドキュメントの作成),&counter(total,page=コマンドラインオプション),&counter(total,page=JsDoc Toolkit Ant Task),&counter(total,page=テンプレート),&counter(total,page=publish.js),&counter(total,page=JsPlateファイル),&counter(total,page=プラグインの追加),&counter(total,page=組み込みオブジェクト リファレンス),&counter(total,page=ダウンロード)
}
2009-12-17T00:53:55+09:00
1260978835
-
@memberOf
https://w.atwiki.jp/aias-jsdoctoolkit/pages/36.html
&small(){[[トップページ]] > [[ドックコメントの書き方]] > [[タグリファレンス]] >}
#divclass(page_title){
&this_page()
}
@memberOfタグは、要素に対し任意の"親"階層を規定することを可能にします。
-http://code.google.com/p/jsdoc-toolkit/wiki/TagMemberOf
***別名
@member, @memberof
**構文
>@memberOf parentNamepath
-parentNamepath -- 必須:要素が属する階層の[[ネームパス]]
**例
#divclass(bq){{{{
var Tools = {};
&br()
#divclass(comment){{
/** &spanclass(tag){@namespace} */
}}
Tools.Dom = {};
&br()&br()
#divclass(comment){{
/** &spanclass(tag){@memberOf} Tools.Dom */
}}
var hiliteSearchTerm = function(term) {
&br()}
&br()
&br()Tools.Dom.highlightSearchTerm = hiliteSearchTerm;
}}}}
@memberOfタグがなければ、&tt(){hiliteSearchTerm }関数はグローバル関数として出力されます。事実それはグローバル関数でもあり、また&tt(){Tools.Dom}名前空間のメンバでもあるので、出力結果はそれをどのようにドキュメント化したいのかによって決まります。
**注意
デフォルト、つまり上の例のように書くと、メンバは静的メンバとして出力されます。もしそれをインスタンスやprototypeに属するように出力したい場合は、名前空間の指定を次のように修正してください。:
#divclass(bq){{{{
#divclass(comment){{
&spanclass(tag){@memberOf} Tools.Dom#
}}
}}}}
または
#divclass(bq){{{{
#divclass(comment){{
&spanclass(tag){@memberOf} Tools.Dom.prototype
}}
}}}}
**付記
@memberOfと結びつけられているかのように作用する2つのタグがあります。
- @methodOf -- [[@function]]と@memberOfを合わせた働きをする短い別名です。
- @fieldOf -- [[@field]]と@memberOfを合わせた働きをする短い別名です。
**関連項目
-[[@name]]タグ
----
2009-12-06T21:25:40+09:00
1260102340
-
プラグインの追加
https://w.atwiki.jp/aias-jsdoctoolkit/pages/60.html
#include_js(http://www12.atwiki.jp/aias-jsdoctoolkit/?cmd=upload&act=open&page=%E3%83%88%E3%83%83%E3%83%97%E3%83%9A%E3%83%BC%E3%82%B8&file=common1.js)
&small(){[[トップページ]] > [[カスタマイズ]] >}
#divclass(page_title){
&this_page()
}
JsDoc Toolokitのバージョン2から、ソースコードに対するパース処理に(結果がテンプレートに渡されるより前に実行される処理として)ユーザー独自の機能を挿入することができるようになりました。この仕組みはプラグインと呼ばれ、JsDoc Toolkitの動作をユーザーの希望にあわせて変更する便利で可搬性のある方法です。
#divclass(additional){{
-このページは公式サイトの&blanklink(){http://code.google.com/p/jsdoc-toolkit/wiki/Plugins}を元に作成しました。
}}
**インストール
プラグインのインターフェースはシンプルに設計されています。プラグイン使用時のインストール作業は、プラグインファイルを&tt(){app/plugins}ディレクトリに保存すること-これだけです。JsDoc Toolkitを起動すると、プラグインは自動的にロード・実行されます。
#divclass(additional){{
-管理人が作成したプラグインを[[こちら>ダウンロード]]からダウンロードできます。
-実際に&tt(){app/plugins}ディレクトリの中を見ると分かりますが、いくつかの標準機能はプラグインとして実装されています。それらのソースを読むことでプラグインに対する理解はより深まるでしょう。
}}
**API
プラグインを記述する方法もまたシンプルです。まず新しいテキストファイルを作成します;名前は自由につけてかまいません。プラグインファイルの内容は、以下のパターンに従っている必要があります。
#divclass(bq){{{{
#html2(){{
JSDOC.<span class="obj" >PluginManager</span>.registerPlugin(<br />
<span class="str" >"JSDOC.myPluginName"</span>,<br />
{<br />
onSymbol: function(symbol) {<br />
<span class="nml-comment" >// modify properties of the symbol here</span><br/>
}<br />
}<br />
);
}}
}}}}
&tt(){JSDOC.PluginManager.registerPlugin}メソッドの呼び出しは、以下の2つの引数をとります。
-''yourPluginName'' -- プラグインの登録名を文字列で指定します。どのような名前をつけてもかまいませんが、その時点で使用される全てのプラグインの登録名と重複してはなりません。上の例のように名前の各部分をドットで区切る方法がよく使われますが、この名前により何らかのオブジェクトへの参照が発生することはありません。簡単に"JSDOC-myPluginName"としたり、さらに別の名付け規則を使うことも可能です。
-''functionMap'' -- JsDoc Toolkitの処理内で発生するイベント名をプロパティに持つオブジェクトリテラルを指定します。プロパティの値にはイベント発生時に実行されるハンドラ関数を設定します。&br()上の例では&tt(){onSymbol}イベントに対しハンドラを設定しています。このイベントはJsDoc Toolkitが&tt(){Symbol}オブジェクトを生成する度に発生し、その際にハンドラ関数も一緒に呼び出されます。
**Function Mapを作る
Function MapはJsDoc Toolkitのイベントとイベント発生時に実行される関数を関連付けます。APIの例で&tt(){onSymbol}というイベント名は、&tt(){Symbol}オブジェクトが生成されるたびにハンドラ関数が実行されることを意味しています。このとき関数は引数として新しく生成された&tt(){Symbol}オブジェクトを受け取りますが、関数内ではそのオブジェクトのプロパティを参照して記録したり、値を変更したり、またはプロパティを追加したり削除したり様々に操作することができます。
#divclass(space){}
バージョン2.1.0の時点でJSDOC.PluginManagerによってサポートされているイベントは以下のとおりです。(カッコ内はハンドラ関数への引数を表します)
|&tt(){onSymbol(symbol)}|新しい&tt(){Symbol}オブジェクトが生成された後に発生します。ハンドラには引数として生成された&tt(){Symbol}オブジェクトが渡されます。|
|&tt(){onDocCommentSrc(comment)}|処理中にドックコメントが見つかったときに、それがパースされる前に発生します。ハンドラには引数として&tt(){DocComment}オブジェクトが渡されます。&tt(){DocComment#src}プロパティには処理対象のドックコメント文字列が設定されているので、ここでその値を操作することでパース結果に影響を与えることができます。|
|&tt(){onDocCommentTags(DocComment)}|1つのドックコメントがパースされ、そこに含まれるタグオブジェクトが全て生成された後に発生します。ハンドラには引数として&tt(){DocComment}オブジェクトが渡されます。&tt(){DocComment#tags}プロパティには生成された&tt(){DocTag}オブジェクトの配列が設定されているので、ここでそのオブジェクトの値を操作することで処理結果に影響を与えることができます。|
|&tt(){onDocTagSynonym(tag)}|&tt(){DocTag}オブジェクトの生成中に、タグ名が&tt(){title}プロパティに設定された時点で発生します。この段階ではまだタグ名はドックコメントに記述されたままの状態であり、通常別名で記述されたタグ名を標準のものに置き換えるタイミングとして使用されます。ハンドラには引数として&tt(){DocTag}オブジェクトが渡されます。|
|&tt(){onDocTag(tag)}|1つの&tt(){DocTag}オブジェクトが生成された後に発生します。ハンドラには引数として生成された&tt(){DocTag}オブジェクトが渡されます。|
|&tt(){onInit(opt)}|JsDoc Toolkitの起動時、[[コマンドラインオプション]]がパースされた後に発生します。ハンドラには引数としてコマンドラインオプションをプロパティに持つ無名オブジェクト(&tt(){JSDOC.opt}と同じもの)が渡されるので、このオブジェクトのプロパティを操作することで処理結果に影響を与えることができます。|
|&tt(){onFunctionCall(info)}|パース中のソース内で、何らかの関数またはメソッドが実行された結果として定義が生成されている箇所が見つかった場合に発生します。特定のライブラリが求めるような特殊な記法に対し、パース処理の必要に応じてドックコメントやソースコードそのものの挿入を行うタイミングとして想定されています。ハンドラには引数として以下のプロパティを持つ無名オブジェクトが渡されます。 (br,4)&tt(){name (4)} -- 関数またはメソッドの名前 (br,4)&tt(){arg1...n} -- パラメータをarg1~nまで番号付けしたもの (br,4)&tt(){doc (5)} -- ハンドラ側から、イベント後に処理中のコードに挿入されるコードテキストを設定します。&br()&color(red){※このイベントについては公式サイトにも情報が乏しく、管理人が推測して書きましたが内容に自信がありません。何か情報をお持ちの方がいらっしゃいましたらご教示くださいますようお願いいたします。}|
|&tt(){onFinishedParsing(symbolSet)}|全てのソースのパースが完了したときに発生します。ハンドラには引数として&tt(){SymbolSet}オブジェクトが渡されます。|
**独自のイベントを定義する
&tt(){JSDOC.PluginManager}は処理内から呼び出されたイベント名を持つプラグインを検索し、関数を実行しているだけで、固有のイベント定義は持っていません。従って実際には呼び出し側のコードさえ存在すれば、誰でも独自のイベントを定義することができます。&br()
具体的な利用法としては、[[テンプレート]]内に独自のイベント呼び出しコードを記述し、それをイベントとしてテンプレート利用者に公開するということが考えられます。標準テンプレートである"jsdoc"でも&tt(){onPublishSrc}というイベントが定義され、ハイライトされたソースコードをHTMLテキストとして生成するのに使用されています。
#divclass(space){}
イベントの呼び出しは&tt(){JSDOC.PluginManager.run}メソッドをパラメータにイベント名とハンドラへの引数を指定して実行するだけです。ハンドラ引数にオブジェクトを渡せば、ハンドラ側でプロパティに設定された値を取得することもできます。
>var arg = { data:1 };
>JSDOC.PluginManager.run("onCustomEventFired", arg);
**関連項目
-[[組み込みオブジェクト リファレンス]]
-[[テンプレート]]
----
2009-09-22T10:30:49+09:00
1253583049