web-dev-qa-db-fra.com

Génération de documentation Javascript

Je cherche un moyen de générer automatiquement de la documentation à partir de mon projet Javascript . Quelqu'un sait comment faire ça?

Pour autant que je sache, il existe des outils comme JSDoc mais je veux connaître votre opinion, votre meilleur choix et pourquoi.

Merci!

EDIT: juste pour être clair, j'ai besoin de quelque chose comme JavaDOC ou PHPDocumentor mais à utiliser avec mon code source Javascript.

49
Fran Verona

J'ai trouvé un excellent tutoriel pour créer de la documentation JS à l'aide de JSDoc. J'espère que cela aide à quelqu'un qui en a besoin.

Créer une documentation Javascript utile et utile avec JSDoc

C'était exactement ce dont j'avais besoin. Merci pour vos réponses stackers.

11
Fran Verona

Il existe des outils comme Natural Docs pour ce faire. Je l'ai personnellement utilisé dans le passé et cela fonctionne très bien avec javascript.

Il existe également des outils comme docco pour documenter le code source.

En général, la documentation générée automatiquement a tendance à être trop restrictive et parfois les API faites à la main comme l'API jQuery sont plus faciles à utiliser.

La documentation pour les langages dynamiques est également différente de la documentation sur les langages statiques. Comme les API sont utilisées différemment et l'état existe dans un sens plus lâche.

14
Raynos

Si vous travaillez avec node.js, j'ai créé un module qui génère un diagramme de classes pour javascript/node/html/css. Son basé sur l'extension "WAE" d'UML. Son appelé wavi. Pour javascript, la fonction, la variable et l'utilisation d'autres modules sont automatiquement reconnus. Vous pouvez l'utiliser pour documenter votre application.

https://www.npmjs.org/package/wavi

Diagram generated by wavi

5
Bakunin95

SmartComments + YUIDocs

En utilisant ce couple extraordinaire, vous pouvez documenter un grand projet JavaScript en moins d'une minute.

SmartComments, c'est un outil qui vous permet de créer des commentaires implicites à partir du code source JavaScript.

Vous pouvez utiliser dans la console ou via un plugin de texte sublime.

Veuillez vous rendre sur http://smartcomments.github.io pour plus d'informations.

4
user2272864

autodoc est le Dope; https://www.npmjs.org/package/autodoc | https://github.com/dtao/autodoc

Autodoc vous permet d'écrire des tests dans des commentaires juste au-dessus de vos fonctions JavaScript, puis d'exécuter ces tests à partir de la ligne de commande et de générer automatiquement la documentation avec les mêmes tests intégrés et exécutés directement dans le navigateur.

Pensez à la programmation lettrée, regardez http://danieltao.com/lazy.js/docs/ pour un bel exemple. Ces coches vertes sont les tests.

✓ Lazy([1, 2, 4])       // instanceof Lazy.ArrayLikeSequence
✓ Lazy({ foo: "bar" })  // instanceof Lazy.ObjectLikeSequence
✓ Lazy("hello, world!") // instanceof Lazy.StringLikeSequence
✓ Lazy()                // sequence: []
✓ Lazy(null)            // sequence: []

Voici à quoi ressemble la source 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: []
 */

Il étend JSDoc https://developers.google.com/closure/compiler/docs/js-for-compiler , donc en plus, vous pouvez demander au compilateur de fermeture de Google de vérifier et d'optimiser beaucoup de choses pour vous.

3
wires