2009-03-21 16 views
89

Có điều gì giống như dOxygen/Javadoc không? Mọi người đã sử dụng cái gì ở đó đã hoạt động tốt?Tùy chọn nào có sẵn để ghi lại mã Javascript của bạn?

+0

tôi thực hiện một số các phát Document JavaScript [JSDoc, YUIDoc, docco], đây là một số phát hiện của tôi: http://www.markupjavascript.com/2014/02/ js-documentation-generator-tools-jsdoc-yuidoc-docco.html –

+0

Tôi sử dụng http://ortelius.marten.dk. Nó khá dễ dàng để lắp đặt và sử dụng (windows), mà một sucker GUI như tôi thích :) –

+0

Ngoài ra còn có [docco] (http://jashkenas.github.com/docco/) (hoặc phiên bản Ruby [rocco] (http : //rtomayko.github.com/rocco/)) tạo tài liệu HTML thực sự đẹp trong bố cục hai cột, với cú pháp tô sáng được đưa vào. Không có quy tắc nghiêm ngặt về cách tài liệu của bạn phải được cấu trúc; thay vào đó nó phân tích các bình luận bình thường. Đánh dấu có thể được sử dụng để tạo kiểu cho tài liệu của bạn với danh sách, ví dụ mã, v.v. Tôi đang sử dụng nó cho cả javascript và ruby ​​vào lúc này, nó khá gọn gàng. – foz

Trả lời

67

Khỉ đột 800 pound tài liệu Javascript là JSDoc Toolkit và người kế thừa là JSDoc 3. Hầu hết tài liệu được thực hiện với các thẻ giống như Javadoc và tiền tố nhận xét /**.

Ví dụ:

var MyClass = Class.create(
    /** @lends MyClass# */    // @lends is how you document anonymous classes. 
    { 
    /** 
    * Description of constructor. 
    * @class Description of class. // @class annotation goes anywhere and 
    *        // describes the whole class. 
    * @constructs     // This is a constructor. 
    */ 
    initialize: function(arg0, arg1) { 
     //... 
    }, 

    /** A method. */ 
    myFunc: function() {}, 

    /** An instance field. */ 
    myVar: 123 
    } 
); 

Object.extend(MyClass, 
    /** @lends MyClass */ 
    { 
    /** A class method. */ 
    classFunc: function() {} 
    } 
); 
+0

"Kể từ ngày 27 tháng 6 năm 2010, dự án JsDoc Toolkit Version 2 không còn chấp nhận bất kỳ vé Yêu cầu tính năng mới nào. Bất kỳ vé Yêu cầu tính năng nào được gửi sau ngày đó sẽ bị xóa mà không có nhận xét". Chỉ có một thay đổi trong năm 2012 và một thay đổi trong năm 2011. Liệu nó có trưởng thành đến mức không cần những thay đổi mới, hay về cơ bản nó là một dự án đã chết? –

+3

Nevermind, một người bạn đã chỉ cho tôi về [JSDoc 3 trên GitHub] (https://github.com/jsdoc3/jsdoc). –

+2

Tôi đã thêm liên kết JSDoc 3, hy vọng bạn không phiền. –

1

Như đã trình bày trong this liên kết:

Có một phương pháp có sử dụng mã giả trong cú pháp java để ghi lại javascript ..

  1. Sử dụng một kịch bản để nhận được tất cả các mã giả từ các tệp .js và tạo các tệp .java có cùng tên, tập lệnh được đính kèm dưới đây có tên là builddoc. Tập lệnh này thực sự có tất cả các dòng bắt đầu bằng ‘///’, ‘/ * ’, ‘/‘, ‘*‘, ‘/’ và ‘//’ vào tệp .java. Vì vậy, một tập tin javascript như

    //* package ns; 
    /** 
    * Foo. 
    * @param foo foo. 
    */ 
    var foo=function(foo){} 
    //* public void foo(String foo); 
    

sẽ được chuyển đổi thành

package ns; 
/** 
* Foo. 
* @param foo foo. 
*/ 
public void foo(String foo); 

Và bây giờ Doxygen có thể xử lý nó trong java cách. Bạn nên sử dụng FILE_PATTERNS = * .java trong cấu hình doxygen để cho doxygen phân tích cú pháp tất cả các tệp .java.

builddoc:

#!/bin/bash 

DIRs="./" 

if [ $# -ne 0 ] 
then 
    [email protected] 
fi 

for DIR in $DIRs; do 

    JSs=`find $DIR -name "*.js"` 

    for JS in $JSs; do 
    DOC=`echo $JS|sed 's/\(.*\)\.js/\1.java/g'`; 
    if [ $JS -nt $DOC ]; then 
     echo "rebuild $DOC" 
     grep -e '^\s*\(///\|//\*\|/\*\*\| \* \| \*/\)' $JS | sed 's/^\s*\/\/\*\(.*\)$/\1/g'> $DOC 
    fi 
done 

done 
Các vấn đề liên quan