2011-04-30 14 views
45

Estoy buscando una manera de generar documentación automáticamente desde mi proyecto de Javascript. Alguien sabe cómo puedo hacer esto?Generando documentación de Javascript

Por lo que sé, hay algunas herramientas como JSDoc pero quiero saber su opinión, su mejor opción y por qué.

Gracias!

EDITAR: para que quede claro, necesito algo como JavaDOC o PHPDocumentor pero para usar con mi código fuente de Javascript.

+0

¿Qué quiere decir cuando se dice "docs"? – MeLight

+0

@MeLight Algo como PHPDocumentor o JavaDoc. Puse algunos comentarios en mi código fuente, y lo que necesito es generar documentación automáticamente (es decir, formato HTML) –

+0

posible duplicado de [Documentar código JavaScript] (http://stackoverflow.com/questions/2351881/documenting-javascript-code) –

Respuesta

10

Encontré un excelente tutorial para crear documentación JS utilizando JSDoc. Espero que ayude a alguien que lo necesite.

Create useful relevant Javascript documentation with JSDoc

Esto fue exactamente lo que necesito. Gracias por tus apiladores de respuestas.

+4

Hmm ... Aplicación de Windows. –

0

¿Qué marco está utilizando? (Si alguna). Creo que la herramienta que elijas depende mucho de eso, ya que idealmente debería comprender las extensiones de clase y todo. De lo contrario, creo que jsDoc es un gran lugar para comenzar.

12

Hay herramientas como Natural Docs para hacer esto. Personalmente lo he usado en el pasado y esto funciona bien con javascript.

También hay herramientas como docco para documentar el código fuente.

En general, la documentación generada automáticamente tiende a ser demasiado restrictiva y, a veces, las API hechas a mano como la API jQuery son más fáciles de usar.

También la documentación para idiomas dinámicos es diferente de la documentación en idiomas estáticos. Como las API se usan de manera diferente y existen estados en un sentido más flexible.

+0

+1 Docco. JSDoc está mal documentado, y al ser un puerto de JavaDoc, no puede manejar código que no sea fuertemente OOP, poco realista para JS. Docco está bien documentado, maneja JS correctamente y es utilizado por las populares aplicaciones JS (Backbone, Underscore). – mikemaccana

+4

@nailer docco es subóptimo. Creo que groc es una de las mejores opciones, pero estoy esperando que TJ escriba una capa de plantilla brillante para dox en este momento. – Raynos

+0

@Raynos: ¡Primero estaba usando docco, pero groc es de hecho impresionante! Gracias. – asgoth

0

Hola acabo de encontrar YUIDoc. No sé mucho al respecto, pero se ve bien ...

4

SmartComments + YUIDocs

Usando esa pareja extraordinaria que puede documentar un proyecto de gran JavaScript en menos de un minuto.

SmartComments, es una herramienta que le permite crear comentarios implícitos desde el código fuente de JavaScript.

Puede usarlo en la consola o mediante un complemento de texto sublime.

Diríjase a http://smartcomments.github.io para obtener más información.

+0

Aquí hay una presentación de diapositivas de 113 sobre YUIDocs: http://www.slideshare.net/ysaw/beautiful-documentation-with-yui-doc – gm2008

3

autodoc es la droga; https://www.npmjs.org/package/autodoc | https://github.com/dtao/autodoc

Autodoc le permite escribir pruebas en los comentarios justo por encima de sus funciones de JavaScript, a continuación, ejecutar las pruebas desde la línea de comandos y generar automáticamente la documentación con las mismas pruebas incorporadas y ejecutar directamente en el navegador.

Piensa en la programación alfabetizada, mira http://danieltao.com/lazy.js/docs/ para ver un buen ejemplo. Esas marcas verdes son las pruebas.

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

Esto es lo que se ve como la fuente 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: [] 
*/ 

Se extiende jsdoc https://developers.google.com/closure/compiler/docs/js-for-compiler, por lo que además se puede tener compilador de cierre de Google verificar y optimizar muchas cosas para usted.

+1

Esto realmente se ve prometedor. El desarrollador afirma en los documentos que todavía es bastante el trabajo en progreso, pero lo que hace actualmente es muy, muy bueno. – Typo

5

Si trabaja con node.js, creé un módulo que genera un diagrama de clase para javascript/node/html/css. Está basado en la extensión "WAE" de UML. Se llama wavi. Para javascript, la función, la variable y el uso de otros módulos se reconocen automáticamente. Puede usarlo para documentar su aplicación.

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

Diagram generated by wavi

Cuestiones relacionadas