Подтвердить что ты не робот

Создание документации по Javascript

Я ищу способ генерировать документацию автоматически из моего проекта Javascript. Кто-нибудь знает, как я могу это сделать?

Насколько я знаю, есть такие инструменты, как JSDoc, но я хочу знать ваше мнение, ваш лучший выбор и почему.

Спасибо!

EDIT: просто чтобы быть ясным, мне нужно что-то вроде JavaDOC или PHPDocumentor, но для использования с моим исходным кодом Javascript.

4b9b3361

Ответ 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. Я мало знаю об этом, но он выглядит хорошо...