2016-10-28 8 views
0

私は作業中のNode.JSプロジェクトを持っていますが、その非常に特定の機能はディレクトリ内のすべてのJSファイルを読み込み、クラスコメント(おそらくクラス名あとでこの情報をオブジェクトの配列に格納し、後でマークダウンに変換します)。Node.JSクラスのコメントを抽出する

私の質問はです。クラス名やクラスコメントなど、これらのコンポーネントを抽出する最も良い方法は何ですか?

私はファイルを読み、構文を解析することについて考えましたが、なぜ車輪を再発明するのですか?特定のコメントを抽出するための優れたツールや、JSファイルの解析のための巧妙なアルゴリズムがある場合は、そのファイルを聞きたいと思います。ありがとう!

答えて

0

abstract syntax treeにあなたのコードを変換パーサに見てください。

たとえば、Esprimaは、ES6 JavaScriptを解析して識別子とコメントを抽出するのに役立ちます。

this live demoをご覧ください。次のクラスの場合は、以下のASTが生成されます。

/** 
* 
* This is a test class 
* 
*/ 
class Foo { 
    bar() { 
     console.log('foobar'); 
    } 
} 

{ 
    "type": "Program", 
    "body": [ 
     { 
      "type": "ClassDeclaration", 
      "id": { 
       "type": "Identifier", 
       "name": "Foo" 
      }, 
      "superClass": null, 
      "body": { 
         ... 
        } 
       ] 
      }, 
      "leadingComments": [ 
       { 
        "type": "Block", 
        "value": "*\n *\n * This is a test class\n *\n ", 
        "range": [ 
         0, 
         37 
        ] 
       } 
      ] 
     } 
    ], 
    "sourceType": "script" 
} 
+0

確かにクラスを解析する良い方法ですが、私はコメントが必要な限り、それは過度の可能性があります。私はこれを心に留めておきます、ありがとう! –

1

まさにこれを行うツールがあります! jsDocをチェックしてください。コメントから https://github.com/jsdoc3/jsdoc

ビルのHTMLウェブページやってするのと同じくらい簡単です:...提案のため

+0

jsdocはHTML Webページに限定されていますか、それともマークダウンも生成できますか? –

+0

それはそれのように見えます! http://usejsdoc.org/plugins-markdown.html#enabling-the-markdown-plugin – danieldaugherty

+0

ニース!私の現在の戦略がうまくいかない場合は、これを覚えておいてください。ヘッドアップをありがとう! –

関連する問題