生成Javascript文档

时间:2011-04-30 11:42:01

标签: javascript documentation

我正在寻找一种方法从我的Javascript项目自动生成文档。任何人都知道我该怎么做?

据我所知,有一些像JSDoc这样的工具,但我想知道你的意见,你最好的选择和原因。

谢谢!

编辑:为了清楚起见,我需要像JavaDOC或PHPDocumentor这样的东西,但要使用我的Javascript源代码。

7 个答案:

答案 0 :(得分:14)

Natural Docs这样的工具可以做到这一点。我个人过去曾经使用它,这适用于javascript。

还有像docco这样的工具来记录源代码。

通常,自动生成的文档往往限制性太强,有时像jQuery API这样的手工API更容易使用。

动态语言的文档与静态语言的文档不同。由于API的使用方式不同而且状态存在于更松散的意义上。

答案 1 :(得分:11)

我发现了一个使用JSDoc创建JS文档的好教程。我希望对需要它的人有所帮助。

Create useful relevant Javascript documentation with JSDoc

这正是我所需要的。谢谢你的答案堆叠器。

答案 2 :(得分:5)

如果你使用node.js,我创建了一个模块,为javascript / node / html / css生成类图。它基于" WAE" UML的扩展。它叫做wavi。对于javascript,自动识别其他模块的功能,变量和使用。您可以使用它来记录您的应用程序。

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

Diagram generated by wavi

答案 3 :(得分:4)

SmartComments + YUIDocs

使用这对非凡的情侣,您可以在不到一分钟的时间内记录大型JavaScript项目。

SmartComments,它是一个允许您从JavaScript源代码创建隐式注释的工具。

您可以在控制台中使用或通过Sublime Text Plugin使用。

请转至http://smartcomments.github.io了解详情。

答案 4 :(得分:3)

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的闭包编译器为你验证和优化很多东西。

答案 5 :(得分:-1)

您使用的是哪个框架? (如果有的话)。我认为你选择的工具在很大程度上依赖于它,因为理想情况下它必须理解类扩展和所有。 否则我认为jsDoc是一个很好的起点。

答案 6 :(得分:-1)

您好我刚刚找到YUIDoc。我不太了解它,但它看起来不错......