OxDoc is a new format for JavaScript documentation. It was developed for and is used throughout OxJS, which provides a parser and a browser for it.
OxDoc itself isn't formally documented yet, but you may want to take a look at the extensive tutorial. The sample below should give you a rough first idea.
For now, OxDoc should be considered a proposal, and this introduction is, above all, a request for comments.
//@ Section Name
this.My = {};
//@ My.foo <number> One-line summary, with *some* `markdown`
My.foo = 23;
/*@
My.bar <object> Summary
Optional multi-line description, with *some* `markdown`.
property <object> A property of `My.bar`
Description of `property`.
foo <number> A number
bar <[string]> An array of strings
method <function> A method of `My.bar`
(foo[, bar], callback) -> <undefined> Return value
foo <number|string> Argument, number or string
bar <boolean|false> Optional argument, default is `false`
callback <function> Callback function
arg <boolean> Argument
baz <event> An event triggered by `My.bar`
x <number> Event property
y <number> Event property
# This is a comment. Below are inline tests. The last one is asynchronous.
> My.bar.property.foo < 1
true
> My.bar.property.bar.join('')
'string'
> My.bar.method(1, function(arg) { Ox.test(arg, true); })
undefined
*/
My.bar = {
property: {
foo: Math.random(),
bar: 'string'.split('')
},
method: function(foo, bar, callback) {
if (arguments.length == 2) {
callback = bar;
bar = false;
}
if (bar) {
// trigger baz event
}
setTimeout(function() {
callback(!!foo);
});
}
};