В настоящее время я использую JSDoc Toolkit для документирования моего кода, но он не совсем подходит - а именно, он, похоже, пытается описать пространства имен правильно. Скажем, у вас есть два простых класса в каждом из своих файлов:
lib/database/foo.js
:
/** @class */
function Foo(...) {...}
/** @function ... */
Foo.prototype.init(..., cb) { return cb(null, ...); };
module.exports = foo;
А потом что-то унаследовало lib/database/bar.js
:
var Foo = require('./foo');
/**
* @class
* @augments Foo
*/
function Bar(....) {...}
util.inherits(Bar, Foo);
Bar.prototype.moreInit(..., cb) { return cb(null, ...); };
В сгенерированной документации это выводится просто как Foo
и Bar
, без ведущего database
(или lib.database
), что совершенно необходимо, если у вас нет всего в глобальной области.
Я пробовал бросать на него @namespace database
и @name database.Foo
, но это не получается приятно.
Любые идеи для того, чтобы сделать JSDoc вывод более подходящим, или какой-то совершенно другой инструмент, который лучше работает с Node.js? (Я ненадолго взглянул на Natural Docs, JSDuck и залез на несколько других, которые выглядели довольно устаревшими...)