web-dev-qa-db-ja.com

Javascriptドキュメントの生成

私はJavascriptプロジェクトからドキュメントを自動的に生成する方法を探しています。誰も私がこれを行う方法を知っていますか?

私の知る限り、 JSDoc のようなツールがいくつかありますが、あなたの意見、あなたの最良の選択、そしてその理由を知りたいです。

ありがとう!

編集:明確にするために、JavaDOCまたはPHPDocumentorのようなものが必要ですが、私のJavascriptソースコードで使用します。

49
Fran Verona

JSDocを使用してJSドキュメントを作成するための素晴らしいチュートリアルを見つけました。それが必要な人に役立つことを願っています。

JSDocで有用な関連するJavascriptドキュメントを作成する

これはまさに私が必要とするものでした。答えのスタッカーをありがとう。

11
Fran Verona

これを行うための Natural Docs のようなツールがあります。私は過去に個人的にそれを使用しましたが、これはjavascriptでうまく動作します。

ソースコードを文書化する docco などのツールもあります。

一般に、自動生成されたドキュメントは制限が厳しすぎる傾向があり、jQuery APIのような手作りのAPIが使いやすいこともあります。

また、動的言語のドキュメントは、静的言語のドキュメントとは異なります。 APIの使用方法は異なり、状態はより緩やかな意味で存在します。

14
Raynos

Node.jsを使用する場合、javascript/node/html/cssのクラス図を生成するモジュールを作成しました。 UMLの「WAE」拡張に基づいています。そのwaviと呼ばれます。 JavaScriptの場合、関数、変数、および他のモジュールの使用は自動的に認識されます。アプリケーションの文書化に使用できます。

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

Diagram generated by wavi

5
Bakunin95

SmartComments + YUIDocs

その並外れたカップルを使用すると、1分以内に大規模なJavaScriptプロジェクトを文書化できます。

SmartCommentsは、JavaScriptソースコードから暗黙的なコメントを作成できるツールです。

コンソールで使用するか、Sublime Textプラグインから使用できます。

詳細については、 http://smartcomments.github.io にアクセスしてください。

4
user2272864

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 .

3
wires