web-dev-qa-db-ja.com

Doxygenを使用してJavaScriptドキュメントを生成する

私はプロジェクトでPHPとJavaScriptを使用していますが、これは完全にnetbeans 7.0.1でコーディングしています。netbeansがJavaDocコメントスタイルを含めて使用する方法が本当に好きです。両方ともPHPおよびJSコード。

今、私はPHPとJSコードからコードのドキュメントを生成したいと思います。それを行う方法はいくつかあることを知っていますが、私の主な目的は、両方の部分のドキュメントを作成することです- oneドキュメント。

さらに説明すると、たとえば、Doxygenを使用してPHPファイルとJsDocを処理してJSファイルを処理できます。その結果、2つの異なるフォルダーに2つの異なるドキュメントが作成されます。 -気に入らない結果です先ほど触れたように、両方を1つのドキュメントにまとめます。

そのため、最初にdoxygenヘルパーjs2doxy.pl(http://jsunit.berlios.de/internal.html)を使用して道を進みましたが、それは十分な柔軟性がありませんでした。これは「通常の」定義済み関数ではうまく機能しますが、匿名のjs関数では機能しません。

少し試してみた後、コメントのJavaDocスタイルはPHPで使用されているものとほぼ同じであるため、ドキュメントのFILE_PATTERNSオプションを変更して.jsファイルを処理しないのではないかと考えました。そして、結果は有望に見えます、しかしいくつかの関数がドキュメントにありません。

次に例を示します。

/**
 * Definitions for the languages.
 * @memberof Language
 */
Language.Definitions = (function()
{
...
}

これは非常にうまく機能し、ドキュメントを見ることができます。だが:

**
 * Definitions for the languages
 * @memberof Language
 */
Language.Definitions = (function()
{
    var Translations = {};

    /**
     * Replaces strings.
     * @memberof Language
     * @param string translation Translation string 
     * @param array parameters (optional) List of parameters
     * 
     * @return string replaced string
     */
    function replaceStrings(translation, parameters)
    {
       ...
    }

この例では、Language.Definitionsのドキュメントは表示されますが、replaceStrings()のドキュメントは表示されません。あなたは何か考えがありますか、私が間違っていることは何ですか?同じコンストラクトはJsDocによって非常にうまく処理されます。

また(Language.Definitionsの一部).。

... 
return {
        /**
         * Initialize translations
         * 
         * @memberof Language
         */
        initTranslations: function()
        {
           ...
        } 
... 
}

...はドキュメントに表示されていません。

また、doxygenとJsDocの2つの出力を1つのドキュメントに最適にマージする方法を誰かが教えてくれてもかまいません。

よろしくお願いします!

こんにちは!

21
John Archer

次のように、doxygenで、できればsourceのヘッダーで関数を明示的に宣言するには、特別なコマンド \ fn を参照してください。

/*!
 * Language
 * Declare the root class
 * \Class Language
 */

/*! 
 * definitions is a property in the Language class
 * \property Definitions definitions
 */

/*!
 * Document the Definitions static class that used as property in the Language class
 * \Class Definitions
 */

/*!
 * Replaces strings
 * Document the static method for the Definitions class
 * \fn string replaceStrings(translation, parameters)
 * \memberof Definitions
 * \param string translation Translation string 
 * \param array parameters (optional) List of parameters
 * \return string replaced string
 */

Language.definitions = (function()
{
    var Translations = {};

    function replaceStrings(translation, parameters)
    {
       ...
    }
10
Wagner Pinheiro