跳到主要內容

deno doc,文件產生器

deno doc 後接一個或多個來源檔案清單,將會列印每個模組的 已匯出 成員的 JSDoc 文件。

例如,給定一個內容為 add.ts 的檔案

/**
* Adds x and y.
* @param {number} x
* @param {number} y
* @returns {number} Sum of x and y
*/
export function add(x: number, y: number): number {
return x + y;
}

執行 Deno doc 指令,將函式的 JSDoc 註解列印至 stdout

deno doc add.ts
function add(x: number, y: number): number
Adds x and y. @param {number} x @param {number} y @returns {number} Sum of x and y

Linting

您可以在產生文件時使用 --lint 旗標檢查文件中的問題。deno doc 會指出三種類型的問題

  1. 根模組中已匯出類型參照未匯出類型的錯誤。
    • 確保 API 使用者可以存取 API 使用的所有類型。這可透過從根模組 (指令列上指定給 deno doc 的檔案之一) 匯出類型,或透過標記類型為 @internal jsdoc 標籤來抑制。
  2. 公開 類型缺少回傳類型或屬性類型的錯誤。
    • 確保 deno doc 顯示回傳/屬性類型,並有助於改善類型檢查效能。
  3. 公開 類型缺少 JS 文件註解的錯誤。
    • 確保程式碼有文件。可透過新增 jsdoc 註解或透過 @ignore jsdoc 標籤將其排除在文件之外來抑制。或者,新增 @internal 標籤以將其保留在文件中,但表示它是內部的。

例如

/mod.ts
interface Person {
name: string;
// ...
}

export function getName(person: Person) {
return person.name;
}
$ deno doc --lint mod.ts
Type 'getName' references type 'Person' which is not exported from a root module.
Missing JS documentation comment.
Missing return type.
at file:///mod.ts:6:1

這些 lint 旨在幫助您撰寫更好的文件並加快專案中的類型檢查。如果發現任何問題,程式將會以非零結束碼結束,而輸出會報告至標準錯誤。

HTML 輸出

使用 --html 旗標產生包含文件的靜態網站。

$ deno doc --html --name="My library" ./mod.ts

$ deno doc --html --name="My library" --output=./documentation/ ./mod.ts

$ deno doc --html --name="My library" ./sub1/mod.ts ./sub2/mod.ts

產生的文件是一個包含多個頁面的靜態網站,可以部署到任何靜態網站託管服務。

已在產生的網站中包含客戶端搜尋,但如果使用者的瀏覽器已停用 JavaScript,則無法使用。

JSON 輸出

使用 --json 旗標以 JSON 格式輸出文件。此 JSON 格式由 deno 文件網站 使用,並用於產生模組文件。