YUIDoc,记录'返回'对象的最佳方式

时间:2012-10-31 11:34:21

标签: javascript yui documentation-generation

我第一次在新项目上使用YUIDoc。我正在创建对象(彼此隔离),它们将控制自己形状的创建和跟踪,这些形状稍后会写入屏幕。

我的主要对象 - 下面的伪代码中的'MakeOneOfThese' - 使用'ThingMaker'方法返回形状定义。

当我生成YUIDocs时,我在左边有一长串的类,并且它们之间没有任何关系。所以我以推荐的方式应用了@for,但是我最左边的类列表仍然不代表类列表中的层次结构或类docs的主体。类列表例如:

  • MakeOneOfThese
  • shapeOne
  • shapeTwo

我的解决方法是将@class名称中的层次结构作为其父类的前缀。 YUIDoc然后给了我:

  • MakeOneOfThese
  • MakeOneOfThese.shapeOne
  • MakeOneOfThese.shapeTwo

我很想知道经验丰富的YUIDoc用户是如何接触到这一点的,以及我的解决方案如何被更合适或更完善的替换。

下面的伪代码已准备好被放入文件并通过YUIDoc运行。

非常感谢花在回复上的任何时间。 安东尼

    /**
    The main constructor
    @class MakeOneOfThese 
    @constructor
    @param [options]{Object}
      @param [options.gridSize] {Integer}  The pixel dimensions for the grid
      @default 20

    **/
    function MakeOneOfThese(options) {
      var that= {
          //game properties
          //game methods

        /**
        A shape chooser
        @method ThingMaker
        @constructor
        @param thingType {String}
        @return MakeOneOfThese.ThingMaker.piece {object} an object representing definition information for the
        named shape type
        **/
        ThingMaker: function(thingType) {
            var PieceDefinitions = {
                /**
                A shape definition
                @class MakeOneOfThese.shapeOne
                @return MakeOneOfThese.ThingMaker.piece {object} 
                **/
                shapeOne: function() {
                    var piece = {
                      name: "ShapeOne",
                      signature: {
                         n: [[1],[1,1],[0,1]],
                         e: [[0,1,1],[1,1]], 
                         s: [[1],[1,1],[0,1]],
                         w: [[0,1,1],[1,1]]
                      }
                    }
                    return piece;
                }
                /**
                A shape definition
                @class MakeOneOfThese.shapeTwo
                @return MakeOneOfThese.ThingMaker.piece {object} 
                **/         
                shapeTwo: function() {
                  var piece = {
                    name: "ShapeTwo",
                    signature: {
                       n: [[1],[0,1],[0,1]],
                       e: [[0,1,1],[1,1]], 
                       s: [[1],[0,1],[0,1]],
                       w: [[0,1,1],[0,1]]
                    }
                  }
                  return piece;
                }
          }
      }
      return that;
    }

2 个答案:

答案 0 :(得分:1)

或者,您也可以尝试使用与YUIDoc相同的标签(几乎全部)的JsDuck,并生成不仅更漂亮,而且还维护类层次结构的文档

答案 1 :(得分:0)

而不是@class MakeOneOfThese.shapeTwo,你可以我们

@namespace MakeOneOfThese

@class shapeTwo