2011-04-30 135 views
45

我正在尋找一種方式來從我的Javascript項目自動生成文檔。任何人都知道我該怎麼做?生成Javascript文檔

據我所知,有一些工具,如JSDoc,但我想知道你的意見,你最好的選擇,爲什麼。

謝謝!

編輯:只需要清楚,我需要類似JavaDOC或PHPDocumentor的東西,但要使用我的Javascript源代碼。

+0

你是什麼意思時,你說 「文檔」? – MeLight 2011-04-30 11:45:25

+0

@MeLight類似PHPDocumentor或JavaDoc。我在我的源代碼中添加了一些註釋,並且我需要的是自動生成文檔(即HTML格式) – 2011-04-30 11:47:43

+0

[Documenting Javascript code]的可能重複(http://stackoverflow.com/questions/2351881/documenting-javascript-code ) – 2011-04-30 12:30:38

回答

0

您正在使用哪個框架? (如果有的話)。我認爲你選擇的工具在很大程度上取決於它,因爲理想的情況是它必須理解類擴展和全部。 否則我認爲jsDoc是一個很好的開始。

12

有像Natural Docs這樣的工具來做到這一點。我以前親自使用過它,並且這對JavaScript很有效。

也有工具如docco來記錄源代碼。

一般來說,自動生成的文檔往往過於嚴格,有時手工製作的API像jQuery API更易於使用。

動態語言的文檔與靜態語言的文檔不同。由於API的使用方式不同,並且狀態的存在更加鬆散。

+0

+1 Docco。 JSDoc本身就有嚴重的文檔記錄,並且作爲JavaDoc的一個端口,不能處理不太強烈的OOP代碼 - 對JS來說不切實際。 Docco有很好的文檔記錄,能夠正確處理JS,並被流行的JS應用程序(Backbone,Underscore)使用。 – mikemaccana 2012-01-05 10:01:28

+4

@nailer docco是次優。我認爲groc是更好的選擇之一,但我現在正在等待TJ爲dox寫一個閃亮的模板層。 – Raynos 2012-01-05 16:34:18

+0

@Raynos:首先我使用docco,但groc確實很棒!謝謝。 – asgoth 2013-02-14 11:20:47

0

嗨,我剛剛發現YUIDoc。我不很瞭解,但它看起來很不錯...

4

SmartComments + YUIDocs

使用非凡的夫婦可以記錄在不到一分鐘的大型的JavaScript項目。

SmartComments,它是一個允許您從JavaScript源代碼創建隱式註釋的工具。

您可以在控制檯或通過Sublime Text Plugin使用。

有關更多信息,請轉至http://smartcomments.github.io

+0

下面是關於YUIDocs的113張幻燈片:http://www.slideshare.net/ysaw/beautiful-documentation-with-yui-doc – gm2008 2016-03-31 13:13:12

3

autodoc是塗料; https://www.npmjs.org/package/autodoc | https://github.com/dtao/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,所以除了你可以有谷歌的關閉編譯器驗證和優化你很多東西。

+1

這看起來確實很有希望。開發者在文檔中聲稱,它仍然在進行中,但它目前的功能非常酷。 – Typo 2014-05-04 17:38:57

5

如果用Node.js的工作,我創建了一個生成的JavaScript /節點/ HTML/CSS類圖的模塊。它基於UML的「WAE」擴展。它被稱爲wavi。對於javascript,函數,變量和其他模塊的使用都會被自動識別。您可以使用它來記錄您的應用程序。

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

Diagram generated by wavi