YUIDoc, лучший способ документирования объектов «вернуть это»

Я впервые использую YUIDoc в новом проекте. Я создаю объекты (изолированные друг от друга), которые будут управлять созданием и отслеживанием своих собственных форм, которые позже выводятся на экран.

У меня есть основной объект — «MakeOneOfThese» в приведенном ниже псевдокоде — с методом «ThingMaker» для возврата определений формы.

Когда я сгенерировал YUIDocs, слева у меня был длинный список классов, и между ними не было никакой связи. Поэтому я применил @for рекомендуемым способом, но мой самый левый список классов не представлял иерархию в списке классов или основную часть документации по классам. Список классов, например, гласит:

  • СделатьOneOfThese
  • shapeOne
  • формаДва

Мой обходной путь состоял в том, чтобы префикс иерархии в именах @class с их родительскими классами. Затем YUIDoc дает мне:

  • СделатьOneOfThese
  • MakeOneOfThese.shapeOne
  • СделатьOneOfThese.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;
    }

person A.M. D.    schedule 31.10.2012    source источник


Ответы (2)


Вместо @class MakeOneOfThese.shapeTwo вы можете использовать

@namespace MakeOneOfThese

@класс shapeTwo

person John Lindal    schedule 31.10.2012
comment
Спасибо за подсказку @namespace, которая немного упрощает документирование. Я перечитал документы и попробовал форумы YUIDoc и не нашел ни вопроса, ни заданного, ни ответа, поэтому опубликую его там для рассмотрения. - person A.M. D.; 05.11.2012

В качестве альтернативы вы также можете попробовать JsDuck, который использует те же теги (почти все), что и YUIDoc, и создает документацию, которая не только красивее, но и поддерживает иерархию классов.

person JamieJag    schedule 07.03.2013