Создание документации по Javascript
Я ищу способ генерировать документацию автоматически из моего проекта Javascript. Кто-нибудь знает, как я могу это сделать?
Насколько я знаю, есть такие инструменты, как JSDoc, но я хочу знать ваше мнение, ваш лучший выбор и почему.
Спасибо!
EDIT: просто чтобы быть ясным, мне нужно что-то вроде JavaDOC или PHPDocumentor, но для использования с моим исходным кодом Javascript.
Ответы
Ответ 1
Я нашел отличный учебник для создания JS-документации с использованием JSDoc. Я надеюсь, что это поможет кому-то, кто в ней нуждается.
Создать полезную документацию Javascript с JSDoc
Это было именно то, что мне нужно. Спасибо за ваши штабелеры ответов.
Ответ 2
Для этого есть инструменты, такие как Natural Docs. Я лично использовал его в прошлом, и это отлично работает с javascript.
Существуют также инструменты, такие как docco для документирования исходного кода.
В целом автоматическая сгенерированная документация имеет тенденцию быть слишком ограничительной, и иногда API-интерфейс ручной работы, такой как API jQuery, более прост в использовании.
Также документация для динамических языков отличается от документации по статическим языкам. Поскольку API используются по-разному, а состояние существует в более свободном смысле.
Ответ 3
Если вы работаете с node.js, я создал модуль, который генерирует диаграмму классов для javascript/node/html/css. Он основан на расширении WAE UML. Его называют wavi. Для javascript автоматически распознаются функция, переменная и использование других модулей. Вы можете использовать его для документирования вашего приложения.
https://www.npmjs.org/package/wavi
![Diagram generated by wavi]()
Ответ 4
SmartComments + YUIDocs
Используя эту необычную пару, вы можете документировать большой проект JavaScript менее чем за одну минуту.
SmartComments - это инструмент, который позволяет создавать неявные комментарии из исходного кода JavaScript.
Вы можете использовать в консоли или через Sublime Text Plugin.
Для получения дополнительной информации перейдите на страницу http://smartcomments.github.io.
Ответ 5
autodoc
является допированием; https://www.npmjs.org/package/autodoc | https://github.com/dtao/autodoc
Autodoc позволяет писать тесты в комментариях непосредственно над вашими функциями JavaScript, а затем запускать эти тесты из командной строки и автоматически генерировать документацию с теми же тестами, которые встроены и выполняются прямо в браузере.
Подумайте, грамотное программирование, посмотрите на http://danieltao.com/lazy.js/docs/ для приятного примера. Этими зелеными галочками являются тесты.
✓ Lazy([1, 2, 4]) // instanceof Lazy.ArrayLikeSequence
✓ Lazy({ foo: "bar" }) // instanceof Lazy.ObjectLikeSequence
✓ Lazy("hello, world!") // instanceof Lazy.StringLikeSequence
✓ Lazy() // sequence: []
✓ Lazy(null) // sequence: []
Вот что выглядит источник github.com/../lazy.js # L86
/**
* Wraps an object and returns a {@link Sequence}. For `null` or `undefined`,
* simply returns an empty sequence (see {@link Lazy.strict} for a stricter
* implementation).
*
* - For **arrays**, Lazy will create a sequence comprising the elements in
* the array (an {@link ArrayLikeSequence}).
* - For **objects**, Lazy will create a sequence of key/value pairs
* (an {@link ObjectLikeSequence}).
* - For **strings**, Lazy will create a sequence of characters (a
* {@link StringLikeSequence}).
*
* @public
* @param {Array|Object|string} source An array, object, or string to wrap.
* @returns {Sequence} The wrapped lazy object.
*
*
* @examples
* Lazy([1, 2, 4]) // instanceof Lazy.ArrayLikeSequence
* Lazy({ foo: "bar" }) // instanceof Lazy.ObjectLikeSequence
* Lazy("hello, world!") // instanceof Lazy.StringLikeSequence
* Lazy() // sequence: []
* Lazy(null) // sequence: []
*/
Он расширяет JSDoc https://developers.google.com/closure/compiler/docs/js-for-compiler, поэтому вы можете иметь компилятор Google закрытия, который проверяет и оптимизирует многое для вас.
Ответ 6
Какую структуру вы используете? (если есть). Я думаю, что инструмент, который вы выберете, зависит от этого, так как в идеале ему придется понимать расширения классов и все.
В противном случае я думаю, что jsDoc - отличное место для начала.
Ответ 7
Привет, я только что нашел YUIDoc. Я мало знаю об этом, но он выглядит хорошо...