YUIDoc - KeynesYouDigIt/Knowledge GitHub Wiki
Notes
- Install globally with
npm -g yuidocjs
- Run with
yuidoc .
- Save options with yuidoc.json including project description, etc.
- Every source tree must have one module, every module must have at least one class
/**
* Overall description
*
* [@type-of-thing] [thingName]
* [@part-of-thing] {[part-type]} [part-name] Description of part
**/
Blocks
- Primary blocks- every comment block is one of these:
module - [name] - group of related classes
main - [name] - after module to indicate it is the primary module
class [name] - should be be above all things it owns, followed by constructor or static
method [name] - goes right above method, followed by params and return
event [name] - has params that hang off the event
property [type] - after each property in a class
- Secondary blocks- these are used in a primary block:
param {[type]} [optionalName](/KeynesYouDigIt/Knowledge/wiki/optionalName)|[name] [description] - Can nest with dot.syntax.
return {[type]} [description] - return value
async - Method is asynchronous and requires a callback
chainable - returns this, so can be chained
example [code-example] - Syntax-highlighted usage example
OOP
constructor | static - Can instantiate or not
namespace [name] - Allows you to use simple class names without modules
extends | uses [class-name] - Links back to parent documentation. Multiple uses.
final | readOnly | writeOnce - Whether it should be modified
throws {[type]} [description] - indicates the kind of error a method throws
private | protected - private won’t have documentation generated
Properties
type [type] - Indicate type for a property
default - After a type to indicate a property’s default.
Availability
deprecated [Instructions] - Will be removed
since [version] - Indicates that it was added in this version
beta - might break compatibility in the future
Examples
Class
/**
* This is the description for my class.
*
* @class MyClass
* @constructor
*/
Method
/**
* My method description. Like other pieces of your comment blocks,
* this can span multiple lines.
*
* @method methodName
* @param {String} foo Argument 1
* @param {Object} config A config object
* @param {String} config.name The name on the config object
* @param {Function} config.callback A callback function on the config object
* @param {Boolean} [extra=false] Do extra, optional work
* @return {Boolean} Returns true on success
*/
Property
/**
* My property description. Like other pieces of your comment blocks,
* this can span multiple lines.
*
* @property propertyName
* @type {Object}
* @default "foo"
*/