グループ化されたモジュールのセットのドキュメントを作成するのに少し問題があります。私はそれが何を表しているのかについての誤解の一部だと@class
思います@module
。@namespace
(あるいは、Yahooが「古典的な」言語の語彙をJSに押し込もうとした結果かもしれません。)
以下に、コードの大部分がどのように記述されているか、およびYUIDocスタイルでそれを文書化する試みを示す大まかなサンプルを示します。最初の2つの部分(Foo
およびBazManager
)は非常に単純です。私に:
Foo
です@class
;Baz
です@class
;BazManager
は@module
(またはメンバー@class
のみを含む)です。@static
Qux
もですが、@module
メソッドのみが含まれています。
私の問題は次のとおりです。
- の場合、
BazManager
は;の下@module
に表示されます。Foo
BazManager
- の場合
BazManager
、すべてに追加しないと@class
、内部のメソッドがBaz
それに吸い込まれます。@for
BazManager
がの場合@class
、ドキュメントBaz
の可視性は非常にトリッキーになります。- どうやって文書化するのか本当にわかりません
Qux
。私にはモジュールのように見えますが、@class
esがないため、を含む周囲のすべてをむさぼり食いますBazManager
。したがって、それはである必要があります@class
。
誰かが私がこれをどのように行うべきかを提案できますか?ドキュメント内のすべてが正しく生成されている限り、用語を正しく理解してもかまいません。
これが私のサンプルコードです:
// File: Widgets.js
/**
MyNamespace namespace
@namespace MyNamespace
*/
var MyNamespace = window.MyNamespace || {};
//--------------------PART 1: Foo-------------------//
/**
This is a description of Foo.
@class Foo
*/
MyNamespace.Foo = function () {
this.toString = function () {
return "I am a foo";
};
/**
This is Foo's private method description.
@method privateMethod
@private
*/
var privateMethod = function () {};
/**
This is Foo's public method description.
@method publicMethod
*/
this.publicMethod = function () {};
};
//--------------------PART 2: Baz-------------------//
/**
This is a description of BazManager.
@module BazManager
@namespace MyNamespace
*/
MyNamespace.BazManager = (function () {
var self = {};
/**
This is a description of Baz.
@class Baz
*/
var Baz = function (type) {
/**
toString description
@method toString
@returns {String}
*/
this.toString = function () {
return "I am a baz and I'm " + type;
};
};
/**
This is BazManager's privateBaz description.
@method privateBaz
@private
*/
var privateBaz = new Baz("private");
/**
This is BazManager's publicBaz description.
@method publicBaz
*/
self.publicBaz = new Baz("public");
return self;
} ());
//--------------------PART 3: Qux-------------------//
MyNamespace.Qux = (function () {
var self = {};
/**
execute description
@method execute
@private
*/
var execute = function () {
console.log("Qux is done");
};
/**
start description
@method start
*/
self.start = function () {
setTimeout(execute, 1000);
};
return self;
} ());