Создавать документацию JavaScript непосредственно из исходного кода
Я ищу инструмент для создания документации для функций и свойств JavaScript, даже если нет надлежащим образом отформатированных блоков комментариев, связанных с этими функциями или свойствами (например, Doxygen).
В этом сравнении между JSDoc и некоторыми другими документами упоминается, что JSDoc может анализировать исходный код для создания документации, даже если нет блоков комментариев (что-то вроде Doxygen, as Я упомянул выше). Говорят, что все другие инструменты только анализируют блоки комментариев.
Я установил JSDoc 3.3.0-alpha4 из npm (в node) в соответствии с этой инструкцией, и я пытаюсь создать документацию для своего проекта. Насколько я вижу, JSDoc не создает никакой документации для функций или свойств, которые не имеют надлежащих комментариев с соответствующими флагами JSDoc.
Я знаю, что JSDoc прошел множество итераций, была ли эта функция удалена или я не использую правильные ключи? Я попытался проверить параметры командной строки, но не смог найти для этого никаких переключателей. Я просто использую его следующим образом:
./node_modules/.bin/jsdoc -r -l my_project --destination doc/
Я знаю, что есть другие инструменты, которые могут автоматически добавлять блок документации к коду, например. smartcomments, но это не совсем то, что я ищу. Может ли кто-нибудь пролить свет на это?
Ответы
Ответ 1
Я использовал Yuidoc для моего проекта. Он не читает код, только теги Yuidoc, такие как @class, @module, @method и т.д., Завернуты в блок комментариев следующим образом:/** */
Вы можете использовать его как расширение NodeJs и генерировать api, просто введя в свою папку javascript с помощью Node cmd и выполнив команду:
yuidoc .
Это немного сложно в начале, если вы не знаете, как его использовать.
Например, если у вас есть тег yuidoc, например:
/**
* @class Claculator
* @method claculate
* @param {Number} a
* @param {Number} b
* @return {Number}
*/
function calculate(a, b) {
}
/**
* @class Graphics
* @method drawGUI
* @param {Number} x
* @param {Number} y
* @param {Number} z
* @return {Number}
*/
function drawGUI(x, y, z) {
}
Все методы/свойства, следующие за тегом @class, станут частью класса Calculator после поколения. Поэтому, если у вас есть метод drawGUI() после вычисления (a, b) и он должен принадлежать другому классу, например Graphics, то вы должны отметить это также в другом теге @class, как в приведенном выше примере.
Примечание. С моей точки зрения, создание блоков комментариев помогает улучшить качество кода при разработке, а также помогает находить проблемы еще до того, как они произойдут.